new icons
This commit is contained in:
parent
9abb62dd3b
commit
7e7452a016
@ -65,8 +65,16 @@ createApp({
|
||||
},
|
||||
{
|
||||
console: `
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#5f6368"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H160v400Zm140-40-56-56 103-104-104-104 57-56 160 160-160 160Zm180 0v-80h240v80H480Z"/></svg>`
|
||||
}
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#5f6368"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm0-80h640v-400H160v400Zm140-40-56-56 103-104-104-104 57-56 160 160-160 160Zm180 0v-80h240v80H480Z"/></svg>`,
|
||||
},
|
||||
{
|
||||
console_hiddne: `
|
||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M4 20C3.45 20 2.97917 19.8042 2.5875 19.4125C2.19583 19.0208 2 18.55 2 18V6C2 5.45 2.19583 4.97917 2.5875 4.5875C2.97917 4.19583 3.45 4 4 4H20C20.55 4 21.0208 4.19583 21.4125 4.5875C21.8042 4.97917 22 5.45 22 6V18C22 18.55 21.8042 19.0208 21.4125 19.4125C21.0208 19.8042 20.55 20 20 20H4ZM4 18H20V8H4V18ZM7.5 17L6.1 15.6L8.675 13L6.075 10.4L7.5 9L11.5 13L7.5 17ZM12 17V15H18V17H12Z" fill="#5F6368"/>
|
||||
<rect x="3.43359" y="2" width="26.3532" height="2" transform="rotate(45.8073 3.43359 2)" fill="#5F6368"/>
|
||||
</svg>
|
||||
`,
|
||||
},
|
||||
],
|
||||
highlightedCode: {
|
||||
html: "",
|
||||
@ -167,44 +175,47 @@ createApp({
|
||||
|
||||
methods: {
|
||||
loadPrismTheme() {
|
||||
const existingTheme = document.querySelector('link[data-prism-theme]');
|
||||
const existingTheme = document.querySelector("link[data-prism-theme]");
|
||||
if (existingTheme) {
|
||||
existingTheme.remove();
|
||||
}
|
||||
|
||||
const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||||
|
||||
const link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.setAttribute('data-prism-theme', '');
|
||||
|
||||
|
||||
const isDarkMode = window.matchMedia(
|
||||
"(prefers-color-scheme: dark)"
|
||||
).matches;
|
||||
|
||||
const link = document.createElement("link");
|
||||
link.rel = "stylesheet";
|
||||
link.setAttribute("data-prism-theme", "");
|
||||
|
||||
if (isDarkMode) {
|
||||
link.href = './libraries/prism/theme/prism-vsc-dark-plus.min.css';
|
||||
link.href = "./libraries/prism/theme/prism-vsc-dark-plus.min.css";
|
||||
} else {
|
||||
link.href = './libraries/prism/theme/prism.min.css';
|
||||
link.href = "./libraries/prism/theme/prism.min.css";
|
||||
}
|
||||
|
||||
|
||||
document.head.appendChild(link);
|
||||
this.rehighlightCode();
|
||||
},
|
||||
|
||||
rehighlightCode() {
|
||||
this.highlightCode(this.html, 'html');
|
||||
this.highlightCode(this.css, 'css');
|
||||
this.highlightCode(this.js, 'js');
|
||||
},
|
||||
rehighlightCode() {
|
||||
this.highlightCode(this.html, "html");
|
||||
this.highlightCode(this.css, "css");
|
||||
this.highlightCode(this.js, "js");
|
||||
},
|
||||
initThemeListener() {
|
||||
window.matchMedia('(prefers-color-scheme: dark)')
|
||||
.addEventListener('change', () => {
|
||||
window
|
||||
.matchMedia("(prefers-color-scheme: dark)")
|
||||
.addEventListener("change", () => {
|
||||
this.loadPrismTheme();
|
||||
});
|
||||
},
|
||||
},
|
||||
handleScroll(event) {
|
||||
const textarea = event.target;
|
||||
const pre = textarea.nextElementSibling;
|
||||
if (pre) {
|
||||
pre.scrollTop = textarea.scrollTop;
|
||||
pre.scrollLeft = textarea.scrollLeft
|
||||
pre.scrollLeft = textarea.scrollLeft;
|
||||
}
|
||||
},
|
||||
toggleConsole() {
|
||||
@ -343,21 +354,21 @@ createApp({
|
||||
|
||||
updatePreview() {
|
||||
if (this.isExecutionPaused) return;
|
||||
|
||||
|
||||
const preview = document.getElementById("preview-frame");
|
||||
if (!preview) return;
|
||||
|
||||
|
||||
// create a new iframe to replace the existing one
|
||||
const newFrame = document.createElement("iframe");
|
||||
newFrame.id = "preview-frame";
|
||||
|
||||
|
||||
// replace the old frame with the new one
|
||||
preview.parentNode.replaceChild(newFrame, preview);
|
||||
|
||||
|
||||
// write content to the new frame
|
||||
const doc = newFrame.contentDocument;
|
||||
doc.open();
|
||||
|
||||
|
||||
const content = `
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@ -368,7 +379,9 @@ createApp({
|
||||
</head>
|
||||
<body>
|
||||
${this.html || ""}
|
||||
${this.showConsole ? `<script>window.eruda && eruda.init({
|
||||
${
|
||||
this.showConsole
|
||||
? `<script>window.eruda && eruda.init({
|
||||
useShadowDom: true,
|
||||
autoScale: true,
|
||||
defaults: {
|
||||
@ -379,13 +392,15 @@ createApp({
|
||||
|
||||
});
|
||||
eruda.show();
|
||||
</script>` : ''}
|
||||
</script>`
|
||||
: ""
|
||||
}
|
||||
<script>
|
||||
${this.js || ""}
|
||||
</script>
|
||||
</body>
|
||||
</html>`;
|
||||
|
||||
|
||||
try {
|
||||
doc.write(content);
|
||||
doc.close();
|
||||
|
@ -33,7 +33,7 @@
|
||||
</button>
|
||||
|
||||
<button class="toggle-icon" @click="toggleConsole">
|
||||
<span v-html="showConsole ? extraIcons[2].console : extraIcons[2].console"></span>
|
||||
<span v-html="showConsole ? extraIcons[2].console : extraIcons[3].console_hiddne"></span>
|
||||
<span>console</span>
|
||||
</button>
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
:class="{ 'toggle-active': isExecutionPaused }"
|
||||
>
|
||||
<span v-html="isExecutionPaused ? playIcon : pauseIcon"></span>
|
||||
<span>{{ isExecutionPaused ? 'Resume' : 'Pause' }}</span>
|
||||
<span>{{ isExecutionPaused ? 'live' : 'pause' }}</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="nav-actions">
|
||||
|
Loading…
Reference in New Issue
Block a user