cyberweb 0.4.174
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cyberweb might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/README.md +3259 -0
- data/bin/cyberweb +27 -0
- data/cyberweb.gemspec +119 -0
- data/doc/AUTHORS.md +12 -0
- data/doc/CONVENTIONS.md +7 -0
- data/doc/CYBERWEB_TUTORIAL.cgi +43 -0
- data/doc/DOCUMENTATION_FOR_CYBERSPRAWL.md +50 -0
- data/doc/FUTURE_DESIGN_GOAL_CONSIDERATIONS.md +13 -0
- data/doc/JQUERY.md +122 -0
- data/doc/MOUSE.md +80 -0
- data/doc/README.gen +3231 -0
- data/doc/RENDER_WEB_BASE.md +46 -0
- data/doc/USAGE.md +246 -0
- data/doc/configuration/configuration.md +23 -0
- data/doc/deprecations.md +32 -0
- data/doc/html_characters.md +15 -0
- data/doc/todo/TODO_FOR_THE_CYBERWEB_PROJECT.md +1089 -0
- data/examples/README.md +4 -0
- data/examples/advanced/delayed_update_of_the_body_via_javascript.cgi +38 -0
- data/examples/advanced/hybrid_experiment.cgi +108 -0
- data/examples/advanced/larger_image_on_mouse_over_example.cgi +35 -0
- data/examples/advanced/no_right_click.cgi +26 -0
- data/examples/advanced/objectified_html_tags.cgi +35 -0
- data/examples/advanced/simple_calculator.cgi +42 -0
- data/examples/advanced/simple_form_example.cgi +38 -0
- data/examples/css/blue_border.html +28 -0
- data/examples/css/caret_colour_example.html +22 -0
- data/examples/css/css_border_spacing_example.html +69 -0
- data/examples/css/css_bubbles.html +43 -0
- data/examples/css/css_clock.html +344 -0
- data/examples/css/css_drag_and_drop.html +89 -0
- data/examples/css/css_neon_glow_effects.html +317 -0
- data/examples/css/css_text_decoration_example.html +70 -0
- data/examples/css/css_tooltip.html +44 -0
- data/examples/css/fade_in_and_fade_out_effect.html +66 -0
- data/examples/css/font_size_examples.html +40 -0
- data/examples/css/letter_spacing_example.cgi +36 -0
- data/examples/css/meter_example.html +31 -0
- data/examples/css/on_mouse_button_pressed.html +41 -0
- data/examples/css/planets.html +187 -0
- data/examples/css/scale_example.html +25 -0
- data/examples/css/shadow_example_in_CSS.cgi +30 -0
- data/examples/css/sticky_div_example.html +56 -0
- data/examples/css/stitched_div.html +36 -0
- data/examples/csv/README.md +1 -0
- data/examples/csv/sample.csv +10 -0
- data/examples/example1.rb +7 -0
- data/examples/flip_card_example/flip_card_example.html +72 -0
- data/examples/frames/frame_left.html +1 -0
- data/examples/frames/frame_right.html +1 -0
- data/examples/html/README.md +1 -0
- data/examples/html/abbr_example.html +25 -0
- data/examples/html/base64_image_example.html +26 -0
- data/examples/html/colour_wheel.html +1389 -0
- data/examples/html/column_width_example.html +34 -0
- data/examples/html/custom_cursor.html +103 -0
- data/examples/html/draggable_paragraph.html +12 -0
- data/examples/html/fieldset_example.html +25 -0
- data/examples/html/frames_example.html +7 -0
- data/examples/html/glyph_example.html +43 -0
- data/examples/html/hbox_and_vbox_example.html +65 -0
- data/examples/html/href_examples.html +27 -0
- data/examples/html/input_autofocus_example.html +16 -0
- data/examples/html/larger_image_on_mouse_over_example.html +30 -0
- data/examples/html/ordered_and_unordered_bulletsin.html +33 -0
- data/examples/html/play_video_example.html +13 -0
- data/examples/html/readonly_textarea_example.html +23 -0
- data/examples/html/remote_image_example.html +10 -0
- data/examples/html/simple_unordered_list.html +16 -0
- data/examples/html/table_with_header_example.html +27 -0
- data/examples/html/two_columns_flex_example.html +39 -0
- data/examples/javascript/README.md +2 -0
- data/examples/javascript/arrays/arrays_example_in_javascript.html +16 -0
- data/examples/javascript/delay_example/delay_example.html +46 -0
- data/examples/javascript/drag_support/drag_support.html +37 -0
- data/examples/javascript/jquery_drag_and_drop/drag_and_drop_image_example.html +33 -0
- data/examples/javascript/on_click_event_hello_world/on_click_event_hello_world.html +21 -0
- data/examples/javascript/rgb_to_hex/rgb_to_hex.html +15 -0
- data/examples/javascript/screen_resolution/screen_resolution.html +20 -0
- data/examples/javascript/select_everything/select_everything.html +14 -0
- data/examples/javascript/write_into_a_file/write_into_a_file.html +39 -0
- data/examples/rack/README.md +4 -0
- data/examples/rack/example_with_html_template.rb +123 -0
- data/examples/rack/example_with_rack_and_cyberweb_showing_how_to_use_images.rb +56 -0
- data/examples/rack/hello_world_example_with_rack.rb +45 -0
- data/examples/rack/lobster.rb +79 -0
- data/examples/rack/rack_env.rb +10 -0
- data/examples/rack/standalone_example.rb +26 -0
- data/examples/show_greek_letters.rb +3 -0
- data/examples/simple/on_click_event_hello_world.cgi +34 -0
- data/examples/sinatra/001_your_ip_address_is.rb +8 -0
- data/examples/sinatra/002_the_request_object.rb +16 -0
- data/examples/sinatra/003_hello_world_example.rb +82 -0
- data/examples/sinatra/004_splat_example.rb +10 -0
- data/examples/sinatra/005_attachment_example.rb +11 -0
- data/examples/sinatra/006_outer_self_example.rb +8 -0
- data/examples/sinatra/007_mime_type_example.rb +17 -0
- data/examples/sinatra/008_post_example.rb +55 -0
- data/examples/table_example.rb +37 -0
- data/images/cyberweb_favicon.png +0 -0
- data/images/cyberweb_logo.png +0 -0
- data/images/cyberweb_theme.png +0 -0
- data/lib/cyberweb/and_sinatra_base.rb +9 -0
- data/lib/cyberweb/autoinclude.rb +20 -0
- data/lib/cyberweb/autoinclude_webobject.rb +14 -0
- data/lib/cyberweb/base/base.rb +41 -0
- data/lib/cyberweb/base/colours.rb +69 -0
- data/lib/cyberweb/base/constants.rb +18 -0
- data/lib/cyberweb/base/encoding.rb +19 -0
- data/lib/cyberweb/base/misc.rb +239 -0
- data/lib/cyberweb/base/reset.rb +23 -0
- data/lib/cyberweb/base/save_file.rb +22 -0
- data/lib/cyberweb/cascading_style_sheets/README.md +4 -0
- data/lib/cyberweb/cascading_style_sheets/admonition.css +33 -0
- data/lib/cyberweb/cascading_style_sheets/balloon.css +344 -0
- data/lib/cyberweb/cascading_style_sheets/border.css +202 -0
- data/lib/cyberweb/cascading_style_sheets/code.css +58 -0
- data/lib/cyberweb/cascading_style_sheets/colours.css +476 -0
- data/lib/cyberweb/cascading_style_sheets/default.css +1836 -0
- data/lib/cyberweb/cascading_style_sheets/div.css +26 -0
- data/lib/cyberweb/cascading_style_sheets/fonts.css +365 -0
- data/lib/cyberweb/cascading_style_sheets/links.css +207 -0
- data/lib/cyberweb/cascading_style_sheets/margin.css +677 -0
- data/lib/cyberweb/cascading_style_sheets/menu.css +37 -0
- data/lib/cyberweb/cascading_style_sheets/message_boxes.css +48 -0
- data/lib/cyberweb/cascading_style_sheets/misc.css +162 -0
- data/lib/cyberweb/cascading_style_sheets/popup.css +63 -0
- data/lib/cyberweb/cascading_style_sheets/rpg.css +51 -0
- data/lib/cyberweb/cascading_style_sheets/ruby_regexes.css +33 -0
- data/lib/cyberweb/cascading_style_sheets/template2.css +18 -0
- data/lib/cyberweb/cascading_style_sheets/text_shadow.css +19 -0
- data/lib/cyberweb/cascading_style_sheets/tooltip.css +36 -0
- data/lib/cyberweb/cgi/README.md +6 -0
- data/lib/cyberweb/cgi/cgi.rb +340 -0
- data/lib/cyberweb/cgi/constants.rb +121 -0
- data/lib/cyberweb/cgi/cookie.rb +218 -0
- data/lib/cyberweb/cgi/core.rb +638 -0
- data/lib/cyberweb/cgi/exceptions.rb +223 -0
- data/lib/cyberweb/cgi/html.rb +1025 -0
- data/lib/cyberweb/cgi/mod_ruby_exception_printer.rb +40 -0
- data/lib/cyberweb/cgi/query_extension.rb +431 -0
- data/lib/cyberweb/cgi/session/file_store.rb +131 -0
- data/lib/cyberweb/cgi/session/memory_store.rb +90 -0
- data/lib/cyberweb/cgi/session/pstore.rb +127 -0
- data/lib/cyberweb/cgi/session.rb +444 -0
- data/lib/cyberweb/cgi/tag_maker.rb +94 -0
- data/lib/cyberweb/cgi/util.rb +239 -0
- data/lib/cyberweb/charts/README.md +2 -0
- data/lib/cyberweb/charts/google_charts.rb +51 -0
- data/lib/cyberweb/classes/simple_form.rb +55 -0
- data/lib/cyberweb/classes/tooltips.rb +169 -0
- data/lib/cyberweb/coloured_tags/coloured_tags.rb +3099 -0
- data/lib/cyberweb/colours/colour_chart.rb +117 -0
- data/lib/cyberweb/colours/colours.rb +50 -0
- data/lib/cyberweb/colours/random_colour.rb +28 -0
- data/lib/cyberweb/colours/sanitize_for_colours.rb +95 -0
- data/lib/cyberweb/commandline/commandline_interface.rb +49 -0
- data/lib/cyberweb/configuration/configuration.rb +66 -0
- data/lib/cyberweb/configuration/load_the_configuration_file.rb +73 -0
- data/lib/cyberweb/constants/array_images.rb +21 -0
- data/lib/cyberweb/constants/array_local_css_files.rb +35 -0
- data/lib/cyberweb/constants/array_predefined_constants.rb +23 -0
- data/lib/cyberweb/constants/configuration_file.rb +33 -0
- data/lib/cyberweb/constants/constants.rb +9 -0
- data/lib/cyberweb/constants/file_constants.rb +16 -0
- data/lib/cyberweb/constants/http_status_codes.rb +42 -0
- data/lib/cyberweb/constants/nl.rb +22 -0
- data/lib/cyberweb/constants/project_constants.rb +99 -0
- data/lib/cyberweb/constants/roebe.rb +28 -0
- data/lib/cyberweb/constants/standalone_constants.rb +309 -0
- data/lib/cyberweb/controller/README.md +4 -0
- data/lib/cyberweb/controller/webobject_controller.rb +50 -0
- data/lib/cyberweb/csv/README.md +2 -0
- data/lib/cyberweb/csv/csv.rb +58 -0
- data/lib/cyberweb/cybersprawl +1 -0
- data/lib/cyberweb/debug/debug.rb +69 -0
- data/lib/cyberweb/encoding/encoding.rb +84 -0
- data/lib/cyberweb/erb/test.rhtml +81 -0
- data/lib/cyberweb/erb/test_template.erb +9 -0
- data/lib/cyberweb/evaluate_from_the_same_named_file_then_serve.rb +9 -0
- data/lib/cyberweb/favicon/favicon.rb +196 -0
- data/lib/cyberweb/generator/README.md +2 -0
- data/lib/cyberweb/generator/cgi.rb +201 -0
- data/lib/cyberweb/generator/class.rb +25 -0
- data/lib/cyberweb/generator/static_webpage.rb +162 -0
- data/lib/cyberweb/generator/webpage_for_images.rb +553 -0
- data/lib/cyberweb/help/help.rb +29 -0
- data/lib/cyberweb/html_codes/README.md +15 -0
- data/lib/cyberweb/html_codes/greek_letters.rb +204 -0
- data/lib/cyberweb/html_tags/README.md +3 -0
- data/lib/cyberweb/html_tags/a.rb +65 -0
- data/lib/cyberweb/html_tags/accesskey.rb +25 -0
- data/lib/cyberweb/html_tags/blockquote.rb +56 -0
- data/lib/cyberweb/html_tags/body.rb +14 -0
- data/lib/cyberweb/html_tags/br.rb +19 -0
- data/lib/cyberweb/html_tags/button.rb +110 -0
- data/lib/cyberweb/html_tags/canvas.rb +59 -0
- data/lib/cyberweb/html_tags/chtml.rb +14 -0
- data/lib/cyberweb/html_tags/div.rb +163 -0
- data/lib/cyberweb/html_tags/fieldset.rb +67 -0
- data/lib/cyberweb/html_tags/figure.rb +72 -0
- data/lib/cyberweb/html_tags/form.rb +203 -0
- data/lib/cyberweb/html_tags/h1.rb +75 -0
- data/lib/cyberweb/html_tags/h2.rb +73 -0
- data/lib/cyberweb/html_tags/h3.rb +58 -0
- data/lib/cyberweb/html_tags/h4.rb +60 -0
- data/lib/cyberweb/html_tags/h5.rb +54 -0
- data/lib/cyberweb/html_tags/h6.rb +54 -0
- data/lib/cyberweb/html_tags/hr.rb +22 -0
- data/lib/cyberweb/html_tags/html_tags.rb +240 -0
- data/lib/cyberweb/html_tags/i.rb +50 -0
- data/lib/cyberweb/html_tags/img.rb +294 -0
- data/lib/cyberweb/html_tags/input.rb +345 -0
- data/lib/cyberweb/html_tags/label.rb +63 -0
- data/lib/cyberweb/html_tags/legend.rb +56 -0
- data/lib/cyberweb/html_tags/li.rb +67 -0
- data/lib/cyberweb/html_tags/map.rb +31 -0
- data/lib/cyberweb/html_tags/nav.rb +63 -0
- data/lib/cyberweb/html_tags/object.rb +56 -0
- data/lib/cyberweb/html_tags/ol.rb +56 -0
- data/lib/cyberweb/html_tags/option.rb +61 -0
- data/lib/cyberweb/html_tags/p.rb +90 -0
- data/lib/cyberweb/html_tags/pre.rb +164 -0
- data/lib/cyberweb/html_tags/section.rb +33 -0
- data/lib/cyberweb/html_tags/select.rb +100 -0
- data/lib/cyberweb/html_tags/span.rb +338 -0
- data/lib/cyberweb/html_tags/strong.rb +39 -0
- data/lib/cyberweb/html_tags/table.rb +273 -0
- data/lib/cyberweb/html_tags/tbody.rb +24 -0
- data/lib/cyberweb/html_tags/td.rb +214 -0
- data/lib/cyberweb/html_tags/textarea.rb +138 -0
- data/lib/cyberweb/html_tags/th.rb +68 -0
- data/lib/cyberweb/html_tags/thead.rb +36 -0
- data/lib/cyberweb/html_tags/tr.rb +97 -0
- data/lib/cyberweb/html_tags/ul.rb +51 -0
- data/lib/cyberweb/html_template/html_template.rb +352 -0
- data/lib/cyberweb/images/embed_this_image.rb +37 -0
- data/lib/cyberweb/images/images.rb +58 -0
- data/lib/cyberweb/images/is_image.rb +22 -0
- data/lib/cyberweb/images/path_to_images.rb +60 -0
- data/lib/cyberweb/images/real/README.md +6 -0
- data/lib/cyberweb/images/remove_this_substring_from_all_images.rb +44 -0
- data/lib/cyberweb/images/standalone_drag_and_drop_this_image.rb +64 -0
- data/lib/cyberweb/images/string_image.rb +399 -0
- data/lib/cyberweb/images_base64_encoded/AUSRUFUNGSZEICHEN.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/BLUEARROW.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/BUBBLE.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CAT.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CAUTION.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CHEERING_PERSON.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/CURSOR.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/DOT_01.png.md +5 -0
- data/lib/cyberweb/images_base64_encoded/DUCKY.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/ELEPHANT.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/HALLOWEEN.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/HANGING_MONKEY.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/LENS.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/README.md +2 -0
- data/lib/cyberweb/images_base64_encoded/TU_WIEN_LOGO.png.md +1 -0
- data/lib/cyberweb/images_base64_encoded/VOGEL.png.md +1 -0
- data/lib/cyberweb/io/README.md +1 -0
- data/lib/cyberweb/io/io.rb +19 -0
- data/lib/cyberweb/javascript/drag_and_drop.rb +105 -0
- data/lib/cyberweb/javascript/dragula_collection.rb +54 -0
- data/lib/cyberweb/javascript/javascript.rb +211 -0
- data/lib/cyberweb/javascript/javascript_bundle.rb +223 -0
- data/lib/cyberweb/javascript/javascript_clock.rb +69 -0
- data/lib/cyberweb/javascript/javascript_last_modified.rb +27 -0
- data/lib/cyberweb/javascript/javascript_magic.rb +150 -0
- data/lib/cyberweb/javascript/javascript_selectable.rb +24 -0
- data/lib/cyberweb/javascript/jquery.rb +30 -0
- data/lib/cyberweb/javascript/on_click_change_opacity.rb +97 -0
- data/lib/cyberweb/javascript/on_click_hide.rb +63 -0
- data/lib/cyberweb/javascript/popup.rb +80 -0
- data/lib/cyberweb/javascript/print_javascript.rb +33 -0
- data/lib/cyberweb/javascript/registered_javascript_methods.rb +30 -0
- data/lib/cyberweb/javascript/resize.rb +28 -0
- data/lib/cyberweb/javascript/return_javascript.rb +48 -0
- data/lib/cyberweb/javascript/scroll.rb +17 -0
- data/lib/cyberweb/javascript/snoweffect.rb +122 -0
- data/lib/cyberweb/javascript_code/README.md +6 -0
- data/lib/cyberweb/javascript_code/chmod_displayer.js +74 -0
- data/lib/cyberweb/javascript_code/custom_functions.js +267 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-3.6.0.js +10881 -0
- data/lib/cyberweb/javascript_code/jquery/jquery-ui-1.12.1.js +18706 -0
- data/lib/cyberweb/javascript_code/rgb_to_hex.js +14 -0
- data/lib/cyberweb/javascript_code/select_even_numbers.js +7 -0
- data/lib/cyberweb/javascript_code/select_everything.js +22 -0
- data/lib/cyberweb/javascript_code/simple_calculator.js +15 -0
- data/lib/cyberweb/javascript_code/sleep.js +3 -0
- data/lib/cyberweb/javascript_code/to_celsius.js +8 -0
- data/lib/cyberweb/mouse/README.md +3 -0
- data/lib/cyberweb/mouse/libxdo.rb +321 -0
- data/lib/cyberweb/mouse/mouse.rb +264 -0
- data/lib/cyberweb/objectified_html_tags/README.md +8 -0
- data/lib/cyberweb/objectified_html_tags/a.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/abbr.rb +84 -0
- data/lib/cyberweb/objectified_html_tags/base.rb +376 -0
- data/lib/cyberweb/objectified_html_tags/button.rb +135 -0
- data/lib/cyberweb/objectified_html_tags/combobox.rb +165 -0
- data/lib/cyberweb/objectified_html_tags/div.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/embed.rb +161 -0
- data/lib/cyberweb/objectified_html_tags/form.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h1.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h2.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h3.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h4.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h5.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/h6.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/hbox.rb +71 -0
- data/lib/cyberweb/objectified_html_tags/img.rb +202 -0
- data/lib/cyberweb/objectified_html_tags/input.rb +185 -0
- data/lib/cyberweb/objectified_html_tags/p.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/pre.rb +129 -0
- data/lib/cyberweb/objectified_html_tags/span.rb +92 -0
- data/lib/cyberweb/objectified_html_tags/table.rb +174 -0
- data/lib/cyberweb/objectified_html_tags/textarea.rb +173 -0
- data/lib/cyberweb/objectified_html_tags/title.rb +82 -0
- data/lib/cyberweb/objectified_html_tags/window.rb +79 -0
- data/lib/cyberweb/predefined_and_freeform_methods/README.md +1 -0
- data/lib/cyberweb/predefined_and_freeform_methods/frage.rb +45 -0
- data/lib/cyberweb/predefined_and_freeform_methods/freeform_methods.rb +93 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_css_class_to_use.rb +55 -0
- data/lib/cyberweb/predefined_and_freeform_methods/hash_registered_extra_tags.rb +29 -0
- data/lib/cyberweb/predefined_and_freeform_methods/header.rb +81 -0
- data/lib/cyberweb/predefined_and_freeform_methods/predefined_methods.rb +413 -0
- data/lib/cyberweb/project/project.rb +85 -0
- data/lib/cyberweb/rack/README.md +1 -0
- data/lib/cyberweb/rack/request.rb +31 -0
- data/lib/cyberweb/requires/README.md +4 -0
- data/lib/cyberweb/requires/do_require_web_object_files.rb +9 -0
- data/lib/cyberweb/requires/remove_html.rb +9 -0
- data/lib/cyberweb/requires/require_cgi.rb +16 -0
- data/lib/cyberweb/requires/require_charts.rb +20 -0
- data/lib/cyberweb/requires/require_generators.rb +23 -0
- data/lib/cyberweb/requires/require_html_tags_files.rb +23 -0
- data/lib/cyberweb/requires/require_javascript_files.rb +23 -0
- data/lib/cyberweb/requires/require_kimurai.rb +13 -0
- data/lib/cyberweb/requires/require_objectified_html_tags_files.rb +23 -0
- data/lib/cyberweb/requires/require_sinatra.rb +7 -0
- data/lib/cyberweb/requires/require_the_constants.rb +26 -0
- data/lib/cyberweb/requires/require_the_cyberweb_project.rb +172 -0
- data/lib/cyberweb/requires/require_the_html_template.rb +7 -0
- data/lib/cyberweb/requires/require_the_toplevel_methods_files.rb +24 -0
- data/lib/cyberweb/requires/require_web_images.rb +7 -0
- data/lib/cyberweb/requires/require_web_object_files.rb +25 -0
- data/lib/cyberweb/requires/require_yaml.rb +11 -0
- data/lib/cyberweb/sinatra/README.md +11 -0
- data/lib/cyberweb/sinatra/base.rb +145 -0
- data/lib/cyberweb/sinatra/custom_extensions.rb +131 -0
- data/lib/cyberweb/standalone_classes/all_css_classes.rb +255 -0
- data/lib/cyberweb/standalone_classes/calculator.rb +127 -0
- data/lib/cyberweb/standalone_classes/correct_image_entries_in_html_file.rb +207 -0
- data/lib/cyberweb/standalone_classes/input_focus.rb +97 -0
- data/lib/cyberweb/standalone_classes/tag_prototype.rb +43 -0
- data/lib/cyberweb/standalone_classes/turn_html_into_cyberweb.rb +174 -0
- data/lib/cyberweb/svg/blue_rect.svg +12 -0
- data/lib/cyberweb/svg/butterfly.svg +15 -0
- data/lib/cyberweb/svg/chemical_molecule.svg +192 -0
- data/lib/cyberweb/svg/circles_on_background.svg +29 -0
- data/lib/cyberweb/svg/ellipse.svg +12 -0
- data/lib/cyberweb/svg/five_circles.svg +26 -0
- data/lib/cyberweb/svg/flag_germany.svg +10 -0
- data/lib/cyberweb/svg/gaussian_blur.svg +20 -0
- data/lib/cyberweb/svg/gradient_circle.svg +18 -0
- data/lib/cyberweb/svg/green_butterfly.svg +18 -0
- data/lib/cyberweb/svg/green_tilted_lines.svg +25 -0
- data/lib/cyberweb/svg/lion.svg +161 -0
- data/lib/cyberweb/svg/one_circle.svg +12 -0
- data/lib/cyberweb/svg/pie_chart.svg +130 -0
- data/lib/cyberweb/svg/svg.cgi +61 -0
- data/lib/cyberweb/svg/tetris.svg +487 -0
- data/lib/cyberweb/svg/three_circles.svg +18 -0
- data/lib/cyberweb/svg/tiger.svg +732 -0
- data/lib/cyberweb/svg/tilted_arcs.svg +74 -0
- data/lib/cyberweb/svg/transparent_rect.svg +12 -0
- data/lib/cyberweb/svg/yellow_fe_blending.svg +42 -0
- data/lib/cyberweb/toplevel_methods/a.rb +131 -0
- data/lib/cyberweb/toplevel_methods/anmerkung.rb +67 -0
- data/lib/cyberweb/toplevel_methods/audio.rb +59 -0
- data/lib/cyberweb/toplevel_methods/bold.rb +65 -0
- data/lib/cyberweb/toplevel_methods/cgi.rb +65 -0
- data/lib/cyberweb/toplevel_methods/charsets.rb +52 -0
- data/lib/cyberweb/toplevel_methods/clear.rb +30 -0
- data/lib/cyberweb/toplevel_methods/close.rb +62 -0
- data/lib/cyberweb/toplevel_methods/consider_serving_the_web_object.rb +41 -0
- data/lib/cyberweb/toplevel_methods/css.rb +732 -0
- data/lib/cyberweb/toplevel_methods/date.rb +71 -0
- data/lib/cyberweb/toplevel_methods/dictionary.rb +48 -0
- data/lib/cyberweb/toplevel_methods/disable.rb +49 -0
- data/lib/cyberweb/toplevel_methods/document.rb +56 -0
- data/lib/cyberweb/toplevel_methods/dot.rb +182 -0
- data/lib/cyberweb/toplevel_methods/download_webpage.rb +18 -0
- data/lib/cyberweb/toplevel_methods/edit_configuration_file.rb +26 -0
- data/lib/cyberweb/toplevel_methods/ee.rb +44 -0
- data/lib/cyberweb/toplevel_methods/env.rb +44 -0
- data/lib/cyberweb/toplevel_methods/escape_html.rb +54 -0
- data/lib/cyberweb/toplevel_methods/fields.rb +46 -0
- data/lib/cyberweb/toplevel_methods/filename.rb +33 -0
- data/lib/cyberweb/toplevel_methods/frames.rb +131 -0
- data/lib/cyberweb/toplevel_methods/glob.rb +30 -0
- data/lib/cyberweb/toplevel_methods/google.rb +35 -0
- data/lib/cyberweb/toplevel_methods/hardware_information.rb +90 -0
- data/lib/cyberweb/toplevel_methods/hfin.rb +56 -0
- data/lib/cyberweb/toplevel_methods/html_comment.rb +48 -0
- data/lib/cyberweb/toplevel_methods/html_mode.rb +39 -0
- data/lib/cyberweb/toplevel_methods/html_tables.rb +818 -0
- data/lib/cyberweb/toplevel_methods/input.rb +54 -0
- data/lib/cyberweb/toplevel_methods/jquery.rb +82 -0
- data/lib/cyberweb/toplevel_methods/last_modified.rb +39 -0
- data/lib/cyberweb/toplevel_methods/links.rb +426 -0
- data/lib/cyberweb/toplevel_methods/listing.rb +96 -0
- data/lib/cyberweb/toplevel_methods/localhost.rb +18 -0
- data/lib/cyberweb/toplevel_methods/log_directory.rb +84 -0
- data/lib/cyberweb/toplevel_methods/logging.rb +42 -0
- data/lib/cyberweb/toplevel_methods/logo.rb +30 -0
- data/lib/cyberweb/toplevel_methods/markdown.rb +112 -0
- data/lib/cyberweb/toplevel_methods/mathml.rb +130 -0
- data/lib/cyberweb/toplevel_methods/message_boxes.rb +140 -0
- data/lib/cyberweb/toplevel_methods/misc.rb +1398 -0
- data/lib/cyberweb/toplevel_methods/name_of_img_dir.rb +51 -0
- data/lib/cyberweb/toplevel_methods/padlem_and_marlem.rb +107 -0
- data/lib/cyberweb/toplevel_methods/params.rb +57 -0
- data/lib/cyberweb/toplevel_methods/path.rb +69 -0
- data/lib/cyberweb/toplevel_methods/pdf.rb +103 -0
- data/lib/cyberweb/toplevel_methods/process_content.rb +102 -0
- data/lib/cyberweb/toplevel_methods/progress.rb +42 -0
- data/lib/cyberweb/toplevel_methods/quote.rb +44 -0
- data/lib/cyberweb/toplevel_methods/random.rb +70 -0
- data/lib/cyberweb/toplevel_methods/rds.rb +35 -0
- data/lib/cyberweb/toplevel_methods/read_and_display.rb +284 -0
- data/lib/cyberweb/toplevel_methods/readlines.rb +31 -0
- data/lib/cyberweb/toplevel_methods/redirect.rb +29 -0
- data/lib/cyberweb/toplevel_methods/registered_ids.rb +178 -0
- data/lib/cyberweb/toplevel_methods/remove_html.rb +32 -0
- data/lib/cyberweb/toplevel_methods/remove_newlines.rb +28 -0
- data/lib/cyberweb/toplevel_methods/return_head_start.rb +33 -0
- data/lib/cyberweb/toplevel_methods/return_html_fin.rb +34 -0
- data/lib/cyberweb/toplevel_methods/return_html_header.rb +35 -0
- data/lib/cyberweb/toplevel_methods/return_html_start.rb +24 -0
- data/lib/cyberweb/toplevel_methods/return_html_to_head_start.rb +42 -0
- data/lib/cyberweb/toplevel_methods/return_meta_collection.rb +54 -0
- data/lib/cyberweb/toplevel_methods/return_pwd.rb +23 -0
- data/lib/cyberweb/toplevel_methods/return_strict_doctype.rb +51 -0
- data/lib/cyberweb/toplevel_methods/roebe.rb +43 -0
- data/lib/cyberweb/toplevel_methods/s2.rb +30 -0
- data/lib/cyberweb/toplevel_methods/sanitize_url.rb +57 -0
- data/lib/cyberweb/toplevel_methods/sbr.rb +170 -0
- data/lib/cyberweb/toplevel_methods/server_base_directory.rb +148 -0
- data/lib/cyberweb/toplevel_methods/show_and_display.rb +215 -0
- data/lib/cyberweb/toplevel_methods/show_configuration.rb +83 -0
- data/lib/cyberweb/toplevel_methods/sitemap.rb +111 -0
- data/lib/cyberweb/toplevel_methods/spacer.rb +119 -0
- data/lib/cyberweb/toplevel_methods/string_body_start.rb +65 -0
- data/lib/cyberweb/toplevel_methods/string_content.rb +35 -0
- data/lib/cyberweb/toplevel_methods/svg.rb +66 -0
- data/lib/cyberweb/toplevel_methods/tag.rb +237 -0
- data/lib/cyberweb/toplevel_methods/temp_directory.rb +73 -0
- data/lib/cyberweb/toplevel_methods/test_css.rb +24 -0
- data/lib/cyberweb/toplevel_methods/textile.rb +45 -0
- data/lib/cyberweb/toplevel_methods/title.rb +125 -0
- data/lib/cyberweb/toplevel_methods/umlaute.rb +90 -0
- data/lib/cyberweb/toplevel_methods/video.rb +352 -0
- data/lib/cyberweb/toplevel_methods/view_source.rb +50 -0
- data/lib/cyberweb/toplevel_methods/web_object.rb +42 -0
- data/lib/cyberweb/toplevel_methods/write_what_into.rb +27 -0
- data/lib/cyberweb/utility_scripts/README.md +4 -0
- data/lib/cyberweb/utility_scripts/create_coloured_tags.rb +172 -0
- data/lib/cyberweb/utility_scripts/download_balloon_css.rb +160 -0
- data/lib/cyberweb/utility_scripts/hyperlink_all_images_from.rb +148 -0
- data/lib/cyberweb/version/version.rb +25 -0
- data/lib/cyberweb/web_base/web_base.rb +28 -0
- data/lib/cyberweb/web_images/array_listing_all_project_images.rb +52 -0
- data/lib/cyberweb/web_images/map_symbol_to_image_location.rb +1661 -0
- data/lib/cyberweb/web_images/web_images.rb +270 -0
- data/lib/cyberweb/web_object/css.rb +627 -0
- data/lib/cyberweb/web_object/evaluate.rb +126 -0
- data/lib/cyberweb/web_object/favicon.rb +160 -0
- data/lib/cyberweb/web_object/html_related_tags.rb +320 -0
- data/lib/cyberweb/web_object/images.rb +693 -0
- data/lib/cyberweb/web_object/initialize.rb +51 -0
- data/lib/cyberweb/web_object/input_related_functionality.rb +414 -0
- data/lib/cyberweb/web_object/javascript.rb +427 -0
- data/lib/cyberweb/web_object/languages.rb +172 -0
- data/lib/cyberweb/web_object/links.rb +228 -0
- data/lib/cyberweb/web_object/misc.rb +5159 -0
- data/lib/cyberweb/web_object/params.rb +289 -0
- data/lib/cyberweb/web_object/reset.rb +192 -0
- data/lib/cyberweb/web_object/run.rb +44 -0
- data/lib/cyberweb/web_object/sinatra_related_functionality.rb +30 -0
- data/lib/cyberweb/web_object/sitemap.rb +176 -0
- data/lib/cyberweb/web_object/table.rb +378 -0
- data/lib/cyberweb/web_object/web_object.rb +126 -0
- data/lib/cyberweb/web_scraper/README.md +8 -0
- data/lib/cyberweb/web_scraper/scrape_this_url.rb +183 -0
- data/lib/cyberweb/webmin/biology_server.cgi +256 -0
- data/lib/cyberweb/webmin/calculator.cgi +52 -0
- data/lib/cyberweb/webmin/colour_chart.cgi +33 -0
- data/lib/cyberweb/webmin/comments.cgi +137 -0
- data/lib/cyberweb/webmin/comments_data +18 -0
- data/lib/cyberweb/webmin/constants.rb +46 -0
- data/lib/cyberweb/webmin/dictionary.cgi +39 -0
- data/lib/cyberweb/webmin/sys_info.cgi +26 -0
- data/lib/cyberweb/webmin/webforum.cgi +58 -0
- data/lib/cyberweb/webmin/webmin.cgi +679 -0
- data/lib/cyberweb/yaml/autogenerated_system_settings.yml +14 -0
- data/lib/cyberweb/yaml/custom_tags.yml +7 -0
- data/lib/cyberweb/yaml/debug.yml +1 -0
- data/lib/cyberweb/yaml/html5_global_attributes.yml +12 -0
- data/lib/cyberweb/yaml/html5_new_elements.yml +108 -0
- data/lib/cyberweb/yaml/html_tag_legend.yml +12 -0
- data/lib/cyberweb/yaml/http_status_codes.yml +38 -0
- data/lib/cyberweb/yaml/js_files_to_load.yml +28 -0
- data/lib/cyberweb/yaml/project_configuration.yml +229 -0
- data/lib/cyberweb/yaml/video_attributes.yml +35 -0
- data/lib/cyberweb/yaml/web_images.yml +306 -0
- data/lib/cyberweb.rb +5 -0
- data/test/README.md +5 -0
- data/test/complex_tests/all_tests_in_one_page.cgi +666 -0
- data/test/complex_tests/simple_sinatra_example_using_cyberweb/simple.rb +60 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.cgi +7 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.rb +23 -0
- data/test/complex_tests/sinatra_or_cyberweb/sinatra_or_cyberweb.sinatra +65 -0
- data/test/complex_tests/testing_frames.cgi +42 -0
- data/test/complex_tests/testing_objectified_html_tags.rb +82 -0
- data/test/complex_tests/testing_style_variants/README.md +2 -0
- data/test/complex_tests/testing_style_variants/show_coloured_boxes.cgi +58 -0
- data/test/complex_tests/testing_tables.cgi +67 -0
- data/test/complex_tests/testing_the_cyberweb_shell.rb +188 -0
- data/test/complex_tests/testing_web_object.rb +94 -0
- data/test/css/README.md +5 -0
- data/test/css/return_the_content_of_these_css_classes.rb +7 -0
- data/test/css/testing_css_effects.cgi +159 -0
- data/test/css/testing_css_masking.cgi +36 -0
- data/test/dummy.pdf +0 -0
- data/test/hello_world/hello_world.cgi +25 -0
- data/test/javascript/README.md +2 -0
- data/test/javascript/testing_cheerleader_javascript.cgi +0 -0
- data/test/javascript/testing_drag_and_drop_support.cgi +33 -0
- data/test/javascript/testing_on_click_change_opacity.cgi +26 -0
- data/test/javascript/testing_snowflakes.cgi +20 -0
- data/test/simple_tests/README.md +3 -0
- data/test/simple_tests/ad-hoc-test.cgi +55 -0
- data/test/simple_tests/commandline_tests.rb +70 -0
- data/test/simple_tests/display_this_file.cgi +11 -0
- data/test/simple_tests/simple_html_example.cgi +29 -0
- data/test/simple_tests/simple_status_page.cgi +52 -0
- data/test/simple_tests/string_s2_test.rb +11 -0
- data/test/simple_tests/test_simple_string_as_input.rb +12 -0
- data/test/simple_tests/testing_base64_images.cgi +26 -0
- data/test/simple_tests/testing_dragging_an_image.cgi +23 -0
- data/test/simple_tests/testing_editable_text.cgi +16 -0
- data/test/simple_tests/testing_email.cgi +31 -0
- data/test/simple_tests/testing_embedding_a_pdf_file.cgi +32 -0
- data/test/simple_tests/testing_google_charts.cgi +24 -0
- data/test/simple_tests/testing_html_forms.cgi +31 -0
- data/test/simple_tests/testing_html_template.rb +13 -0
- data/test/simple_tests/testing_popup_div.cgi +22 -0
- data/test/simple_tests/testing_return_dataset_without_any_comments.rb +11 -0
- data/test/simple_tests/testing_the_cap_box.cgi +20 -0
- data/test/simple_tests/testing_the_div_tag.cgi +21 -0
- data/test/simple_tests/testing_the_headers_tag.cgi +36 -0
- data/test/simple_tests/testing_the_html_colours.cgi +19 -0
- data/test/simple_tests/testing_the_info_box.cgi +19 -0
- data/test/simple_tests/testing_the_li_tag.cgi +24 -0
- data/test/simple_tests/testing_the_s2_method.rb +7 -0
- data/test/simple_tests/testing_the_select_tag.cgi +23 -0
- data/test/simple_tests/testing_the_span_tag.cgi +36 -0
- data/test/simple_tests/testing_web_images.rb +12 -0
- data/test/testing_html_tags/README.md +7 -0
- data/test/testing_html_tags/button_example.cgi +42 -0
- metadata +759 -0
@@ -0,0 +1,627 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'cyberweb/web_object/css.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'cyberweb/base/base.rb'
|
8
|
+
|
9
|
+
module Cyberweb
|
10
|
+
|
11
|
+
class WebObject < Base # === Cyberweb::WebObject
|
12
|
+
|
13
|
+
require 'cyberweb/toplevel_methods/css.rb'
|
14
|
+
|
15
|
+
# ========================================================================= #
|
16
|
+
# === return_default_css_files
|
17
|
+
# ========================================================================= #
|
18
|
+
def return_default_css_files(
|
19
|
+
array_local_css_files = ARRAY_LOCAL_CSS_FILES
|
20
|
+
)
|
21
|
+
_ = ''.dup
|
22
|
+
array_local_css_files.each {|this_css_file|
|
23
|
+
_ << '<link rel="stylesheet" type="text/css" '\
|
24
|
+
'href="'+relative_path?+'cascading_style_sheet/'+
|
25
|
+
this_css_file+'" />'+"\n"
|
26
|
+
}
|
27
|
+
_
|
28
|
+
end
|
29
|
+
|
30
|
+
# ========================================================================= #
|
31
|
+
# === append_this_to_the_body_css
|
32
|
+
# ========================================================================= #
|
33
|
+
def append_this_to_the_body_css(i)
|
34
|
+
@internal_hash[:body_css_style] << i
|
35
|
+
end
|
36
|
+
|
37
|
+
# ========================================================================= #
|
38
|
+
# === return_css_style
|
39
|
+
#
|
40
|
+
# This method will simply return the <style>CONTENT_HERE</style> variant.
|
41
|
+
# ========================================================================= #
|
42
|
+
def return_css_style(i)
|
43
|
+
if i.is_a? Hash
|
44
|
+
_ = ''.dup
|
45
|
+
i.each_pair {|key, value|
|
46
|
+
_ << "#{key} = #{value};"
|
47
|
+
}
|
48
|
+
i = _
|
49
|
+
end
|
50
|
+
return "<style>\n#{i}\n</style>\n"
|
51
|
+
end; alias return_this_css_style return_css_style # === return_this_css_style
|
52
|
+
alias page_css_classes return_css_style # === page_css_classes
|
53
|
+
|
54
|
+
# ========================================================================= #
|
55
|
+
# === generate_drop_shadow
|
56
|
+
#
|
57
|
+
# This method will "generate" a drop shadow.
|
58
|
+
#
|
59
|
+
# Combined usage example:
|
60
|
+
#
|
61
|
+
# generate_drop_shadow :red, :default, 'drop_shadow_red'
|
62
|
+
# div('pad0_5em drop_shadow_red') {
|
63
|
+
#
|
64
|
+
# ========================================================================= #
|
65
|
+
def generate_drop_shadow(
|
66
|
+
use_this_colour = '#585858',
|
67
|
+
border = :default,
|
68
|
+
use_this_name_for_the_CSS_class = 'drop_shadow'
|
69
|
+
)
|
70
|
+
case border
|
71
|
+
# ======================================================================= #
|
72
|
+
# === :default
|
73
|
+
# ======================================================================= #
|
74
|
+
when :default
|
75
|
+
border = '2px 4px 8px'
|
76
|
+
end
|
77
|
+
css_style(
|
78
|
+
'.'+use_this_name_for_the_CSS_class.to_s+' {
|
79
|
+
filter: drop-shadow('+border.to_s+' '+use_this_colour.to_s+');
|
80
|
+
}'
|
81
|
+
)
|
82
|
+
end
|
83
|
+
|
84
|
+
# ========================================================================= #
|
85
|
+
# === css_style
|
86
|
+
#
|
87
|
+
# Use this method to define the css style for the given web object.
|
88
|
+
#
|
89
|
+
# If the last four characters of the argument provided to this method
|
90
|
+
# end with ".css" then we will try to read the file specified
|
91
|
+
# therein. (In this case we assume that it must be a .css file
|
92
|
+
# that was passed into this method.)
|
93
|
+
#
|
94
|
+
# In order to use templates, do something like the following:
|
95
|
+
#
|
96
|
+
# css_style = :template1
|
97
|
+
#
|
98
|
+
# :symbol names can be used, such as :template1, :template2
|
99
|
+
# and so forth. Alternatively, you can pass a String, or embed
|
100
|
+
# the template-variants via a format such as '#TEMPLATE1#', which
|
101
|
+
# will be substituted with whatever :template1 would normally
|
102
|
+
# return.
|
103
|
+
# ========================================================================= #
|
104
|
+
def css_style(
|
105
|
+
i = :default
|
106
|
+
)
|
107
|
+
# ======================================================================= #
|
108
|
+
# === Special handling of Symbols given here
|
109
|
+
# ======================================================================= #
|
110
|
+
if i.is_a? Symbol
|
111
|
+
case i
|
112
|
+
# ===================================================================== #
|
113
|
+
# === :default
|
114
|
+
#
|
115
|
+
# This can be used like in this way:
|
116
|
+
#
|
117
|
+
# css_style :template1
|
118
|
+
#
|
119
|
+
# ===================================================================== #
|
120
|
+
when :default,
|
121
|
+
:template,
|
122
|
+
:template1,
|
123
|
+
:css_template1
|
124
|
+
i = css_comment('Generated via `'+i.to_s+'`')+
|
125
|
+
TEMPLATE1 # <- This is CSS/default.css
|
126
|
+
# ===================================================================== #
|
127
|
+
# === :template2
|
128
|
+
# ===================================================================== #
|
129
|
+
when :template2
|
130
|
+
i = css_comment('Generated via `'+i.to_s+'`')+
|
131
|
+
TEMPLATE2
|
132
|
+
# ===================================================================== #
|
133
|
+
# === :code
|
134
|
+
# ===================================================================== #
|
135
|
+
when :code
|
136
|
+
i = css_comment('Generated via `'+i.to_s+'`')+
|
137
|
+
CODE_TEMPLATE
|
138
|
+
# ===================================================================== #
|
139
|
+
# === :template_ruby_regex
|
140
|
+
# ===================================================================== #
|
141
|
+
when :template_ruby_regex
|
142
|
+
i = css_comment('Generated via `'+i.to_s+'`')+
|
143
|
+
TEMPLATE_RUBY_REGEX
|
144
|
+
end
|
145
|
+
i = i.join('') if i.is_a? Array # Join them all.
|
146
|
+
end
|
147
|
+
# ======================================================================= #
|
148
|
+
# Next, substitute for #TEMPLATE1 macro.
|
149
|
+
# ======================================================================= #
|
150
|
+
if i.to_s.include? '#TEMPLATE1'
|
151
|
+
i = i.dup if i.frozen?
|
152
|
+
i.gsub!(/#TEMPLATE1/, TEMPLATE1)
|
153
|
+
end
|
154
|
+
if i and i.end_with?('.css') # assume we pass a .css file here.
|
155
|
+
i = readlines(i).join('') if File.exist?(i)
|
156
|
+
end
|
157
|
+
# ======================================================================= #
|
158
|
+
# Next, we will always append to the @css_style instance variable.
|
159
|
+
# This allows os to build-up the CSS for a webpage.
|
160
|
+
# ======================================================================= #
|
161
|
+
add_with_newline(
|
162
|
+
return_css_style(i)
|
163
|
+
)
|
164
|
+
end; alias main_css_style css_style # === main_css_style
|
165
|
+
alias main_css css_style # === main_css
|
166
|
+
alias css_main_style css_style # === css_main_style
|
167
|
+
alias add_this_css_style css_style # === add_this_css_style
|
168
|
+
alias css_class css_style # === css_class
|
169
|
+
alias css_classes css_style # === css_classes
|
170
|
+
alias c_style= css_style # === c_style=
|
171
|
+
alias c_class= css_style # === c_class=
|
172
|
+
alias css_style= css_style # === css_style=
|
173
|
+
alias general_css= css_style # === general_css=
|
174
|
+
alias css= css_style # === css=
|
175
|
+
alias css_template= css_style # === css_template=
|
176
|
+
alias css_main css_style # === css_main
|
177
|
+
alias css_main_class css_style # === css_main_class
|
178
|
+
alias css_code css_style # === css_code
|
179
|
+
alias c1= css_style # === c1=
|
180
|
+
alias c1 css_style # === c1
|
181
|
+
alias main_css_class css_style # === main_css_class
|
182
|
+
alias css_style css_style # === css_style
|
183
|
+
alias append_to_css_style css_style # === append_to_css_style
|
184
|
+
alias append_this_css css_style # === append_this_css
|
185
|
+
alias inline_css css_style # === inline_css
|
186
|
+
alias add_css_style css_style # === add_css_style
|
187
|
+
|
188
|
+
# ========================================================================= #
|
189
|
+
# === hide_scrollbars
|
190
|
+
#
|
191
|
+
# This method can be used to hide the scrollbars, by using CSS.
|
192
|
+
#
|
193
|
+
# I do not recommend to use it, but it exists mostly due to
|
194
|
+
# convenience - and perhaps the user may have a real use
|
195
|
+
# case for this, such as browser-kiosk mode, or something
|
196
|
+
# similar.
|
197
|
+
#
|
198
|
+
# The idea I had when reading this description:
|
199
|
+
#
|
200
|
+
# https://www.w3schools.com/howto/howto_css_hide_scrollbars.asp
|
201
|
+
#
|
202
|
+
# ========================================================================= #
|
203
|
+
def hide_scrollbars
|
204
|
+
append_this_to_the_body_css '
|
205
|
+
overflow: hidden; /* Hide scrollbars */
|
206
|
+
'
|
207
|
+
end; alias disable_scrollbars hide_scrollbars # === disable_scrollbars
|
208
|
+
|
209
|
+
# ========================================================================= #
|
210
|
+
# === set_body_css_class
|
211
|
+
#
|
212
|
+
# This method can be used to designate a (or several) css_class(es)
|
213
|
+
# in the <body> tag of a webpage.
|
214
|
+
# ========================================================================= #
|
215
|
+
def set_body_css_class(
|
216
|
+
i = ''
|
217
|
+
)
|
218
|
+
@internal_hash[:body_css_class] = i.to_s
|
219
|
+
end; alias body_css_class set_body_css_class # === body_css_class
|
220
|
+
alias body_css_class= set_body_css_class # === body_css_class=
|
221
|
+
alias body_css_classes set_body_css_class # === body_css_classes
|
222
|
+
alias body_css_class set_body_css_class # === body_css_class
|
223
|
+
alias body_css= set_body_css_class # === body_css=
|
224
|
+
alias body_css set_body_css_class # === body_css
|
225
|
+
alias bcc= set_body_css_class # === bcc=
|
226
|
+
alias bcc set_body_css_class # === bcc
|
227
|
+
alias main_body= set_body_css_class # === main_body?
|
228
|
+
alias main_body set_body_css_class # === main_body
|
229
|
+
alias body= set_body_css_class # === body?
|
230
|
+
alias body set_body_css_class # === body
|
231
|
+
alias css_class set_body_css_class # === css_class
|
232
|
+
alias b1= set_body_css_class # === b1=
|
233
|
+
alias b1 set_body_css_class # === b1
|
234
|
+
|
235
|
+
# ========================================================================= #
|
236
|
+
# === set_body_css_style
|
237
|
+
#
|
238
|
+
# Use this to specify a css style for use in the <body> tag.
|
239
|
+
#
|
240
|
+
# An example for this may be the following:
|
241
|
+
#
|
242
|
+
# { padding: 25em; }
|
243
|
+
#
|
244
|
+
# ========================================================================= #
|
245
|
+
def set_body_css_style(i)
|
246
|
+
# ======================================================================= #
|
247
|
+
# Since as of Apr 2016, we get rid of all newlines too.
|
248
|
+
# ======================================================================= #
|
249
|
+
if i
|
250
|
+
i = i.dup if i.frozen?
|
251
|
+
i.delete!("\n") if i.include? "\n"
|
252
|
+
end
|
253
|
+
@internal_hash[:body_css_style] = i
|
254
|
+
end; alias body_css_style set_body_css_style # === body_css_style
|
255
|
+
alias body_css_style= set_body_css_style # === body_css_style=
|
256
|
+
alias body_style= set_body_css_style # === body_style=
|
257
|
+
alias body_style set_body_css_style # === body_style
|
258
|
+
alias bcs= set_body_css_style # === bcs=
|
259
|
+
alias bcs set_body_css_style # === bcs
|
260
|
+
alias css1= set_body_css_style # === css1=
|
261
|
+
alias css1 set_body_css_style # === css1
|
262
|
+
alias body_css set_body_css_style # === body_css
|
263
|
+
|
264
|
+
# ========================================================================= #
|
265
|
+
# === fetch_css_classes
|
266
|
+
#
|
267
|
+
# Use this method to find matching entries. Invoke it at the end
|
268
|
+
# after loading your web object. It will then return an array
|
269
|
+
# with your css class (which you can then inject).
|
270
|
+
#
|
271
|
+
# Usage example:
|
272
|
+
#
|
273
|
+
# w.fetch_css_classes
|
274
|
+
# w.print_this_css(web_object.fetch_css_classes)
|
275
|
+
#
|
276
|
+
# ========================================================================= #
|
277
|
+
def fetch_css_classes(
|
278
|
+
i = CSS_DIRECTORY
|
279
|
+
)
|
280
|
+
array_collection = []
|
281
|
+
these_classes_exist = ::Cyberweb.found_these_css_classes
|
282
|
+
# ======================================================================= #
|
283
|
+
# For the following code to work, CSS_DIRECTORY must obviously exist.
|
284
|
+
# This constant will refer to the css classes that are part of Cyberweb.
|
285
|
+
# ======================================================================= #
|
286
|
+
Dir.foreach(i) {|file|
|
287
|
+
next if File.directory?(file)
|
288
|
+
if File.exist? css_dir+'/'+file
|
289
|
+
_ = readlines(css_dir+'/'+file)
|
290
|
+
_.each {|line|
|
291
|
+
these_classes_exist.each { |entry|
|
292
|
+
array_collection << line if line.include? entry and line =~ /^\.#{entry} /
|
293
|
+
}
|
294
|
+
}
|
295
|
+
end
|
296
|
+
}
|
297
|
+
return array_collection
|
298
|
+
end
|
299
|
+
|
300
|
+
# ========================================================================= #
|
301
|
+
# === found_these_css_classes?
|
302
|
+
#
|
303
|
+
# To display all the CSS classes we use, do something like this:
|
304
|
+
#
|
305
|
+
# pre found_these_css_classes?.join(''+"\n")
|
306
|
+
#
|
307
|
+
# ========================================================================= #
|
308
|
+
def found_these_css_classes?
|
309
|
+
::Cyberweb.found_these_css_classes?
|
310
|
+
end
|
311
|
+
|
312
|
+
# ========================================================================= #
|
313
|
+
# === show_missing_css_classes
|
314
|
+
#
|
315
|
+
# This method will show missing CSS classes.
|
316
|
+
#
|
317
|
+
# In order for this to work, we depend on class AllCssClasses.
|
318
|
+
# ========================================================================= #
|
319
|
+
def show_missing_css_classes
|
320
|
+
_ = ::Cyberweb::AllCssClasses.new(:default, false)
|
321
|
+
_.test ::Cyberweb.found_these_css_classes
|
322
|
+
_.run
|
323
|
+
result = _.result
|
324
|
+
spacer
|
325
|
+
h2 'Result'
|
326
|
+
pre result.to_s
|
327
|
+
pre ::Cyberweb.found_these_css_classes.to_s
|
328
|
+
spacer
|
329
|
+
div('mart1em mars2em pad1em','','RAND_BORD_2PX') {
|
330
|
+
h2 'Now showing all missing <b class="orange">'+
|
331
|
+
'CSS classes</b> for this page:'
|
332
|
+
result.each { |entry|
|
333
|
+
marl2em sg(:pfeil_rechts,'marr4px')+entry, 'red'
|
334
|
+
}
|
335
|
+
}
|
336
|
+
end
|
337
|
+
|
338
|
+
# ========================================================================= #
|
339
|
+
# === return_css_style_for_the_triangle_isosceles_bubble
|
340
|
+
#
|
341
|
+
# This method will return two CSS classes, which can be used if you
|
342
|
+
# want to make use of CSS bubbles. Currently only the downwards-facing
|
343
|
+
# triangle is available.
|
344
|
+
#
|
345
|
+
# The original source has been adapted from here:
|
346
|
+
#
|
347
|
+
# http://nicolasgallagher.com/pure-css-speech-bubbles/demo/
|
348
|
+
#
|
349
|
+
# ========================================================================= #
|
350
|
+
def return_css_style_for_the_triangle_isosceles_bubble(
|
351
|
+
additional_css_rules = ''
|
352
|
+
)
|
353
|
+
if additional_css_rules and additional_css_rules.empty?
|
354
|
+
additional_css_rules = 'margin: 1em 0 3em;'
|
355
|
+
end
|
356
|
+
return '.triangle_isosceles_bubble {
|
357
|
+
position:relative;
|
358
|
+
padding:15px;
|
359
|
+
'+additional_css_rules.to_s+';
|
360
|
+
width:500px;
|
361
|
+
color:#000;
|
362
|
+
background:#f3961c; /* default background for browsers without gradient support */
|
363
|
+
/* css3 */
|
364
|
+
background:linear-gradient(#f9d835, #f3961c);
|
365
|
+
border-radius:10px;
|
366
|
+
border: 1px solid black;
|
367
|
+
}
|
368
|
+
|
369
|
+
/* This class creates the triangle that faces downwards */
|
370
|
+
.triangle_isosceles_bubble:after {
|
371
|
+
content:"";
|
372
|
+
position:absolute;
|
373
|
+
bottom:-13px; /* value = - border-top-width - border-bottom-width */
|
374
|
+
left:30px; /* controls the horizontal position */
|
375
|
+
border-width: 15px 15px 0; /* vary these values to change the angle of the vertex */
|
376
|
+
border-style: solid;
|
377
|
+
border-color: #f3961c transparent;
|
378
|
+
display:block;
|
379
|
+
width:0;
|
380
|
+
}'
|
381
|
+
end
|
382
|
+
|
383
|
+
# ========================================================================= #
|
384
|
+
# === colour_gradient_left_to_right
|
385
|
+
#
|
386
|
+
# This method will "return" a CSS class, for a colour-gradient left to
|
387
|
+
# right.
|
388
|
+
# ========================================================================= #
|
389
|
+
def colour_gradient_left_to_right(
|
390
|
+
colour1 = :steelblue,
|
391
|
+
colour2 = :darkgreen,
|
392
|
+
css_name_that_will_be_returned = '.gradient1'
|
393
|
+
)
|
394
|
+
return "#{css_name_that_will_be_returned} {
|
395
|
+
background: linear-gradient(to right, #{colour1}, #{colour2});
|
396
|
+
}"
|
397
|
+
end; alias colour_gradient colour_gradient_left_to_right # === colour_gradient
|
398
|
+
|
399
|
+
# ========================================================================= #
|
400
|
+
# === colour_gradient_right_to_left
|
401
|
+
#
|
402
|
+
# This method will "return" a CSS class, for a colour-gradient left to
|
403
|
+
# right.
|
404
|
+
# ========================================================================= #
|
405
|
+
def colour_gradient_right_to_left(
|
406
|
+
colour1 = :steelblue,
|
407
|
+
colour2 = :darkgreen,
|
408
|
+
css_name_that_will_be_returned = '.gradient1'
|
409
|
+
)
|
410
|
+
return "#{css_name_that_will_be_returned} {
|
411
|
+
background: linear-gradient(to left, #{colour1}, #{colour2});
|
412
|
+
}"
|
413
|
+
end
|
414
|
+
|
415
|
+
# ========================================================================= #
|
416
|
+
# === css_class_or_no_class
|
417
|
+
# ========================================================================= #
|
418
|
+
def css_class_or_no_class(i = '')
|
419
|
+
unless i.to_s.empty?
|
420
|
+
i = " class=\"#{i}\""
|
421
|
+
end
|
422
|
+
return i
|
423
|
+
end
|
424
|
+
|
425
|
+
# ========================================================================= #
|
426
|
+
# === css_style_or_no_style
|
427
|
+
# ========================================================================= #
|
428
|
+
def css_style_or_no_style(i = '')
|
429
|
+
unless i.to_s.empty?
|
430
|
+
i = " style=\"#{i}\""
|
431
|
+
end
|
432
|
+
return i
|
433
|
+
end
|
434
|
+
|
435
|
+
# ========================================================================= #
|
436
|
+
# === set_font_size
|
437
|
+
#
|
438
|
+
# Set the font size to use via this method.
|
439
|
+
#
|
440
|
+
# Usage example for this:
|
441
|
+
#
|
442
|
+
# w.font_size = '1.1em'
|
443
|
+
#
|
444
|
+
# ========================================================================= #
|
445
|
+
def set_font_size(
|
446
|
+
this_font_size = 'default'
|
447
|
+
)
|
448
|
+
# ======================================================================= #
|
449
|
+
# We will work on Strings past the next point.
|
450
|
+
# ======================================================================= #
|
451
|
+
this_font_size = this_font_size.to_s.strip
|
452
|
+
# ======================================================================= #
|
453
|
+
# Remove leading 'FS' strings - at the least this is the main rationale
|
454
|
+
# for the following .sub!() method call.
|
455
|
+
# ======================================================================= #
|
456
|
+
this_font_size.sub!(/FS/,'') if this_font_size.include? 'FS'
|
457
|
+
this_font_size.gsub!(/_/,'.') if this_font_size.include? '_'
|
458
|
+
case this_font_size
|
459
|
+
# ======================================================================= #
|
460
|
+
# === larger
|
461
|
+
# ======================================================================= #
|
462
|
+
when 'larger',
|
463
|
+
'bigger'
|
464
|
+
this_font_size = '1.10em;'
|
465
|
+
# ======================================================================= #
|
466
|
+
# === smaller
|
467
|
+
# ======================================================================= #
|
468
|
+
when 'smaller'
|
469
|
+
this_font_size = @config['default_smaller_font_size']
|
470
|
+
when 'def','default'
|
471
|
+
# ===================================================================== #
|
472
|
+
# The default font size. Can be found in the config file.
|
473
|
+
# constant still has it though.
|
474
|
+
# ===================================================================== #
|
475
|
+
this_font_size = @config['default_font_size']
|
476
|
+
end
|
477
|
+
# ======================================================================= #
|
478
|
+
# Now sanitize it a bit.
|
479
|
+
# ======================================================================= #
|
480
|
+
this_font_size = this_font_size.delete(' ')
|
481
|
+
addnl(
|
482
|
+
return_this_css_style(
|
483
|
+
'body { font-size:'+this_font_size+'; }'
|
484
|
+
)
|
485
|
+
)
|
486
|
+
end; alias font_size= set_font_size # === font_size=
|
487
|
+
alias font_size set_font_size # === font_size
|
488
|
+
alias use_this_font_size set_font_size # === use_this_font_size
|
489
|
+
|
490
|
+
# ========================================================================= #
|
491
|
+
# === use_monospace_font
|
492
|
+
#
|
493
|
+
# By default this will use the "Lucida Console" font.
|
494
|
+
# ========================================================================= #
|
495
|
+
def use_monospace_font(
|
496
|
+
use_this_font = '"Lucida Console", Monaco, monospace'
|
497
|
+
)
|
498
|
+
use_this_font = use_this_font.dup if use_this_font.frozen?
|
499
|
+
use_this_font << ';' unless use_this_font.end_with? ';'
|
500
|
+
append_to_css_style '
|
501
|
+
body {
|
502
|
+
font-family: '+use_this_font+'
|
503
|
+
}
|
504
|
+
'
|
505
|
+
end; alias monospace_font use_monospace_font # === monospace_font
|
506
|
+
|
507
|
+
# ========================================================================= #
|
508
|
+
# === add_all_local_css_files
|
509
|
+
# ========================================================================= #
|
510
|
+
def add_all_local_css_files(
|
511
|
+
i = ARRAY_LOCAL_CSS_FILES
|
512
|
+
)
|
513
|
+
# if is_on_roebe?
|
514
|
+
# into = Cyberweb.log_directory?+'css_dataset.css'
|
515
|
+
# if File.exist? into
|
516
|
+
# File.delete(into)
|
517
|
+
# end
|
518
|
+
# mkdir(Cyberweb.log_directory?) unless File.directory?(Cyberweb.log_directory?)
|
519
|
+
# end
|
520
|
+
i.each {|this_css_file|
|
521
|
+
if this_css_file.frozen?
|
522
|
+
this_css_file = this_css_file.dup
|
523
|
+
end
|
524
|
+
this_css_file << '.css' unless this_css_file.end_with? '.css'
|
525
|
+
# ===================================================================== #
|
526
|
+
# Add the content of these style-sheets as-is.
|
527
|
+
# ===================================================================== #
|
528
|
+
# if File.exist? target
|
529
|
+
# addn(return_css_style(File.read(target)))
|
530
|
+
# end
|
531
|
+
# ===================================================================== #
|
532
|
+
# The following code is for link-rel stylesheets, but it is a
|
533
|
+
# bit buggy. May have to fix this at a later time.
|
534
|
+
# ===================================================================== #
|
535
|
+
# _ = '<link rel="stylesheet" type="text/css" '\
|
536
|
+
# 'href="'+relative_path?+'cascading_style_sheets/'+this_css_file+'" />'
|
537
|
+
# _ = '<link rel="stylesheet" type="text/css" '\
|
538
|
+
# 'href="'+::Cyberweb.project_base_dir?'" />'
|
539
|
+
target_file = Cyberweb.project_base_dir?+'cascading_style_sheets/'+this_css_file
|
540
|
+
if File.exist? target_file
|
541
|
+
content_of_this_css_file = File.read(target_file, encoding: use_which_encoding?)
|
542
|
+
dataset = ::Cyberweb.style_tag(content_of_this_css_file)
|
543
|
+
addnl(dataset)
|
544
|
+
# if is_on_roebe?
|
545
|
+
# append_what_into(dataset, into)
|
546
|
+
# end
|
547
|
+
else
|
548
|
+
e "No file exists at #{target_file}."
|
549
|
+
end
|
550
|
+
}
|
551
|
+
end; alias add_default_css_files add_all_local_css_files # === add_default_css_files
|
552
|
+
alias append_default_css_files add_all_local_css_files # === append_default_css_files
|
553
|
+
|
554
|
+
# ========================================================================= #
|
555
|
+
# === set_background
|
556
|
+
#
|
557
|
+
# Use this to set a specific background colour.
|
558
|
+
#
|
559
|
+
# Usage example:
|
560
|
+
#
|
561
|
+
# w.background = 'black'
|
562
|
+
#
|
563
|
+
# Hmm doesn't seem to work ... odd.
|
564
|
+
# ========================================================================= #
|
565
|
+
def set_background(
|
566
|
+
colour = 'black'
|
567
|
+
)
|
568
|
+
_ = 'body { '.dup
|
569
|
+
case colour # Handle symbols here, since Jan 2014.
|
570
|
+
when :scroll
|
571
|
+
_ << ' background-attachment: scroll; '
|
572
|
+
else
|
573
|
+
_ << "background-color: #{colour};"
|
574
|
+
end
|
575
|
+
_ << ' }'
|
576
|
+
add_this_css_style(_)
|
577
|
+
end; alias background_colour set_background # === background_colour
|
578
|
+
alias background_color set_background # === background_color
|
579
|
+
alias background_color= set_background # === background_color?
|
580
|
+
alias background_colour= set_background # === background_colour=
|
581
|
+
alias background set_background # === background
|
582
|
+
|
583
|
+
# ========================================================================= #
|
584
|
+
# === add_this_remote_css_page
|
585
|
+
#
|
586
|
+
# Use this method in order to include a remote css file.
|
587
|
+
#
|
588
|
+
# The argument to this method should be the remote URL that
|
589
|
+
# you want to access.
|
590
|
+
#
|
591
|
+
# Please use use this method solely for remote URLs.
|
592
|
+
#
|
593
|
+
# Specific Usage Example:
|
594
|
+
#
|
595
|
+
# css_remote_url 'http://www.playgroundblues.com/media/stylesheets/screen.css'
|
596
|
+
#
|
597
|
+
# ========================================================================= #
|
598
|
+
def add_this_remote_css_page(i)
|
599
|
+
addnl(
|
600
|
+
'<link rel="stylesheet" href="'+i+'" type="text/css" media="screen">'
|
601
|
+
)
|
602
|
+
end; alias css_remote_url add_this_remote_css_page # === css_remote_url
|
603
|
+
alias external_stylesheet add_this_remote_css_page # === external_stylesheet
|
604
|
+
alias remote_css add_this_remote_css_page # === remote_css
|
605
|
+
alias add_remote_css_page add_this_remote_css_page # === add_remote_css_page
|
606
|
+
alias css_file= add_this_remote_css_page # === css_file=
|
607
|
+
alias add_css_file add_this_remote_css_page # === add_css_file
|
608
|
+
alias css_file add_this_remote_css_page # === css_file
|
609
|
+
alias external_style_sheet add_this_remote_css_page # === external_style_sheet
|
610
|
+
|
611
|
+
# ========================================================================= #
|
612
|
+
# === white_font
|
613
|
+
# ========================================================================= #
|
614
|
+
def white_font
|
615
|
+
add_this_css_style(
|
616
|
+
'body { color: white; }'
|
617
|
+
)
|
618
|
+
end
|
619
|
+
|
620
|
+
# ========================================================================= #
|
621
|
+
# === listing_css
|
622
|
+
# ========================================================================= #
|
623
|
+
def listing_css(i)
|
624
|
+
::Cyberweb.listing_css_object = i
|
625
|
+
end
|
626
|
+
|
627
|
+
end; end
|