mirror of
https://github.com/oobabooga/text-generation-webui.git
synced 2026-04-04 14:17:28 +00:00
UI: make text between quotes colored in chat mode
This commit is contained in:
parent
98ed6d3a66
commit
e637b702ff
3 changed files with 39 additions and 1 deletions
|
|
@ -42,6 +42,29 @@ def fix_newlines(string):
|
|||
return string
|
||||
|
||||
|
||||
def replace_quotes(text):
|
||||
|
||||
# Define a list of quote pairs (opening and closing), using HTML entities
|
||||
quote_pairs = [
|
||||
('"', '"'), # Double quotes
|
||||
('“', '”'), # Unicode left and right double quotation marks
|
||||
('‘', '’'), # Unicode left and right single quotation marks
|
||||
('«', '»'), # French quotes
|
||||
('„', '“'), # German quotes
|
||||
('‘', '’'), # Alternative single quotes
|
||||
('“', '”'), # Unicode quotes (numeric entities)
|
||||
('“', '”'), # Unicode quotes (hex entities)
|
||||
]
|
||||
|
||||
# Create a regex pattern that matches any of the quote pairs, including newlines
|
||||
pattern = '|'.join(f'({re.escape(open_q)})(.*?)({re.escape(close_q)})' for open_q, close_q in quote_pairs)
|
||||
|
||||
# Replace matched patterns with <q> tags, keeping original quotes
|
||||
replaced_text = re.sub(pattern, lambda m: f'<q>{m.group(1)}{m.group(2)}{m.group(3)}</q>', text, flags=re.DOTALL)
|
||||
|
||||
return replaced_text
|
||||
|
||||
|
||||
def replace_blockquote(m):
|
||||
return m.group().replace('\n', '\n> ').replace('\\begin{blockquote}', '').replace('\\end{blockquote}', '')
|
||||
|
||||
|
|
@ -49,6 +72,9 @@ def replace_blockquote(m):
|
|||
@functools.lru_cache(maxsize=4096)
|
||||
def convert_to_markdown(string):
|
||||
|
||||
# Quote to <q></q>
|
||||
string = replace_quotes(string)
|
||||
|
||||
# Blockquote
|
||||
string = re.sub(r'(^|[\n])>', r'\1>', string)
|
||||
pattern = re.compile(r'\\begin{blockquote}(.*?)\\end{blockquote}', re.DOTALL)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue