Templates Test¶
Next Example for json:
HTML Context¶
- users=- {'Employees': [{'userId': 'rirani', 'jobTitleName': 'Developer', 'firstName': 'Romin', 'lastName': 'Irani', 'preferredFullName': 'Romin Irani', 'employeeCode': 'E1', 'region': 'CA', 'phoneNumber': '408-1234567', 'emailAddress': 'romin.k.irani@gmail.com', 'is_active': True}, {'userId': 'nirani', 'jobTitleName': 'Developer', 'firstName': 'Neil', 'lastName': 'Irani', 'preferredFullName': 'Neil Irani', 'employeeCode': 'E2', 'region': 'CA', 'phoneNumber': '408-1111111', 'emailAddress': 'neilrirani@gmail.com', 'is_active': True}, {'userId': 'thanks', 'jobTitleName': 'Program Directory', 'firstName': 'Tom', 'lastName': 'Hanks', 'preferredFullName': 'Tom Hanks', 'employeeCode': 'E3', 'region': 'CA', 'phoneNumber': '408-2222222', 'emailAddress': 'tomhanks@gmail.com', 'is_active': False}]}
Employees¶
- {'userId': 'rirani', 'jobTitleName': 'Developer', 'firstName': 'Romin', 'lastName': 'Irani', 'preferredFullName': 'Romin Irani', 'employeeCode': 'E1', 'region': 'CA', 'phoneNumber': '408-1234567', 'emailAddress': 'romin.k.irani@gmail.com', 'is_active': True}
Employees¶
- {'userId': 'nirani', 'jobTitleName': 'Developer', 'firstName': 'Neil', 'lastName': 'Irani', 'preferredFullName': 'Neil Irani', 'employeeCode': 'E2', 'region': 'CA', 'phoneNumber': '408-1111111', 'emailAddress': 'neilrirani@gmail.com', 'is_active': True}
Employees¶
- {'userId': 'thanks', 'jobTitleName': 'Program Directory', 'firstName': 'Tom', 'lastName': 'Hanks', 'preferredFullName': 'Tom Hanks', 'employeeCode': 'E3', 'region': 'CA', 'phoneNumber': '408-2222222', 'emailAddress': 'tomhanks@gmail.com', 'is_active': False}
- data=- {'key1': 'value1', 'key2': ['list item 1', 'list item 2', 'list item 3'], 'nested-list': [['a', 'b', 'c'], ['A', 'B', 'C']], 'mapping-series': [{'cola': 'a', 'colb': 'b', 'colc': 'c'}, {'cola': 'A', 'colb': 'B', 'colc': 'C'}]}
- list item 1
- list item 2
- list item 3
- uix=- {'HeaderMenu': [{'class': 'menu-active', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'class': '', 'element': 'a', 'href': 'index.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}home{%endtrans%}', 'title': '', 'value': ''}]}, {'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'about-us.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}about us{%endtrans%}', 'title': '', 'value': ''}]}, {'class': 'menu-has-children', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'about-us.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}pages{%endtrans%}', 'title': '', 'value': ''}, {'alt': '', 'class': '', 'element': 'ul', 'has_child': True, 'href': '', 'id': '', 'innerChild': [{'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'a.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}a{%endtrans%}', 'title': '', 'value': ''}]}, {'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'b.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}b{%endtrans%}', 'title': '', 'value': ''}]}], 'is_active': True, 'placeholder': '', 'text': '', 'title': '', 'value': ''}]}]}
- copybutton_prompt_is_regexp=- False
- copybutton_only_copy_prompt_lines=- True
- copybutton_remove_prompts=- True
- copybutton_copy_empty_lines=- True
- copybutton_selector=- div.highlight pre
- copybutton_format_func= ``function escapeRegExp(string) {
- return string.replace(/[.*+?^${}()|[]\]/g, ‘\$&’); // $& means the whole matched string 
 
}
- /**
- Removes excluded text from a Node. 
- @param {Node} target Node to filter. 
- @param {string} exclude CSS selector of nodes to exclude. 
- @returns {DOMString} Text from target with text removed. 
 - */ 
- function filterText(target, exclude) {
- const clone = target.cloneNode(true); // clone as to not modify the live DOM if (exclude) { - // remove excluded nodes clone.querySelectorAll(exclude).forEach(node => node.remove()); - } return clone.innerText; 
}
// Callback when a copy button is clicked. Will be passed the node that was clicked // should then grab the text and replace pieces of text that shouldn’t be used in output function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = “”, hereDocDelim = “”) {
var regexp; var match;
// Do we check for line continuation characters and “HERE-documents”? var useLineCont = !!lineContinuationChar var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line if (isRegexp) {
regexp = new RegExp(‘^(’ + copybuttonPromptText + ‘)(.*)’)
- } else {
regexp = new RegExp(‘^(’ + escapeRegExp(copybuttonPromptText) + ‘)(.*)’)
}
const outputLines = []; var promptFound = false; var gotLineCont = false; var gotHereDoc = false; const lineGotPrompt = []; for (const line of textContent.split(’n’)) {
match = line.match(regexp) if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line) lineGotPrompt.push(promptFound) if (removePrompts && promptFound) {
outputLines.push(match[2])
- } else {
outputLines.push(line)
} gotLineCont = line.endsWith(lineContinuationChar) & useLineCont if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
- } else if (!onlyCopyPromptLines) {
outputLines.push(line)
- } else if (copyEmptyLines && line.trim() === ‘’) {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join(’n’);
}
// Remove a trailing newline to avoid auto-running when pasting if (textContent.endsWith(”n”)) {
textContent = textContent.slice(0, -1)
} return textContent
}¶
- copybutton_exclude=- .linenos
Individual Inline Item¶
value1
List of Inline Items¶
- list item 1 
- list item 2 
- list item 3 
HTML Inline Context¶
- users=- {'Employees': [{'userId': 'rirani', 'jobTitleName': 'Developer', 'firstName': 'Romin', 'lastName': 'Irani', 'preferredFullName': 'Romin Irani', 'employeeCode': 'E1', 'region': 'CA', 'phoneNumber': '408-1234567', 'emailAddress': 'romin.k.irani@gmail.com', 'is_active': True}, {'userId': 'nirani', 'jobTitleName': 'Developer', 'firstName': 'Neil', 'lastName': 'Irani', 'preferredFullName': 'Neil Irani', 'employeeCode': 'E2', 'region': 'CA', 'phoneNumber': '408-1111111', 'emailAddress': 'neilrirani@gmail.com', 'is_active': True}, {'userId': 'thanks', 'jobTitleName': 'Program Directory', 'firstName': 'Tom', 'lastName': 'Hanks', 'preferredFullName': 'Tom Hanks', 'employeeCode': 'E3', 'region': 'CA', 'phoneNumber': '408-2222222', 'emailAddress': 'tomhanks@gmail.com', 'is_active': False}]}
- data=- {'key1': 'value1', 'key2': ['list item 1', 'list item 2', 'list item 3'], 'nested-list': [['a', 'b', 'c'], ['A', 'B', 'C']], 'mapping-series': [{'cola': 'a', 'colb': 'b', 'colc': 'c'}, {'cola': 'A', 'colb': 'B', 'colc': 'C'}]}
- uix=- {'HeaderMenu': [{'class': 'menu-active', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'class': '', 'element': 'a', 'href': 'index.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}home{%endtrans%}', 'title': '', 'value': ''}]}, {'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'about-us.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}about us{%endtrans%}', 'title': '', 'value': ''}]}, {'class': 'menu-has-children', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'about-us.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}pages{%endtrans%}', 'title': '', 'value': ''}, {'alt': '', 'class': '', 'element': 'ul', 'has_child': True, 'href': '', 'id': '', 'innerChild': [{'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'a.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}a{%endtrans%}', 'title': '', 'value': ''}]}, {'class': '', 'element': 'li', 'has_child': True, 'innerChild': [{'alt': '', 'element': 'a', 'href': 'b.html', 'id': '', 'is_active': True, 'placeholder': '', 'text': '{%trans%}b{%endtrans%}', 'title': '', 'value': ''}]}], 'is_active': True, 'placeholder': '', 'text': '', 'title': '', 'value': ''}]}]}
- copybutton_prompt_is_regexp=- False
- copybutton_only_copy_prompt_lines=- True
- copybutton_remove_prompts=- True
- copybutton_copy_empty_lines=- True
- copybutton_selector=- div.highlight pre
- copybutton_format_func= ``function escapeRegExp(string) {
- return string.replace(/[.*+?^${}()|[]\]/g, ‘\$&’); // $& means the whole matched string 
 
}
- /**
- Removes excluded text from a Node. 
- @param {Node} target Node to filter. 
- @param {string} exclude CSS selector of nodes to exclude. 
- @returns {DOMString} Text from target with text removed. 
 - */ 
- function filterText(target, exclude) {
- const clone = target.cloneNode(true); // clone as to not modify the live DOM if (exclude) { - // remove excluded nodes clone.querySelectorAll(exclude).forEach(node => node.remove()); - } return clone.innerText; 
}
// Callback when a copy button is clicked. Will be passed the node that was clicked // should then grab the text and replace pieces of text that shouldn’t be used in output function formatCopyText(textContent, copybuttonPromptText, isRegexp = false, onlyCopyPromptLines = true, removePrompts = true, copyEmptyLines = true, lineContinuationChar = “”, hereDocDelim = “”) {
var regexp; var match;
// Do we check for line continuation characters and “HERE-documents”? var useLineCont = !!lineContinuationChar var useHereDoc = !!hereDocDelim
// create regexp to capture prompt and remaining line if (isRegexp) {
regexp = new RegExp(‘^(’ + copybuttonPromptText + ‘)(.*)’)
- } else {
regexp = new RegExp(‘^(’ + escapeRegExp(copybuttonPromptText) + ‘)(.*)’)
}
const outputLines = []; var promptFound = false; var gotLineCont = false; var gotHereDoc = false; const lineGotPrompt = []; for (const line of textContent.split(’n’)) {
match = line.match(regexp) if (match || gotLineCont || gotHereDoc) {
promptFound = regexp.test(line) lineGotPrompt.push(promptFound) if (removePrompts && promptFound) {
outputLines.push(match[2])
- } else {
outputLines.push(line)
} gotLineCont = line.endsWith(lineContinuationChar) & useLineCont if (line.includes(hereDocDelim) & useHereDoc)
gotHereDoc = !gotHereDoc
- } else if (!onlyCopyPromptLines) {
outputLines.push(line)
- } else if (copyEmptyLines && line.trim() === ‘’) {
outputLines.push(line)
}
}
// If no lines with the prompt were found then just use original lines if (lineGotPrompt.some(v => v === true)) {
textContent = outputLines.join(’n’);
}
// Remove a trailing newline to avoid auto-running when pasting if (textContent.endsWith(”n”)) {
textContent = textContent.slice(0, -1)
} return textContent
}¶
- copybutton_exclude=- .linenos