mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Regex is a method that is commonly used to find and replace parts of a string using a single pattern. Add support for using regex in SillyTavern which allows users to dynamically change various aspects of the chatting experience. Users are able to choose where a given regex script should apply (both invasive and non-invasive options!). Invasive options alter chat history while non-invasive alters markdown display for the entire chat. A new variable called {{match}} is added in regex scripts which substitutes in the found match from the original find regex script. There is a lot more that can be added to this extension, but for now, this is enough. Signed-off-by: kingbri <bdashore3@proton.me>
85 lines
3.7 KiB
HTML
85 lines
3.7 KiB
HTML
<div id="regex_editor_template">
|
|
<div class="regex_editor">
|
|
<h3><strong>Regex Editor</strong></h3>
|
|
|
|
<div class="flex-container flexFlowColumn">
|
|
<div class="flex1">
|
|
<label for="regex_script_name" class="title_restorable">
|
|
<small data-i18n="Script Name">Script Name</small>
|
|
</label>
|
|
<div>
|
|
<input class="regex_script_name text_pole textarea_compact" type="text" maxlength="100" />
|
|
</div>
|
|
</div>
|
|
<div class="flex1">
|
|
<label for="find_regex" class="title_restorable">
|
|
<small data-i18n="Find Regex">Find Regex</small>
|
|
</label>
|
|
<div>
|
|
<input class="find_regex text_pole textarea_compact" type="text" maxlength="100" />
|
|
</div>
|
|
</div>
|
|
<div class="flex1">
|
|
<label for="replace_string" class="title_restorable">
|
|
<small data-i18n="Replace With">Replace With</small>
|
|
</label>
|
|
<div>
|
|
<textarea
|
|
class="regex_replace_string text_pole wide100p textarea_compact"
|
|
placeholder="Use {{match}} to include the matched text from Find Regex"
|
|
rows="2"
|
|
maxlength="100"
|
|
></textarea>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="flex-container">
|
|
<div class="wi-enter-footer-text flex-container flexFlowColumn flexNoGap align-start">
|
|
<small>Placement</small>
|
|
<div>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="replace_position" value="0">
|
|
<span data-i18n="Author's Note">Markdown Display</span>
|
|
</label>
|
|
</div>
|
|
<div>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="replace_position" value="1">
|
|
<span data-i18n="Before Char">User Input</span>
|
|
</label>
|
|
</div>
|
|
<div>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="replace_position" value="2">
|
|
<span data-i18n="After Char">AI Output</span>
|
|
</label>
|
|
</div>
|
|
<div>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="replace_position" value="3">
|
|
<span data-i18n="Author's Note">/sys Command</span>
|
|
</label>
|
|
</div>
|
|
<div>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="replace_position" value="4">
|
|
<span data-i18n="Author's Note">/sendas Command</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="wi-enter-footer-text flex-container flexFlowColumn flexNoGap align-start">
|
|
<small>Other Options</small>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="disabled" />
|
|
<span data-i18n="Disabled">Disabled</span>
|
|
</label>
|
|
<label class="checkbox flex-container">
|
|
<input type="checkbox" name="run_on_edit" />
|
|
<span data-i18n="Run On Edit">Run On Edit</span>
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|