diff --git a/404.html b/404.html index 7a43d6c9..45fd09b7 100644 --- a/404.html +++ b/404.html @@ -19,7 +19,7 @@ +{"description":"ENiGMA½ BBS is modern open source BBS software with a nostalgic flair, written in Node.js.","url":"/enigma-bbs/404.html","@type":"WebPage","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"ENiGMA½ BBS Software","@context":"https://schema.org"} diff --git a/admin/administration.html b/admin/administration.html index dd1eddad..16b1cd36 100644 --- a/admin/administration.html +++ b/admin/administration.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/administration.html"},"description":"Administration","url":"/enigma-bbs/admin/administration.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Administration","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/admin/oputil.html b/admin/oputil.html index 19fe2624..c6322940 100644 --- a/admin/oputil.html +++ b/admin/oputil.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/oputil.html"},"description":"The oputil CLI ENiGMA½ comes with oputil.js henceforth known as oputil, a command line interface (CLI) tool for sysops to perform general system and user administration. You likely used oputil to do the initial ENiGMA configuration.","url":"/enigma-bbs/admin/oputil.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"oputil","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/admin/updating.html b/admin/updating.html index 67e728b1..b76abcb3 100644 --- a/admin/updating.html +++ b/admin/updating.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/admin/updating.html"},"description":"Updating Keeping your system up to date ensures you have the latest fixes, features, and general improvements. Updating ENiGMA½ can be a bit of a learning curve compared to traditional binary-release systems you may be used to, especially when running from Git cloned source.","url":"/enigma-bbs/admin/updating.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Updating","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/general.html b/art/general.html index 190e4f1e..3f3497ab 100644 --- a/art/general.html +++ b/art/general.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/general.html"},"description":"General Art Information One of the most basic elements of BBS customization is through it’s artwork. ENiGMA½ supports a variety of ways to select, display, and manage art.","url":"/enigma-bbs/art/general.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"General Art Information","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/mci.html b/art/mci.html index 98bc302e..5da1d967 100644 --- a/art/mci.html +++ b/art/mci.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/mci.html"},"description":"MCI Codes ENiGMA½ supports a variety of MCI codes. Some predefined codes produce information about the current user, system, or other statistics while others are used to instantiate a View.","url":"/enigma-bbs/art/mci.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"MCI Codes","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/themes.html b/art/themes.html index d3651dcc..4e58f80e 100644 --- a/art/themes.html +++ b/art/themes.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/themes.html"},"description":"Themes ENiGMA½ comes with an advanced theming system allowing system operators to highly customize the look and feel of their boards. A given installation can have as many themes as you like for your users to choose from.","url":"/enigma-bbs/art/themes.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Themes","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/button_view.html b/art/views/button_view.html index 5fad5f74..e1bc568c 100644 --- a/art/views/button_view.html +++ b/art/views/button_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/button_view.html"},"description":"Button View A button view supports displaying a button on a screen.","url":"/enigma-bbs/art/views/button_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Button View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/edit_text_view.html b/art/views/edit_text_view.html index 82ae74ef..b1362aa6 100644 --- a/art/views/edit_text_view.html +++ b/art/views/edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/edit_text_view.html"},"description":"Edit Text View An edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values defined by the module.","url":"/enigma-bbs/art/views/edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Edit Text View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/full_menu_view.html b/art/views/full_menu_view.html index 5c3da8bb..1a6bf83c 100644 --- a/art/views/full_menu_view.html +++ b/art/views/full_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/full_menu_view.html"},"description":"Full Menu View A full menu view supports displaying a list of times on a screen in a very configurable manner. A full menu view supports either a single row or column of values, similar to Horizontal Menu (HM) and Vertical Menu (VM), or in multiple columns.","url":"/enigma-bbs/art/views/full_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Full Menu View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/horizontal_menu_view.html b/art/views/horizontal_menu_view.html index fa01f685..8cdec5c1 100644 --- a/art/views/horizontal_menu_view.html +++ b/art/views/horizontal_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/horizontal_menu_view.html"},"description":"Horizontal Menu View A horizontal menu view supports displaying a list of times on a screen horizontally (side to side, in a single row) similar to a lightbox.","url":"/enigma-bbs/art/views/horizontal_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Horizontal Menu View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/mask_edit_text_view.html b/art/views/mask_edit_text_view.html index 3268cdb8..728544b3 100644 --- a/art/views/mask_edit_text_view.html +++ b/art/views/mask_edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/mask_edit_text_view.html"},"description":"Mask Edit Text View A mask edit text view supports editing form values on a screen. This can be for new entry as well as editing existing values. Unlike a edit text view, the mask edit text view uses a mask pattern to specify what format the values should be entered in.","url":"/enigma-bbs/art/views/mask_edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Mask Edit Text View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/multi_line_edit_text_view.html b/art/views/multi_line_edit_text_view.html index 0fe37927..76577e80 100644 --- a/art/views/multi_line_edit_text_view.html +++ b/art/views/multi_line_edit_text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/multi_line_edit_text_view.html"},"description":"Multi Line Edit Text View A text display / editor designed to edit or display a message.","url":"/enigma-bbs/art/views/multi_line_edit_text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Multi Line Edit Text View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/predefined_label_view.html b/art/views/predefined_label_view.html index 52c84a78..abaf5346 100644 --- a/art/views/predefined_label_view.html +++ b/art/views/predefined_label_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/predefined_label_view.html"},"description":"Predefined Label View A predefined label view supports displaying a predefined MCI label on a screen.","url":"/enigma-bbs/art/views/predefined_label_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Predefined Label View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/spinner_menu_view.html b/art/views/spinner_menu_view.html index 4dd1d9d9..eb4fd0bc 100644 --- a/art/views/spinner_menu_view.html +++ b/art/views/spinner_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/spinner_menu_view.html"},"description":"Spinner Menu View A spinner menu view supports displaying a set of times on a screen as a list, with one item displayed at a time. This is generally used to pick one option from a list. Some examples could include selecting from a list of states, themes, etc.","url":"/enigma-bbs/art/views/spinner_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Spinner Menu View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/text_view.html b/art/views/text_view.html index a567d629..d53a2d89 100644 --- a/art/views/text_view.html +++ b/art/views/text_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/text_view.html"},"description":"Text View A text label view supports displaying simple text on a screen.","url":"/enigma-bbs/art/views/text_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Text View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/toggle_menu_view.html b/art/views/toggle_menu_view.html index 0d39402a..b6f571cc 100644 --- a/art/views/toggle_menu_view.html +++ b/art/views/toggle_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/toggle_menu_view.html"},"description":"Toggle Menu View A toggle menu view supports displaying a list of options on a screen horizontally (side to side, in a single row) similar to a Horizontal Menu. It is designed to present one of two choices easily.","url":"/enigma-bbs/art/views/toggle_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Toggle Menu View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/art/views/vertical_menu_view.html b/art/views/vertical_menu_view.html index 41c68f24..a2e9b082 100644 --- a/art/views/vertical_menu_view.html +++ b/art/views/vertical_menu_view.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/art/views/vertical_menu_view.html"},"description":"Vertical Menu View A vertical menu view supports displaying a list of times on a screen vertically in a single column, similar to a lightbar. This type of control is often useful for lists of items or menu controls.","url":"/enigma-bbs/art/views/vertical_menu_view.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Vertical Menu View","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/acs.html b/configuration/acs.html index 7f3b0725..97f7e096 100644 --- a/configuration/acs.html +++ b/configuration/acs.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/acs.html"},"description":"Access Condition System (ACS) ENiGMA½ uses an Access Condition System (ACS) that is both familiar to oldschool BBS operators and has it’s own style. With ACS, SysOp’s are able to control access to various areas of the system based on various conditions such as group membership, connection type, etc. Various touch points in the system are configured to allow for acs checks. In some cases ACS is a simple boolean check while others (via ACS blocks) allow to define what conditions must be true for certain rights such as read and write (though others exist as well).","url":"/enigma-bbs/configuration/acs.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Access Condition System (ACS)","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/archivers.html b/configuration/archivers.html index d0a5a134..2fbde173 100644 --- a/configuration/archivers.html +++ b/configuration/archivers.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/archivers.html"},"description":"Archivers ENiGMA½ can detect and process various archive formats such as zip and arj for a variety of tasks from file upload processing to EchoMail bundle compress/decompression. The archives section of config.hjson is used to override defaults, add new handlers, and so on.","url":"/enigma-bbs/configuration/archivers.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Archivers","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/colour-codes.html b/configuration/colour-codes.html index fb00fd41..e3deb562 100644 --- a/configuration/colour-codes.html +++ b/configuration/colour-codes.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/colour-codes.html"},"description":"ENiGMA½ supports Renegade-style pipe colour codes for formatting strings. You’ll see them used throughout your configuration, and can also be used in places like onelinerz, rumourz, full screen editor etc.","url":"/enigma-bbs/configuration/colour-codes.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Colour Codes","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/config-files.html b/configuration/config-files.html index 75e974bf..c07d93fb 100644 --- a/configuration/config-files.html +++ b/configuration/config-files.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/config-files.html"},"description":"General Information ENiGMA½ configuration files such as the system config, menus and themes are formatted in the HJSON format.","url":"/enigma-bbs/configuration/config-files.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Configuration Files","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/config-hjson.html b/configuration/config-hjson.html index 3f48bd23..e37192ee 100644 --- a/configuration/config-hjson.html +++ b/configuration/config-hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/config-hjson.html"},"description":"System Configuration The main system configuration file, config.hjson both overrides defaults and provides additional configuration such as message areas. Defaults lived in core/config_default.js.","url":"/enigma-bbs/configuration/config-hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"System Configuration","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/creating-config.html b/configuration/creating-config.html index c41bba6c..e38a6fe1 100644 --- a/configuration/creating-config.html +++ b/configuration/creating-config.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/creating-config.html"},"description":"Configuration files in ENiGMA½ are simple UTF-8 encoded HJSON files. HJSON is just like JSON but simplified and much more resilient to human error.","url":"/enigma-bbs/configuration/creating-config.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Creating Initial Config Files","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/directory-structure.html b/configuration/directory-structure.html index e4498713..7d0bccb7 100644 --- a/configuration/directory-structure.html +++ b/configuration/directory-structure.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/directory-structure.html"},"description":"All paths mentioned here are relative to the ENiGMA½ checkout directory.","url":"/enigma-bbs/configuration/directory-structure.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Directory Structure","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/email.html b/configuration/email.html index 0f322c72..b1ce1d95 100644 --- a/configuration/email.html +++ b/configuration/email.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/email.html"},"description":"Email Support ENiGMA½ uses email to send password reset information to users. For it to work, you need to provide valid Nodemailer compatible email block in your config.hjson. Nodemailer supports SMTP in addition to many pre-defined services for ease of use. The transport block within email must be Nodemailer compatible.","url":"/enigma-bbs/configuration/email.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Email","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/event-scheduler.html b/configuration/event-scheduler.html index 094c85ef..61e45522 100644 --- a/configuration/event-scheduler.html +++ b/configuration/event-scheduler.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/event-scheduler.html"},"description":"Event Scheduler The ENiGMA½ scheduler allows system operators to configure arbitrary events that can can fire based on date and/or time, or by watching for changes in a file. Events can kick off internal handlers, custom modules, or binaries & scripts.","url":"/enigma-bbs/configuration/event-scheduler.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Event Scheduler","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/external-binaries.html b/configuration/external-binaries.html index c2d9d2a8..9d3ac6bd 100644 --- a/configuration/external-binaries.html +++ b/configuration/external-binaries.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/external-binaries.html"},"description":"External Support Binaries ENiGMA½ relies on various external binaries in order to perform common tasks such as processing file archives and extracting information from uploads/file imports, some legacy transfer protocols, etc.","url":"/enigma-bbs/configuration/external-binaries.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"External Support Binaries","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/file-transfer-protocols.html b/configuration/file-transfer-protocols.html index 2b3a4b77..e650e3e7 100644 --- a/configuration/file-transfer-protocols.html +++ b/configuration/file-transfer-protocols.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/file-transfer-protocols.html"},"description":"ENiGMA½ currently relies on external executable binaries for “legacy” file transfer protocols such as X, Y, and ZModem. Remember that ENiGMA½ also support modern web (HTTP/HTTPS) downloads!","url":"/enigma-bbs/configuration/file-transfer-protocols.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"File Transfer Protocols","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/hjson.html b/configuration/hjson.html index a3668b27..432204ad 100644 --- a/configuration/hjson.html +++ b/configuration/hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/hjson.html"},"description":"JSON for Humans! HJSON is the configuration file format used by ENiGMA½ for System Configuration, Menus, etc. HJSON is is JSON for humans!","url":"/enigma-bbs/configuration/hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"HJSON Config Files","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} diff --git a/configuration/menu-hjson.html b/configuration/menu-hjson.html index 8fbe17c6..802e692c 100644 --- a/configuration/menu-hjson.html +++ b/configuration/menu-hjson.html @@ -17,11 +17,11 @@ - + +{"mainEntityOfPage":{"@type":"WebPage","@id":"/enigma-bbs/configuration/menu-hjson.html"},"description":"Menu HJSON The core of a ENiGMA½ based BBS is it’s menus driven by what will be referred to as menu.hjson. Throughout ENiGMA½ documentation, when menu.hjson is referenced, we’re actually talking about config/menus/yourboardname-*.hjson. These files determine the menus (or screens) a user can see, the order they come in, how they interact with each other, ACS configuration, and so on. Like all configuration within ENiGMA½, menu configuration is done in HJSON format.","url":"/enigma-bbs/configuration/menu-hjson.html","@type":"BlogPosting","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"/enigma-bbs/assets/images/enigma-logo.png"}},"headline":"Menu HSJON","dateModified":"2022-08-01T21:06:07+00:00","datePublished":"2022-08-01T21:06:07+00:00","@context":"https://schema.org"} @@ -2420,7 +2420,7 @@

For more information on views and associated MCI codes, see MCI Codes.

Submit Handlers

-

When a form is submitted, it’s data is matched against a submit handler. When a match is found, it’s action is performed.

+

When a form is submitted, it’s data is matched against a submit handler. When a match is found, it’s action is performed. Note: Setting the value explicitly to null matches against any value.

Submit Actions

Submit actions are declared using the action member of a submit handler block. Actions can be kick off system/global or local-to-module methods, launch other menus, etc.

@@ -2523,6 +2523,10 @@ nextArea Sets the users message area to the next available. + + setClientEncoding + Sets the client encoding (such as cp437 and utf-8.) + @@ -2757,6 +2761,169 @@ } +

Case Study: Manual Encoding Selection

+ +

Enigma½ tries to automatically determine the proper encoding for a client when it connects. Unfortunately, there are cases where the wrong encoding can be selected, resulting in terminal programs that are not supported. If your user base contains users that would like to connect with unsupported clients, one solution is to offer manual encoding selection.

+ +

This can be accomplished with the system method @systemMethod:setClientEncoding.

+ +

Simple example

+ +

A basic config to use this could look something like the following:

+ +
telnetConnected: {
+    art: CONNECT
+    next: clientSelectEncoding
+    config: { nextTimeout: 1500 }
+}
+
+clientSelectEncoding: {
+    art: CLTSEL.ASC
+    next: matrix
+    form: {
+        0: {
+            mci: {
+                HM1: {
+                    submit: true
+                    hotKeys: { U: 0, C: 1 }
+                    hotKeysSubmit: true
+                    focus: true
+                    argName: encoding
+                    items: [
+                      {
+                          text: U) UTF-8
+                          data: utf-8
+                      }
+                      {
+                          text: C) CP437
+                          data: cp437
+                      }
+                    ]
+                }
+            }
+            submit: {
+              *: [
+                {
+                  value: { encoding: null }
+                  action: @systemMethod:setClientEncoding
+                }
+              ]
+            }
+        }
+    }
+}
+
+ +

The artfile for this should not contain extended characters, a simple file list +the following should work:

+ +
Choose your encoding:
+
+%HM1
+
+ +

Auto selection example

+ +

The above example can be further extended to default to the automatically detected encoding by using a slightly more complicated menu system:

+ +

```hjson

+ +

telnetConnected: { + art: CONNECT + next: [ + { + acs: EC0 + next: clientSelectCP437 + } + { + next: clientSelectUTF8 + } + ] + config: { nextTimeout: 1500 } +}

+ +

clientSelectUTF8: { + art: CLTSEL.ASC + next: matrix + config: { font: utf-8 } + form: { + 0: { + mci: { + HM1: { + submit: true + hotKeys: { U: 0, C: 1 } + hotKeysSubmit: true + focus: true + argName: encoding + focusItemIndex: 0 + items: [ + { + text: U) UTF-8 + data: utf-8 + } + { + text: C) CP437 + data: cp437 + } + ] + } + } + submit: { + *: [ + { + value: { encoding: null } + action: @systemMethod:setClientEncoding + } + ] + } + } + } +}

+ +

clientSelectCP437: { + art: CLTSEL.ASC + next: matrix + config: { font: cp437 } + form: { + 0: { + mci: { + HM1: { + submit: true + hotKeys: { U: 0, C: 1 } + hotKeysSubmit: true + focus: true + argName: encoding + focusItemIndex: 1 + items: [ + { + text: U) UTF-8 + data: utf-8 + } + { + text: C) CP437 + data: cp437 + } + ] + } + } + submit: { + *: [ + { + value: { encoding: null } + action: @systemMethod:setClientEncoding + } + ] + } + } + } +}

+ +

Use the same artfile as the previous example.

+ +

Note: This example can be shortened by using @reference sections if desired.

+ +

The acs: sections above will send the user to a different menu depending on whether they have encoding CP437 using EC0 or anything else sent to the UTF8 menu. From there focusItemIndex chooses the default item.

+