diff --git a/index.html b/index.html
index 7bae426..bbc55cf 100644
--- a/index.html
+++ b/index.html
@@ -23,7 +23,7 @@
-
+
diff --git a/script.js b/script.js
index becd3b8..07796db 100644
--- a/script.js
+++ b/script.js
@@ -15,14 +15,24 @@ function toggleDarkMode() {
// Add these new functions at the top
function extractVariables(text) {
- const regex = /\${([^}]+)}/g;
const variables = [];
+
+ // Extract ${var:default} format variables
+ const regex1 = /\${([^}]+)}/g;
let match;
-
- while ((match = regex.exec(text)) !== null) {
+ while ((match = regex1.exec(text)) !== null) {
const [variable, defaultValue] = match[1].split(":").map((s) => s.trim());
variables.push({ name: variable, default: defaultValue || "" });
}
+
+ // Extract {{var}} format variables
+ const regex2 = /\{\{([^}]+)\}\}/g;
+ while ((match = regex2.exec(text)) !== null) {
+ const variable = match[1].trim();
+ if (!variables.some(v => v.name === variable)) {
+ variables.push({ name: variable, default: "" });
+ }
+ }
return [...new Set(variables.map((v) => JSON.stringify(v)))].map((v) =>
JSON.parse(v)
@@ -69,9 +79,14 @@ function updatePromptPreview(promptText, form) {
// Replace variables with their default values without editting (for prompt cards, copy buttons, chat)
if (!form) {
variables.forEach(variable => {
- const pattern = new RegExp(`\\$\{${variable.name}[^}]*\}`, 'g');
+ // Handle old-style ${var:default} format
+ const pattern1 = new RegExp(`\\$\{${variable.name}[^}]*\}`, 'g');
const replacement = variable.default || `
${variable.name}`;
- previewText = previewText.replace(pattern, replacement);
+ previewText = previewText.replace(pattern1, replacement);
+
+ // Handle new-style {{var}} format
+ const pattern2 = new RegExp(`\\{\\{${variable.name}\\}\\}`, 'g');
+ previewText = previewText.replace(pattern2, replacement);
});
}
// Replace variables according to the user inputs.
@@ -82,7 +97,12 @@ function updatePromptPreview(promptText, form) {
const value = input.value.trim();
const variable = input.dataset.variable;
const defaultValue = input.dataset.default;
- const pattern = new RegExp(`\\$\{${variable}[^}]*\}`, 'g');
+
+ // Handle old-style ${var:default} format
+ const pattern1 = new RegExp(`\\$\{${variable}[^}]*\}`, 'g');
+ // Handle new-style {{var}} format
+ const pattern2 = new RegExp(`\\{\\{${variable}\\}\\}`, 'g');
+
let replacement;
if (value) {
// User entered value
@@ -96,7 +116,8 @@ function updatePromptPreview(promptText, form) {
}
replacement = `
${replacement}`;
- previewText = previewText.replace(pattern, replacement);
+ previewText = previewText.replace(pattern1, replacement);
+ previewText = previewText.replace(pattern2, replacement);
});
}
return previewText;
@@ -1223,9 +1244,14 @@ function showYamlModal(event, title, content) {
const createYamlButton = modalOverlay.querySelector(".create-yaml-button");
// Create the YAML content
- const cleanTitle = decodeURIComponent(title).trim().replace(/^Act as a?n?\s?/ig, '');
+ const cleanTitle = decodeURIComponent(title).trim().replace(/^Act as a?n?\s*/ig, '');
const cleanContent = decodeURIComponent(content).trim().replace(/\n+/g, ' ');
+ // Convert variables from ${Variable: Default} format to {{Variable}} format
+ const convertedContent = cleanContent.replace(/\${([^:}]+)(?::[^}]*)?}/g, (match, varName) => {
+ return `{{${varName.trim()}}}`;
+ });
+
const yamlText = `name: ${cleanTitle}
model: gpt-4o-mini
modelParameters:
@@ -1233,14 +1259,15 @@ modelParameters:
messages:
- role: system
content: |
- ${cleanContent.replace(/\n/g, '\n ')}`;
+ ${convertedContent.replace(/\n/g, '\n ')}`;
// Apply basic syntax highlighting
const highlightedYaml = yamlText
.replace(/(name|model|modelParameters|temperature|messages|role|content):/g, '
$1:')
.replace(/(gpt-4o-mini)/g, '
$1')
.replace(/([0-9]\.?[0-9]*)/g, '
$1')
- .replace(/(true|false)/g, '
$1');
+ .replace(/(true|false)/g, '
$1')
+ .replace(/(\{\{[^}]+\}\})/g, '
$1'); // Highlight the new variable format
yamlContent.innerHTML = highlightedYaml;
diff --git a/vibe/index.html b/vibe/index.html
index 2e22407..68c974a 100644
--- a/vibe/index.html
+++ b/vibe/index.html
@@ -23,7 +23,7 @@
-
+