diff --git a/ctrl/slyedit_readme.txt b/ctrl/slyedit_readme.txt deleted file mode 100644 index f786aa1aeae31924ccc5a4cf68e73e23b8ac7cc9..0000000000000000000000000000000000000000 --- a/ctrl/slyedit_readme.txt +++ /dev/null @@ -1,1079 +0,0 @@ - SlyEdit message editor - Version 1.89d - Release date: 2025-01-26 - - by - - Eric Oulashin - Sysop of Digital Distortion BBS - BBS internet address: digitaldistortionbbs.com - Alternate: digdist.synchro.net - Email: eric.oulashin@gmail.com - - - -This file describes SlyEdit, a message editor for Synchronet. -Note: For sysops who already have a previous version of SlyEdit -installed and are upgrading to this version, please see the file -Upgrading.txt. - -Contents -======== - 1. Disclaimer - 2. Introduction - 3. Installation & Setup - 4. Features - 5. Configuration file - 6. Ice-style Color Theme Settings - 7. DCT-style Color Theme Settings - 8. Common colors (appearing in both Ice and DCT color theme files) - 9. Text replacements (AKA Macros) -10. User settings -11. Taglines -12. Spell check and dictionaries -13. Version history - - -1. Disclaimer -============= -Although I have tested SlyEdit, I cannot guarantee that it is 100% bug free or -will work as expected in all environments in all cases. That said, I hope you -find SlyEdit useful and enjoy using it. - - -2. Introduction -=============== -SlyEdit is a message editor that I wrote in JavaScript for Synchronet, which -can mimic the look and feel of IceEdit or DCT Edit. SlyEdit also supports -customization of colors via theme files, cross-posting into other message -areas, text search, and file import & export (works with files on the -BBS machine, and is enabled only for the sysop). - -The motivation for creating this was that IceEdit and DCT Edit were always -my two favorite BBS message editors, but in a world where 32-bit (and 64-bit) -Windows and *nix platforms are common, 16-bit DOS emulation is required to run -IceEdit and DCT Edit, which is noticeably slow and sometimes unreliable. -Since SlyEdit is written in JavaScript, it is faster than a DOS-based message -editor and can run in any environment in which Synchronet runs, without any -modification or being re-compiled. - -SlyEdit will recognize the user's terminal size and set up the screen -accordingly. The width of the edit area will always be 80 characters and -support up to 79 characters; however, an increased terminal size will provide -more room for message information to be displayed. Also, a terminal height -greater than the standard 24 or 25 characters will provide a taller edit area, -allowing more of the message to be seen on the screen at a time. - -SlyEdit allows the user to select/change the color of their text using the -CTRL-K key, if the allowColorSelection is set to true in SlyEdit.cfg. Also, -you can have SlyEdit convert colors to ANSI when posting messages, for -compatibility with other BBS software. To do so, set the saveColorsAsANSI -setting to true in SlyEdit.cfg. - -As of version 1.88b (2024-02-11), SlyEdit supports inputting UTF-8 text. - -Also, SlyEdit has no moving parts that can wear out over time. - -Thanks go out to the following people for testing: -- Nick of Lightning BBS (lightningbbs.dyndns.org) for testing early versions -- Nick (AKA Access Denied) of The Pharcyde (pharcyde.org) for testing the - newer versions and for his input on various features, mainly message quoting -- echicken (sysop of Electronic Chicken) for his solution to look up the - original author of a message after a user changes the "To" name when - replying to a message - -3. Installation & Setup -======================= -These are the steps for installation: - 1. Extract the archive. If you're viewing this file, then you've probably - already done this. :) - 2. There are 2 ways SlyEdit's files can be copied onto your Synchronet system: - 1. Copy the JavaScript files into your sbbs/exec directory and the .cfg files - into your sbbs/ctrl directory. If you plan to customize your SlyEdit.cfg - or color theme files, it's recommended to also put the .cfg files in your - sbbs/mods directory so that your configuration won't be accidentally - overwritten when updating the files from the Synchronet CVS repository. - SlyEdit will first check the sbbs/mods directory for the configuration - files, then sbbs/ctrl, and then SlyEdit's own directory for the - configuration files. In other words, the SlyEdit configuration files - in sbbs/mods take first precedence, sbbs/ctrl 2nd precedence, and - SlyEdit's own directory takes last precedence for the configuration - files. - 2. Copy all files together into their own directory of your choice - 3. Set up SlyEdit on your BBS with Synchronet's configration program (SCFG). - -SlyEdit can be set to mimic IceEdit or DCT Edit via a command-line parameter. -The values for this parameter are as follows: - ICE: Mimic the IceEdit look & feel - DCT: Mimic the DCT Edit look & feel - RANDOM: Randomly select either the IceEdit or DCT Edit look & feel - -To add SlyEdit to Synchronet's list of external editors, run Synchronet's -configuration program (SCFG) and select "External Programs", and then -"External Editors". The following describes setting up SlyEdit using the -ICE parameter for IceEdit emulation: - 1. Scroll down to the empty slot in the editor list and press Enter to - select it. - 2. For the external editor name, enter "SlyEdit (Ice style)" (without the quotes) - (or similar, depending on your personal preference) - 3. For the internal code, use SLYEDICE (or whatever you want, depending on your - personal preference) - 4. Press Enter to select and edit the new entry. Asuming that the .js files - are in the sbbs/exect directory, the settings should be as follows (the - wording and options shown may vary, depending on the version of Synchronet - you have installed): - Command line: ?SlyEdit.js %f ICE - Access requirement string: ANSI - Intercept standard I/O: No - Native (32-bit) Executable: No - Use Shell to Execute: No - Record Terminal Width: Yes - Word-wrap Quoted Text: Your decision - Wrap to specific width, 80, or no - Automatically Quoted Text: All - Editor Information Files: QuickBBS MSGINF/MSGTMP - Expand Line Feeds to CRLF: Yes - Strip FidoNet Kludge Lines: No - BBS Drop File Type: None - After you've added SlyEdit, your Synchronet configuration window should look - like this: - +[�][?]--------------------------------------------------------------+ - � SlyEdit (Ice style) Editor � - �--------------------------------------------------------------------� - � �Name SlyEdit (Ice style) � - � �Internal Code SLYEDICE � - � �Remote Command Line ?SlyEdit.js %f ICE � - � �Access Requirements ANSI � - � �Intercept Standard I/O No � - � �Native (32-bit) Executable No � - � �Use Shell to Execute No � - � �Record Terminal Width Yes � - � �Word-wrap Quoted Text Yes, for terminal width � - � �Automatically Quoted Text All � - � �Editor Information Files QuickBBS MSGINF/MSGTMP � - � �Expand Line Feeds to CRLF Yes � - � �Strip FidoNet Kludge Lines No � - � �BBS Drop File Type None � - +--------------------------------------------------------------------+ - - For DCT Edit mode, use DCT in place of ICE on the command line. For - random mode, use RANDOM in place of ICE. - - Note that if you placed the files in a different directory, then the - command line should include the full path to SlyEdit.js. For example, - if SlyEdit was placed in sbbs/xtrn/SlyEdit, then the command line would - be /BBS/sbbs/xtrn/DigDist/SlyEdit/SlyEdit.js %f ICE - - -4. Features -=========== -As mentioned earlier, SlyEdit is can mimic the look & feel of IceEdit or -DCT Edit. It also has the following features: -- Message quoting: When replying to a message, users can select lines from the - message to quote. By default, SlyEdit puts the initials of the original - author in front of the quote lines to indicate who originally wrote those - parts of the message. Optionally, sysops may disable the use of initials - in quote lines, in which case SlyEdit simply prefixes quote lines with " > " - as was done in IceEdit, DCT Edit, and other editors of the early-mid 1990s. -- Cross-posting into other message sub-boards: When posting a message to a - message sub-board, SlyEdit allows the user to select other message sub-boards - to post the message into. SlyEdit will post the message to the user's - current message sub-board by default. Using the cross-post feature, the - user can select any number of other message sub-boards to cross-post his/her - message into. SlyEdit respects the ARS security setting for each sub-board - - If a user is not allowed to post in a message sub-board, SlyEdit will not - allow the user to select that sub-board for cross-posting. The user can also - un-select their current message sub-board. When the user un-selects their - current message sub-board and chooses other message sub-boards to post - his/her message into, Synchronet will say that the message was aborted - because the message file wasn't saved as it normally is for the current - message sub-board. However, SlyEdit will output all of the message - sub-boards that the message was posted into. If the user un-selected their - current message sub-board, SlyEdit will also output a note explaining that - the BBS will say the message was aborted, even though it was posted into - other sub-boards and that is normal. -- Text search: Allows the user to search for text in the message. If - the text is found, the message area will scroll to it, and it will be - highlighted. Repeated searches for the same text will look for the - next occurrance of that text. -- Allows changing the message subject - Note: If using a Synchronet 3.17c development build (pre official release), - you will need a build from July 21, 2019 or newer. -- Navigation: Page up/down, home/end of line, and arrow keys -- Slash commands (at the start of the line): - /A: Abort - /S: Save - /Q: Quote message - /C: Cross-post message sub-board selection -- Sysops can import a file (stored on the BBS machine) into the message -- Sysops can export the current message to a file (on the BBS machine) -- Configuration file with behavior and color settings. See section 4 - (Configuration File) for more information. -- Spell check - -The following is a summary of the keyboard shortcuts, from SlyEdit's command -help screen (note that file import, with Ctrl-O & Ctrl-X, are only available to -the sysop or users with sysop access, and file import/export takes place on the -BBS machine): - -Help keys Slash commands (on blank line) ---------- ------------------------------ -Ctrl-G : Input graphic character � /A : Abort -Ctrl-L : Command key list (this list) � /S : Save - � /Q : Quote message -Ctrl-T : List text replacements � /T : List text replacements - � /U : Your user settings - � /C : Cross-post selection - � /UPLOAD : Upload a message - -Command/edit keys ------------------ -Ctrl-A : Abort message � PageUp : Page up -Ctrl-Z : Save message � PageDown: Page down -Ctrl-Q : Quote message � Ctrl-W : Word/text search -Insert/Ctrl-I: Toggle insert/overwrite mode � Ctrl-D : Delete line -Ctrl-S : Change subject � ESC : Command menu -Ctrl-U : Your user settings � Ctrl-C : Cross-post selection -Ctrl-K : Change text color � Ctrl-R : Spell checker -Ctrl-O : Import a file � Ctrl-X : Export to file - - -5. Configuration file -===================== -The configuration file, SlyEdit.cfg, is split up into 3 sections - -Behavior, Ice colors, and DCT colors. These sections are designated -by [BEHAVIOR], [ICE_COLORS], and [DCT_COLORS], respectively. - -To help with configuration, there is a menu-driven configuration script in -sbbs/exec called slyedcfg.js. To run it, open a command prompt in the sbbs/exec -directory and run it with this command: -jsexec slyedcfg - -Alternately, you can specify the .js filename extension if you want to: -jsexec slyedcfg.js - -The configuration script will copy your SlyEdit configuration file to your -sbbs/mods directory to help prevent it from being accidentally overridden when -doing an update from the Synchronet source repository. SlyEdit will pick up its -configuration from sbbs/mods if the configuration file is there. - -The configuration settings are described below: - -Behavior settings ------------------ -Setting Description -------- ----------- -displayEndInfoScreen Whether or not to display the info - screen when SlyEdit exits. Valid values - are true and false. If this option is - not specified, this feature will be - enabled by default. - -userInputTimeout Whether or not to use an input timeout - for users. Valid values are true and - false. Note: The input timeout is not - used for sysops. If this option is not - specified, this feature will be enabled - by default. - -reWrapQuoteLines Whether or not to re-wrap quote lines. Valid - values are true and false. This feature is - enabled by default. With this feature - enabled, SlyEdit will re-wrap quote lines - to still be complete and readable after the - quote prefix character is added to the front - of the quote lines. SlyEdit is able to - recognize quote lines beginning with > - or 2 letters and a > (such as EO>). If this - feature is disabled, quote lines will simply - be trimmed to make room for the quote prefix - character to be added to the front. - -allowColorSelection Whether or not to let the user change the - color/attributes of the text they're typing. - Defaults to true. When this is enabled, the - user can change their text color with the - CTRL-K hotkey. - -saveColorsAsANSI Whether or not to save message color/attribute - codes as ANSI (if not, they will be saved as - Synchronet attribute codes). Saving colors as - ANSI in posted messages provides a - compatibility with other BBS software and - message readers that might not understand - Synchronet attribute codes (but most do - understand ANSI). - -allowCrossPosting Whether or not to allow cross-posting - messages into different/multiple message - sub-boards. Valid values are true and false. - -enableTextReplacements Toggles the use of text replacements (AKA - macros) as the user types a message. Valid - values are true, false, and regex. If regex - is used, text replacements will be enabled - and used as regular expressions as - implemented by JavaScript. For more - information, see section 10 (Text - replacements (AKA Macros)). - -tagLineFilename Specifies the name of the file that stores - taglines, which users can optionally choose - from to be appended to their message upon - saving the message. - -taglinePrefix Some text to be added to the front of - a tagline that is selected from the user. - The intention of this setting is to - differentiate taglines from the rest of the - message. This defaults to the string "... " - (3 dots and a space). If desired, this can - be set to a blank string (nothing after the - =) - for instance, if you only want to put - double quotes around text lines, you could - set this to blank and enable the - quoteTagLines setting. - -quoteTaglines Whether or not to put selected taglines in - double quotes. This defaults to false. If - you like taglines to have double quotes and - no prefix, you can set this to true and set - taglinePrefix to a blank string (nothing - after the =). - -shuffleTaglines Whether or not to shuffle (randomize) the - list of taglines displayed to the user for - selection. - -allowUserSettings Whether or not to allow users to configure - their own user settings. This defaults to - true. - -allowEditQuoteLines Whether or not to allow the user to edit - quote lines. Valid values are true and - false. If this option is not specified, the - default value is true. - -allowSpellCheck Whether or not to allow spell check. Valid - values are true and false. Defaults to true. - You might want to disable spell check if, - for instance, the spell check feature causes - an "out of memory" error on your system. - -useQuoteLineInitials Whether or not to prefix quoted message lines - with the previous author's initials when - replying to a message. Valued values are - true and false. If this setting is disabled, - SlyEdit will simply prefix the quoted lines - with " > ", as was done in IceEdit, DCT Edit, - and other message editors of the early-mid - 1990s. This setting is enabled by default. - This setting serves as the default for the - user setting, which users can configure in - their own settings. - -indentQuoteLinesWithInitials When prefixing quoted messages lines with the - previous author's initials, this setting - specifies whether or not to indent quoted - lines with a space. Valued values are true - and false. This setting is disabled by - default. This setting serves as the default - for the user setting, which users can - configure in their own settings. - -enableTagLines Whether or not to enable the option for users - to choose a tagline to append to their - message upon saving the message. This - setting serves as the default for the user - setting, which users can configure in their - own settings. - -dictionaryFilenames Dictionary filenames (used for spell check). - This is a comma-separated list of dictionary - filenames. The dictionary filenames are in - the format dictionary_<language>.txt, where - <language> is the language name. In this - list, the filenames can be in that format, or - just <language>.txt, or just <language>. - Leave blank to use all dictionary files that - exist on the system. The dictionary files - are located in either sbbs/mods, sbbs/ctrl, - or the same directory as SlyEdit. - -Ice colors ----------- -Setting Description -------- ----------- -ThemeFilename The name of the color theme file to use. - Note: Ice-style theme settings are described - in Section 5: Ice-style Color Theme Settings. - If no theme file is specified, then default - colors will be used. -menuOptClassicColors Whether or not to use the classic Ice-style - menu option colors. Valid options are true - and false. If this option is set to false, - then new colors will be used for Ice-style - menu options. If this is set to true, then - the classic Ice-style menu option colors will - be used. Note that if this is set to false, - the color setting SelectedOptionTextColor - won't be used. - -DCT colors ----------- -Setting Description -------- ----------- -ThemeFilename The name of the color theme file to use. - Note: DCT-style theme settings are described - in Section 8: DCT-style Color Theme Settings. - If no theme file is specified, then default - colors will be used. - -The color theme files are plain text files that can be edited with a text -editor. For each color setting, you can specify color attribute characters as -specified in the Synchronet documentation for attribute (Ctrl-A) codes: -http://wiki.synchro.net/custom:ctrl-a_codes -Note that you don't need control (Ctrl-A) characters for the color settings; -just the attribute characters. A couple examples of specifying colors: - -High green: gh -Normal cyan: c - - -6. Ice-style Color Theme Settings -================================= -Note that you don't need control (Ctrl-A) characters for the color settings; -just the attribute characters. - -The following options are valid for Ice-style theme files: ----------------------------------------------------------- -QuoteLineColor The color for quoted lines in the message - -BorderColor1 The first color to use for borders - (for alternating border colors) - -BorderColor2 The other color to use for borders - (for alternating border colors) - -KeyInfoLabelColor The color to use for key information - labels (displayed on the bottom border) - -TopInfoBkgColor The color to use for the background in - the informational area at the top - -TopLabelColor The color to use for informational labels - in the informational area at the top - -TopLabelColonColor The color to use for the colons (:) in the - informational area at the top - -TopToColor The color to use for the "To" name in the - informational area at the top - -TopFromColor The color to use for the "From" name in the - informational area at the top - -TopSubjectColor The color to use for the subject in the - informational area at the top - -TopTimeColor The color to use for the time left in the - informational area at the top - -TopTimeLeftColor The color to use for the time left in the - informational area at the top - -EditMode The color to use for the edit mode text - -QuoteWinText The color for non-highlighted text in - the quote window - -QuoteLineHighlightColor The color for highlighted text in the - quote window - -QuoteWinBorderTextColor The color for the quote window borders - -; Colors for the multi-choice options -SelectedOptionBorderColor The color to use for the borders around - text for selected multi-choice options - -SelectedOptionTextColor The color to use for the text for selected - multi-choice options - -UnselectedOptionBorderColor The color to use for the borders around - text for unselected multi-choice options - -UnselectedOptionTextColor The color to use for the text for unselected - multi-choice options - -7. DCT-style Color Theme Settings -================================= -Note that you don't need control (Ctrl-A) characters for the color settings; -just the attribute characters. - -The following options are valid for DCT-style theme files: ----------------------------------------------------------- -QuoteLineColor The color for quoted lines in the message - -TopBorderColor1 The first color to use for the - top borders (for alternating border - colors) - -TopBorderColor2 The other color to use for the - top borders (for alternating border - colors) - -EditAreaBorderColor1 The first color to use for the - edit area borders (for alternating border - colors) - -EditAreaBorderColor2 The other color to use for the - edit area borders (for alternating border - colors) - -EditModeBrackets The color to use for the square brackets - around the edit mode text that appears - in the bottom border (the [ and ] around - the "INS"/"OVR") - -EditMode The color to use for the edit mode text - -TopLabelColor The color to use for the informational labels - in the informational area at the top - -TopLabelColonColor The color to use for the colons (:) in the - informational area at the top - -TopFromColor The color to use for the "From" name in the - informational area at the top - -TopFromFillColor The color to use for the filler dots in the - "From" name in the informational area at the top - -TopToColor The color to use for the "To" name in the - informational area at the top - -TopToFillColor The color to use for the filler dots in the - "To" name in the informational area at the top - -TopSubjColor The color to use for the subject in the informational - area at the top - -TopSubjFillColor The color to use for the filler dots in the subject - in the informational area at the top - -TopAreaColor The color to use for the "Area" text in the - informational area at the top - -TopAreaFillColor The color to use for the filler dots in the "Area" - field in the informational area at the top - -TopTimeColor The color to use for the "Time" text in the - informational area at the top - -TopTimeFillColor The color to use for the filler dots in the "Time" - field in the informational area at the top - -TopTimeLeftColor The color to use for the "Time left" text in the - informational area at the top - -TopTimeLeftFillColor The color to use for the filler dots in the "Time left" - field in the informational area at the top - -TopInfoBracketColor The color to use for the square brackets in the - informational area at the top - -QuoteWinText The color for non-highlighted text in - the quote window - -QuoteLineHighlightColor The color for highlighted text in the - quote window - -QuoteWinBorderTextColor The color to use for the text in the quote window - borders - -QuoteWinBorderColor The color to use for the quote window borders - -BottomHelpBrackets The color to use for the brackets displayed in - the line of help text at the bottom - -BottomHelpKeys The color to use for the key names written in - the line of help text at the botom - -BottomHelpFill The color to use for the filler dots in the line of - help text at the bottom - -BottomHelpKeyDesc The color to use for the key descriptions in the - line of help text at the bottom - -TextBoxBorder The color to use for text box borders (i.e., the - abort confirmation prompt) - -TextBoxBorderText The color to use for text in the borders of text - boxes (i.e., the abort confirmation prompt) - -TextBoxInnerText The color to use for text inside text boxes - -YesNoBoxBrackets The color to use for the square brackets used for - yes/no confirmation prompt boxes - -YesNoBoxYesNoText The color to use for the actual "Yes"/"No" text in - yes/no confirmation prompt boxes - -SelectedMenuLabelBorders The color to use for the border characters for the - labels of currently active drop-down menus - -SelectedMenuLabelText The color to use for the text for the labels of - currently active drop-down menus - -UnselectedMenuLabelText The color to use for the text for the labels of - inactive drop-down menus - -MenuBorders The color to use for the drop-down menu borders - -MenuSelectedItems The color to use for selected items on the drop-down - menus - -MenuUnselectedItems The color to use for unselected items on the - drop-down menus - -MenuHotkeys The color to use for the hotkey characters in the - menu items on the drop-down menus - -8. Common colors (appearing in both Ice and DCT color theme files) -================================================================== -Note that you don't need control (Ctrl-A) characters for the color settings; -just the attribute characters. - -listBoxBorder The color to use for the border of list - boxes, such as the cross-post area selection - box and the text replacements list box. Note - that this setting replaces crossPostBorder, - which was used in previous versions of - SlyEdit. - -listBoxBorderText The color to use for text in the borders of - list boxes, such as the cross-post area - selection box and the text replacements list - box. Note that this setting replaces - crossPostBorderText, which was used in - previous versions of SlyEdit. - -crossPostMsgAreaNum The color to use for the message group/sub- - board numbers in the cross-post area - selection box - -crossPostMsgAreaNumHighlight The color to use for the highlighted - (lightbar) message group/sub-board numbers - in the cross-post area selection box - -crossPostMsgAreaDesc The color to use for the message group/ - sub-board descriptions in the cross-post - area selection box - -crossPostMsgAreaDescHighlight The color to use for the highlighted - (lightbar) message group/sub-board - descriptions in the cross-post area selection - box - -crossPostChk The color to use for the checkmarks for the - enabled message sub-boards in the cross-post - area selection box - -crossPostChkHighlight The color to use for the highlighted - (lightbar) checkmarks for the enabled - message sub-boards in the cross-post area - selection box - -crossPostMsgGrpMark The color to use for the current message - group marker character in the cross-post area - selection box - -crossPostMsgGrpMarkHighlight The color to use for the highlighted - (lightbar) current message group marker - character in the cross-post area selection - box - -msgWillBePostedHdr The color to use for the text "Your message - will be posted into the following area(s)" - text when exiting SlyEdit - -msgPostedGrpHdr The color to use for the group name header - when listing the message's posted message - areas when exiting SlyEdit - -msgPostedSubBoardName The color to use for the message sub-boards - when listing the message's posted message - areas when exiting SlyEdit - -msgPostedOriginalAreaText The color to use for the text "(original - message area)" when listing the message's - posted message areas when exiting SlyEdit - -msgHasBeenSavedText The color to use for the text "The message - has been saved." when exiting SlyEdit - -msgAbortedText The color to use for the Message Aborted - text when exiting SlyEdit - -emptyMsgNotSentText The color to use for the Message Not Sent - text when exiting SlyEdit - -genMsgErrorText The color to use for general message error - text when exiting SlyEdit - -listBoxItemText The color to use for text appearing in list - boxes (such as the list of text replacements - and the list of tag lines) - -listBoxItemHighlight The color to use for the currently selected - item in list boxes (such as the list of text - replacements and the list of tag lines) - -9. Text replacements (AKA Macros) -================================== -SlyEdit version 1.29 added text replacements (AKA Macros), which lets you (the -sysop) define words to be replaced with other text as the user types a message. -This feature can be used, for instance, to replace commonly misspelled words -with their correct versions or to replace swear words with less offensive -words. This feature is toggled by the enableTextReplacements option in -SlyEdit.cfg can can have one of three values: -false : Text replacement is disabled -true : Text replacement is enabled and performed as literal search and replace -regex : Text replacement is enabled using regular expressions as implemented by - JavaScript (more accurately, Synchronet's JavaScript interpreter, which - at the time of this writing is Mozilla's JavaScript engine (AKA - JavaScript-C or "SpiderMonkey"). - -The text searches are performed on single words only, as the user types the -message, and are replaced by whatever text you configure for the word. The -configuration for text replacing is read from a configuration file called -SlyEdit_TextReplacements.cfg, which is plain text and can be placed in either -sbbs/ctrl or in the same directory as SlyEdit's .js files (SlyEdit.js, -SlyEdit_Misc.js, etc.). Each line in SlyEdit_TextReplacements.cfg needs to -have the following format: -originalWord=replacementText -where originalWord is the word to be replaced, and replacementText is the text -to replace the word with. - -The options for the enableTextReplacements configuration optoin are explained -in more detail below: - -- false: Text replacing is disabled - -- true: Literal text search and replace - The words will be matched literally -and replaced with the text on the right side of the = in -SlyEdit_TextReplacements.cfg. In this mode, word matching is not -case-sensitive. The words can have both uppercase and lowercase letters and -will still be matched to the words configured in SlyEdit_TextReplacements.cfg. -In this mode, if the first letter of the original word is uppercase, then the -first letter of the replaced text will also be uppercase. -While this works, one drawback to literal text searching is that it won't -replace a word if there are punctuation characters or other characters around -the word or if the word is misspelled. - -- regex: With this option, SlyEdit will treat the word searches (on the left -side of the = in SlyEdit_TextReplacements.cfg) as regular expressions, as -implemented by JavaScript. When using regular expressions, SlyEdit will start -trying all the regular expressions provided and apply only the first one that -changes the text and will stop there. -Regular expressions offer a more flexible way to serach and replace text. For -example, in case a word is surrounded by punctuation or other characters, a -regular expression can be given that will still match the word. For example, -you might want a regular expression that changes "teh" to "the" (since "teh" -is a common misspelling of "the"). To ensure that the word is replaced even if -the word has other characters around it, you could use a regular exprssion and -replacement such as this: -(.*)teh(.*)=$1the$2 -That way, even if the word is enclosed in quotes (such as "teh"), the word will -still be converted to "the". And to preserve the first letter's case (if it's -uppercase or lowercase), this regular expression and replacement string would -handle that: -(.*)([tT])eh(.*)=$1$2he$3 -SlyEdit applies the regular expressions on a per-word basis; that is, the -expression .* in a regular expression will match any characters only in the -last word the user typed, not the entire line. - -For more information on regular expressions, the -following are some web pages that explain them: - -General information about regular expressions: -http://www.regular-expressions.info/tutorial.html - -Information on text grouping and backreferencing with parenthesis (the page -calls them "round brackets") - A very powerful feature of regular expressions: -http://www.regular-expressions.info/brackets.html - -General information about regular expressions geared toward JavaScript: -http://www.javascriptkit.com/javatutors/re.shtml - -Information about using backreferences with regular expressions in JavaScript: -http://stackoverflow.com/questions/2447915/javascript-string-regex-backreferences - -JavaScript-specific information on regular exprssions: -http://www.w3schools.com/js/js_obj_regexp.asp -http://www.w3schools.com/jsref/jsref_obj_regexp.asp - -One nice thing about JavaScript's implementation (among others) of regular -expressions is that it supports the use of parentheses for character grouping -and backreferencing to place a portion of the matched text in the replacement -text. In JavaScript, each numbered capture buffer is preceded by a dollar sign -($). For example, the regular expression (darn) will match the word "darn" and -store it in buffer 1, and in JavaScript (and with SlyEdit's search and -replace), you would use $1 to refer to the word "darn". For example, for -(darn), the replacement $1it would replace the word "darn" with "darnit". - -10. User settings -================= -Since version 1.32, SlyEdit has the ability for each user to configure some -settings for themselves. The user settings include the following: -- Whether or not to enable the option to use taglines -- Whether or not to prompt for spell checking when saving a message -- Whether or not to add the original author's initials to quote lines - (this was previously only configurable in SlyEdit.cfg) -- Whether or not to indent quote lines that use author's intials (this was - previously only configurable in SlyEdit.cfg) -- Whether or not to trim spaces from quoted lines (when replying to messages). - Some users indent their paragraphs with spaces as a writing style. When - this setting is enabled, this feature removes leading spaces from quoted - lines when replying to a message. A user might want to disable this, for - example, when they want to ensure that a message is quoted exactly as-is. -- Whether or not to auto-sign messages. When this setting is enabled, the - user's messages are automatically signed with their alias or their real - name, depending on the sub-board's settings. There is additionally a setting - to specify whehter to use only their first name when signing with their - real name, and also whether to sign emails with their real name (emails - don't have a configuration like sub-boards do). -- Dictionaries for spell-check. If there is only one dictionary configured, - this option won't appear on the user options list. If there are multiple - dictionary files on the BBS machine (in either sbbs/mods, sbbs/ctrl, or in - the same directory as SlyEdit), the user will be able to choose any or all - dictionaries to be used for the spell check feature. Multiple dictionaries - can be selected, so if the user writes messages in more than one language, - or if a message could contain multiple languages, the spell-check feature - will use all selected dictionaries for spell checking. - -The user settings files will be stored in the sbbs/data/user directory with the -filename <user number>.SlyEdit_Settings, and the user number will be 0-padded -up to 4 digits. - -11. Taglines -============ -SlyEdit version 1.32 added the ability for users to optionally choose a tagline -to be appended to their message upon saving the message. Each user can -configure in their user settings whether or not they want to enable this -feature. The setting enableTaglines in SlyEdit.cfg sets the default setting, -but users are free to change it for themselves. - -The taglines are loaded from the text file SlyEdit_Taglines.txt, which can be -located in any of the following directories, searched in the following order: -- sbbs/mods -- sbbs/ctrl -- The same directory as SlyEdit's .js files - -Synchronet version 3.16 has the ability to place the tag line after the user's -signature, so if you are running version 3.16 or newer of Synchronet, the tag -line will be placed after the user's signature, if the user has a signature. - -Specifically, Synchronet 3.16 starting with the beta build on July 5, 2015 will -behave that way; with earlier versions of Synchronet, the tag line will be -placed before the user's signature. On June 22, 2015, Synchronet added support -for a file called editor.tag (in each node directory's temp directory) which -can contain an editor tagline, and on July 5, 2015, Synchronet included an -update in which the full path & filename to the tagline file will be written -to line 7 of the MSGINF drop file, which SlyEdit reads on startup. If the -MSGINF file includes the 7th line, then the tagline will appear after the -user's signature (if they have one). If the MSGINF file does not include the -7th line, then the tagline will appear before the user's signature. - - -12. Spell check and dictionaries -================================ -Since version 1.64, SlyEdit has a spell check feature. Spell check can be -started by the user with the Ctrl-R hotkey, or by the Edit > Spell Checker -option in the DCT-style ESC menu (only available when in DCT mode). For spell -check, SlyEdit will check each word to see if it exists in the configured -dictionary/dictionaries, and if not, it will prompt the user for a corrected -version of the word. The sysop can configure one or multiple dictionaries in -SlyEdit.cfg with the dictionaryFilenames option. Dictionary files need to be -in the format dictionary_<languageName>.txt, where <languageName> is the name -of the language. Also, ideally, the language names should follow standard -language tags, as in "en-us" for English (US), etc. See these web pages for -more information: -https://en.wikipedia.org/wiki/Language_localisation -http://www.lingoes.net/en/translator/langcode.htm -Also, the dictionary filenames will be parsed and the language name will be -used in the menu of dictionaries in the user options - The user is able to -enable/disable the configured dictionaries for their own use for the spell -checker. - -For the dictionaryFilenames option in SlyEdit.cfg, you can specify a comma- -separated list of dictionary filenames. The dictionary filenames are in the -format dictionary_<languageName>.txt, where <language> is the language name. -In this list, the filenames can be in that format, or just <languageName>.txt, -or just <languageName>. You can leave the setting blank to use all dictionary -files that exist on the system. - -SlyEdit will search for the dictionary files in the following directories, in -this order: -1. sbbs/mods -2. sbbs/ctrl -3. SlyEdit's own directory - -Dictionary files must be sorted in order for word matching to work properly -(SlyEdit uses a binary search for quick word matching, which requires the words -to be sorted). Also, all of the words in the dictionary files must be lower- -case, since SlyEdit does case-insensitive matching by converting words in the -message to lower-case and comparing them with the words in the dictionary. - - -13. Version history -=================== -Version Date Description -------- ---- ----------- -1.89b 2024-05-11 In SlyEdit_Misc.js, check to see that - xtrn_area.editor[user.editor] is an object before using it. -1.89a 2024-05-04 Don't line-wrap poll messages for quoting, as that could - mess up the formatting of the poll options. Also, a minor - fix for the 'to' name length in DCT mode when using a wide - terminal. -1.89 2024-04-30 Quote wrapping length: When re-wrapping quote lines, read - the editor configuration settings for "word-wrap quoted - text" as specified in xtrn.ini (settable in scfg) - Wrap - quote lines to the width specified there, or if not - specified, default to 79 columns. This is to help ensure - quoted text is a reasonable width for many terminals. The - wrapping logic is also called for prepending quoted text - with the quote prefix, so (for now) there needs to be a - default quote wrap width. -1.88d 2024-02-16 Header display update for UTF-8. And printing from/to/subj - after writing the header with empty data so that the - header 'graphic' characters & everything lines up - properly. -1.88c 2024-02-12 UTF-8 support in the displayed header and when quoting - text and when quoting message text -1.88b 2024-02-11 Previous change reverted; now has "real" UTF-8 support. - New feature: Entering a graphic char with Ctrl-G (Ctrl-G - was previously the key for general help, which wasn't much) -1.88 2024-02-07 Support for entering UTF-8/Unicode characters; internally - uses K_CP437 to convert to CP437, so the strings are still - in CP437 internally in Synchronet -1.87a 2023-12-17 Using the msg_area.sub object to check sub-board settings - instead of opening the sub-board (for determining whether - to post with real name) -1.87 2023-08-15 Improvement to paragraph/line breaks in quote line wrapping -1.86 2023-07-26 Started refactoring the re-wrapping of quote lines to work - better for the various quote prefixes used in various - messages. -1.85 2023-05-15 Internal: Refactored readColorConfig() in _DCTStuff.js - and _IceStuff.js. - Removed the readValueSettingConfigFile() function. -1.84 2023-02-10 Sysops: When importing a file from the BBS machine, - SlyEdit now prompts to send it immediately or not (if not, - edit it before sending). Sending immediately can be - useful for posting ANSI files unmodified. -1.83 2022-12-13 Quote lines that are wider than the user's terminal width - are now wrapped to the user's terminal width to ensure - all the quote lines are entirely available to be quoted. -1.82 2022-12-01 Bug fix: Added some safety checks when reading the - configuration file -1.81 2022-11-26 Refactored the way the configuration file is read. Also, - the color configuration files now can just specify - attribute characters, without the control character. -1.80 2022-07-04 Added the ability to change/set the text color (using the - CTRL-K hotkey). If desired, changing the text color can - be disabled if, and the colors can be saved as ANSI - (rather than Synchronet attribute codes) for compatibility - with other BBS software & message readers. The - allowColorSelection option in SlyEdit.cfg specifies - whether or not to allow changing text colors, and the - saveColorsAsANSI option specifies whether or not to save - the message colors as ANSI. -1.79 2022-06-21 JS strict mode enabled. Small JS issues fixed. -1.78 2022-06-09 Removed high-ascii characters from the SlyEdit JS files; - used ascii() with their numeric ASCII values instead. This - should avoid issues with text editors converting - characters incorrectly. -1.77 2022-05-27 Fixed a few instances where SlyEdit was trying to access - sub-board information with an empty sub-board code (in the - rare case when no sub-boards are configured). -1.76 2022-03-05 When selecting quote lines in a reply message, SlyEdit now - remembers the position in the quote selection menu so that - the quote menu isn't always at the top whenever it's - opened again. This issue may have been introduced when - SlyEdit was refactored to use DDLightbarMenu for its - lightbar stuff. -1.75 2021-12-11 Refactored the cross-post menu and quote selection window - to use DDLightbarMenu instead of SlyEdit's own lightbar - code. -1.74 2021-01-23 Making use of the new K_NUL and checking user input - against null, SlyEdit no longer thinks a 0x0 (sent with - CTRL-Space on a Mac) is a timeout. K_NUL was added on - Jan. 21, 2021 by Rob Swindell. (This update was from Deon - George) -1.73 2020-03-31 Now uses DDLightbarMenu instead of SlyEdit's own internal - choice menu. -1.72 2020-03-04 For cross-posting, to make sure the user can post in a - sub-board, SlyEdit now checks the can_post property of the - sub-board rather than checking the ARS. The can_post - property covers more cases. -1.71 2020-03-03 Added a new configuration option, allowSpellCheck, which - the sysop can use to configure whether or not spell check - is allowed. You might want to disable spell check if the - spell check feature causes SlyEdit to abort with an error - saying it's out of memory. -1.70 2019-08-15 Fix for a bug introduced in the flowing-line update in - 1.68 where some quote blocks were sometimes not being - included when saving a message. Also, quote lines are now - wrapped to the user's terminal width rather than 80 - columns. -1.69 2019-08-14 Updated to only use console.inkey() for user input and not - use console.getkey() anymore. The change was made in the - getUserKey() function in SlyEdit_Misc.js. Also, SlyEdit - will now write the editor style (ICE or DCT) to result.ed - at the end when a message is saved. Also, when editing a - message, if the cursor is at the end of the last line and - the user presses the DEL key, then treat it as a - backspace. Some terminals send a delete for backspace, - particularly with keyboards that have a delete key but no - backspace key. -1.68 2019-08-09 Updated to honor the SUB_ANON and SUB_AONLY flags for the - sub-boards when cross-posting so that the "from" name is - "Anonymous" if either of those flags enabled. - Updated to allow message uploading. Started working on - updates to save new text lines as one long line, to help - with word wrapping in offline readers etc. -1.67 2019-07-21 Now supports the RESULT.ED drop file, with the ability to - change the subject. Synchronet 3.17c development builds - from July 21, 2019 onward support result.ed even for - editors configured for QuickBBS MSGINF/MSGTMP. -1.66 2019-05-29 Added more parsing for dictionary filenames for 'general' - dictionaries and 'supplimental' ones -1.65 2019-05-24 Added support for parsing many standard language tags for - the dictionary filenames -1.64 2019-05-24 Started working on adding a spell check feature. Also, - updated to use require() instead of load() for .js - scripts when possible. -1.63 2019-04-18 Started working on supporting word-wrapping for the entire - width of any terminal size, beyond 79. -1.62 2018-11-11 Updated to save the message if the user disconnects, to - support Synchronet's message draft feature that was added - recently. -1.61 2018-08-03 Updated to delete instances of User objects that are - created, due to an optimization in Synchronet 3.17 that - leaves user.dat open -1.54 2017-12-26 Improved quoting with author initials when a > character - exists in the quote lines: Not mistaking the preceding - text as a quote prefix if it has 3 or more non-space - characters before the >. Also fixed an issue where - wrapped quote lines were sometimes missing the quote line - prefix. -1.53 2017-12-19 Updated the PageUp and PageDown keys to ensure they match - what's in sbbsdefs.js, since Synchronet added key codes - for those keys on December 17, 2018. SlyEdit should still - work with older and newer builds of Synchronet, with or - without the updated sbbsdefs.js. -1.52 2017-12-17 Added the ability for the sysop to toggle whether or not - to allow users to edit quote lines, using the - configuration option allowEditQuoteLines. -.. Removed some history comments .. -1.00 2009-08-22 Initial public release - 2009-05-11 Started development diff --git a/docs/slyedit_readme.txt b/docs/slyedit_readme.txt index a40e433dc87b8f9311abdd8d2972036c12879f2b..d4480717d07496dc9a5297c9473aeed0be59f504 100644 --- a/docs/slyedit_readme.txt +++ b/docs/slyedit_readme.txt @@ -922,6 +922,15 @@ message to lower-case and comparing them with the words in the dictionary. =================== Version Date Description ------- ---- ----------- +1.89d 2025-01-26 User inactivity timeout improvement (via use of + console.getkey() instead of the custom function that was + being used) +1.89c 2024-10-29 Open the quote file in binary mode to avoid EOF issues on + Windows if a unicode "right arrow" code exists in the + message, which would get truncated to ASCII Ctrl-Z (ASCII + 26), which is interpreted as EOF on Windows. +1.89b 2024-05-11 In SlyEdit_Misc.js, check to see that + xtrn_area.editor[user.editor] is an object before using it. 1.89a 2024-05-04 Don't line-wrap poll messages for quoting, as that could mess up the formatting of the poll options. Also, a minor fix for the 'to' name length in DCT mode when using @@ -935,6 +944,10 @@ Version Date Description wrapping logic is also called for prepending quoted text with the quote prefix, so (for now) there needs to be a default quote wrap width. +1.88d 2024-02-16 Header display update for UTF-8. And printing from/to/subj + after writing the header with empty data so that the + header 'graphic' characters & everything lines up + properly. 1.88c 2024-02-12 UTF-8 support in the displayed header and when quoting text and when quoting message text 1.88b 2024-02-11 Previous change reverted; now has "real" UTF-8 support.