add markdown rendering
This commit is contained in:
69
lib/marked.min.js
vendored
Normal file
69
lib/marked.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -123,6 +123,7 @@
|
|||||||
|
|
||||||
<script src="../lib/search.js"></script>
|
<script src="../lib/search.js"></script>
|
||||||
<script>Search.init();</script>
|
<script>Search.init();</script>
|
||||||
|
<script src="../lib/marked.min.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
(function(){
|
(function(){
|
||||||
@@ -134,6 +135,12 @@
|
|||||||
var apiTokenInput = document.getElementById('apiToken');
|
var apiTokenInput = document.getElementById('apiToken');
|
||||||
var modelNameInput = document.getElementById('modelName');
|
var modelNameInput = document.getElementById('modelName');
|
||||||
|
|
||||||
|
// Parse markdown in initial welcome message
|
||||||
|
var initialBubble = chatMessages.querySelector('.message-bubble p');
|
||||||
|
if(initialBubble) {
|
||||||
|
initialBubble.innerHTML = marked.parseInline(initialBubble.textContent);
|
||||||
|
}
|
||||||
|
|
||||||
// Restore saved settings
|
// Restore saved settings
|
||||||
var savedToken = localStorage.getItem('apiToken');
|
var savedToken = localStorage.getItem('apiToken');
|
||||||
if(savedToken) apiTokenInput.value = savedToken;
|
if(savedToken) apiTokenInput.value = savedToken;
|
||||||
@@ -158,7 +165,11 @@
|
|||||||
|
|
||||||
var p = document.createElement('p');
|
var p = document.createElement('p');
|
||||||
p.className = 'message-content';
|
p.className = 'message-content';
|
||||||
p.textContent = content;
|
if(role === 'assistant') {
|
||||||
|
p.innerHTML = marked.parse(content);
|
||||||
|
} else {
|
||||||
|
p.textContent = content;
|
||||||
|
}
|
||||||
bubble.appendChild(p);
|
bubble.appendChild(p);
|
||||||
|
|
||||||
msgDiv.appendChild(avatar);
|
msgDiv.appendChild(avatar);
|
||||||
@@ -276,7 +287,7 @@
|
|||||||
var delta = json.choices && json.choices[0] && json.choices[0].delta;
|
var delta = json.choices && json.choices[0] && json.choices[0].delta;
|
||||||
if(delta && delta.content) {
|
if(delta && delta.content) {
|
||||||
streamContent += delta.content;
|
streamContent += delta.content;
|
||||||
contentEl.textContent = streamContent;
|
contentEl.innerHTML = marked.parse(streamContent);
|
||||||
chatMessages.scrollTop = chatMessages.scrollHeight;
|
chatMessages.scrollTop = chatMessages.scrollHeight;
|
||||||
}
|
}
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
@@ -318,7 +329,7 @@
|
|||||||
chatMessages.innerHTML = '';
|
chatMessages.innerHTML = '';
|
||||||
var welcomeMsg = document.createElement('div');
|
var welcomeMsg = document.createElement('div');
|
||||||
welcomeMsg.className = 'message assistant-message';
|
welcomeMsg.className = 'message assistant-message';
|
||||||
welcomeMsg.innerHTML = '<div class="message-avatar">AI</div><div class="message-bubble"><p>Hello! Chat cleared. How can I help you?</p></div>';
|
welcomeMsg.innerHTML = '<div class="message-avatar">AI</div><div class="message-bubble"><p>' + marked.parse('Hello! Chat cleared. How can I help you?') + '</p></div>';
|
||||||
chatMessages.appendChild(welcomeMsg);
|
chatMessages.appendChild(welcomeMsg);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user