Merge branch 'staging' into tokenizers-cleanup
This commit is contained in:
commit
d5140142fb
|
@ -525,14 +525,17 @@ function getUrlSync(url, cache = true) {
|
|||
}).responseText;
|
||||
}
|
||||
|
||||
const templateCache = {};
|
||||
const templateCache = new Map();
|
||||
|
||||
export function renderTemplate(templateId, templateData = {}, sanitize = true, localize = true, fullPath = false) {
|
||||
try {
|
||||
const pathToTemplate = fullPath ? templateId : `/scripts/templates/${templateId}.html`;
|
||||
const templateContent = (pathToTemplate in templateCache) ? templateCache[pathToTemplate] : getUrlSync(pathToTemplate);
|
||||
templateCache[pathToTemplate] = templateContent;
|
||||
const template = Handlebars.compile(templateContent);
|
||||
let template = templateCache.get(pathToTemplate);
|
||||
if (!template) {
|
||||
const templateContent = getUrlSync(pathToTemplate);
|
||||
template = Handlebars.compile(templateContent);
|
||||
templateCache.set(pathToTemplate, template);
|
||||
}
|
||||
let result = template(templateData);
|
||||
|
||||
if (sanitize) {
|
||||
|
@ -1536,7 +1539,7 @@ function messageFormatting(mes, ch_name, isSystem, isUser) {
|
|||
mes = mes.replace(new RegExp(`(^|\n)${ch_name}:`, 'g'), '$1');
|
||||
}
|
||||
|
||||
mes = DOMPurify.sanitize(mes);
|
||||
mes = DOMPurify.sanitize(mes, { FORBID_TAGS: ['style'] });
|
||||
|
||||
return mes;
|
||||
}
|
||||
|
|
|
@ -902,7 +902,7 @@ export function initRossMods() {
|
|||
const chatBlock = $('#chat');
|
||||
const originalScrollBottom = chatBlock[0].scrollHeight - (chatBlock.scrollTop() + chatBlock.outerHeight());
|
||||
this.style.height = window.getComputedStyle(this).getPropertyValue('min-height');
|
||||
this.style.height = this.scrollHeight + 0.1 + 'px';
|
||||
this.style.height = this.scrollHeight + 0.3 + 'px';
|
||||
|
||||
if (!isFirefox) {
|
||||
const newScrollTop = Math.round(chatBlock[0].scrollHeight - (chatBlock.outerHeight() + originalScrollBottom));
|
||||
|
|
|
@ -35,7 +35,7 @@ import { registerSlashCommand } from './slash-commands.js';
|
|||
import { tags } from './tags.js';
|
||||
import { tokenizers } from './tokenizers.js';
|
||||
|
||||
import { countOccurrences, debounce, delay, isOdd, resetScrollHeight, sortMoments, stringToRange, timestampToMoment } from './utils.js';
|
||||
import { countOccurrences, debounce, delay, isOdd, resetScrollHeight, shuffle, sortMoments, stringToRange, timestampToMoment } from './utils.js';
|
||||
|
||||
export {
|
||||
loadPowerUserSettings,
|
||||
|
@ -1818,10 +1818,6 @@ export function renderStoryString(params) {
|
|||
|
||||
const sortFunc = (a, b) => power_user.sort_order == 'asc' ? compareFunc(a, b) : compareFunc(b, a);
|
||||
const compareFunc = (first, second) => {
|
||||
if (power_user.sort_order == 'random') {
|
||||
return Math.random() > 0.5 ? 1 : -1;
|
||||
}
|
||||
|
||||
const a = first[power_user.sort_field];
|
||||
const b = second[power_user.sort_field];
|
||||
|
||||
|
@ -1853,6 +1849,11 @@ function sortEntitiesList(entities) {
|
|||
return;
|
||||
}
|
||||
|
||||
if (power_user.sort_order === 'random') {
|
||||
shuffle(entities);
|
||||
return;
|
||||
}
|
||||
|
||||
entities.sort((a, b) => {
|
||||
if (a.type === 'tag' && b.type !== 'tag') {
|
||||
return -1;
|
||||
|
|
Loading…
Reference in New Issue