Hansimov commited on
Commit
d1f0f2d
1 Parent(s): 7445f95

:gem: [Feature] Support table and footnote rendering

Browse files
apps/llm_mixer/js/buttons_binder.js CHANGED
@@ -4,6 +4,7 @@ import {
4
  stop_latest_message_animation,
5
  start_latest_message_animation,
6
  create_new_chat_session,
 
7
  } from "./chat_operator.js";
8
 
9
  export function bind_chat_buttons() {
@@ -79,6 +80,7 @@ class SendUserInputButtonBinder {
79
  .addClass("fa fa-paper-plane")
80
  .addClass("icon-success");
81
  hljs.highlightAll();
 
82
  }
83
  }
84
 
 
4
  stop_latest_message_animation,
5
  start_latest_message_animation,
6
  create_new_chat_session,
7
+ get_latest_message_content_displayer,
8
  } from "./chat_operator.js";
9
 
10
  export function bind_chat_buttons() {
 
80
  .addClass("fa fa-paper-plane")
81
  .addClass("icon-success");
82
  hljs.highlightAll();
83
+ console.log(get_latest_message_content_displayer().data("raw_content"));
84
  }
85
  }
86
 
apps/llm_mixer/js/chat_operator.js CHANGED
@@ -1,4 +1,5 @@
1
  import { Messager, MessagerList } from "./messager.js";
 
2
 
3
  let messagers_container = $("#messagers-container");
4
  let available_models_select = $("#available-models-select");
@@ -7,6 +8,7 @@ let temperature_select = $("#temperature-select");
7
  let messager_list = new MessagerList(messagers_container);
8
  let chat_history = [messager_list];
9
  let md_to_html_converter = new showdown.Converter();
 
10
 
11
  export function get_active_messager_list() {
12
  return chat_history[chat_history.length - 1];
@@ -103,10 +105,12 @@ export function update_message(json_chunks, content_displayer = null) {
103
  content;
104
  content_displayer.html(
105
  md_to_html_converter.makeHtml(
106
- content_displayer.attr("raw_text")
107
  )
108
  );
109
- content_displayer.find("*").addClass("no-margin-bottom");
 
 
110
  }
111
  if (finish_reason === "stop") {
112
  console.log("[STOP]");
 
1
  import { Messager, MessagerList } from "./messager.js";
2
+ import { transform_footnote } from "./stream_jsonizer.js";
3
 
4
  let messagers_container = $("#messagers-container");
5
  let available_models_select = $("#available-models-select");
 
8
  let messager_list = new MessagerList(messagers_container);
9
  let chat_history = [messager_list];
10
  let md_to_html_converter = new showdown.Converter();
11
+ md_to_html_converter.setFlavor("github");
12
 
13
  export function get_active_messager_list() {
14
  return chat_history[chat_history.length - 1];
 
105
  content;
106
  content_displayer.html(
107
  md_to_html_converter.makeHtml(
108
+ transform_footnote(content_displayer.data("raw_content"))
109
  )
110
  );
111
+ content_displayer
112
+ .find("table")
113
+ .addClass("table table-bordered table-hover");
114
  }
115
  if (finish_reason === "stop") {
116
  console.log("[STOP]");
apps/llm_mixer/js/default.css CHANGED
@@ -60,6 +60,10 @@
60
  display: inline-block;
61
  }
62
 
 
 
 
 
63
  @keyframes blink {
64
  0% {
65
  background-color: transparent;
@@ -83,7 +87,3 @@
83
  .icon-success {
84
  color: green;
85
  }
86
-
87
- .no-margin-bottom {
88
- margin-bottom: 0;
89
- }
 
60
  display: inline-block;
61
  }
62
 
63
+ .message-viewer * {
64
+ margin-bottom: 0;
65
+ }
66
+
67
  @keyframes blink {
68
  0% {
69
  background-color: transparent;
 
87
  .icon-success {
88
  color: green;
89
  }
 
 
 
 
apps/llm_mixer/js/stream_jsonizer.js CHANGED
@@ -18,3 +18,9 @@ export function jsonize_stream_data(data) {
18
  });
19
  return json_chunks;
20
  }
 
 
 
 
 
 
 
18
  });
19
  return json_chunks;
20
  }
21
+
22
+ export function transform_footnote(text) {
23
+ return text
24
+ .replace(/\[\^(\d+)\^\]\[\d+\]/g, "[$1]")
25
+ .replace(/\[(\d+)\]:\s*(.*)\s*""/g, "[$1] $2 \n");
26
+ }