Spaces:
Running
Running
File size: 3,558 Bytes
81255d7 556031d 35ded2f 076b821 35ded2f 6c80135 35ded2f 076b821 35ded2f 48e2549 35ded2f 0c155a0 35ded2f 48e2549 35ded2f 48e2549 35ded2f 48e2549 35ded2f 3744851 48e2549 3744851 35ded2f 6c80135 556031d 6c80135 35ded2f 6c80135 556031d 6c80135 35ded2f 6c80135 556031d 35ded2f 556031d 81255d7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
<!doctype html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>TurboWarp Packager - Convert Scratch projects to HTML, EXE, and more</title><meta name="description" content="Converts Scratch 3, 2, or 1 projects into HTML files, zip archives, or executable programs for Windows, macOS, and Linux. Faster and more customizable than HTMLifier and forkphorus."><style>body[p4-splash-theme="dark"]:not([p4-loaded]) {
background-color: #111;
color-scheme: dark;
}
.input-for-remembering-project-file {
display: none;
}</style></head><body><noscript>This page requires JavaScript.</noscript><input type="file" class="input-for-remembering-project-file" autocomplete="on"><div id="app"></div>
<script>(async function() {
if (typeof window.showSaveFilePicker !== 'function') {
alert('このブラウザは showSaveFilePicker をサポートしていません。最新のGoogle Chromeなどをご利用ください。');
return;
}
const handleBlobLinks = (link) => {
link.addEventListener('click', async (event) => {
event.preventDefault(); // デフォルトのリンク動作をキャンセル
const blobUrl = link.href;
try {
const response = await fetch(blobUrl);
if (!response.ok) throw new Error(`HTTPエラー: ${response.status}`);
const blob = await response.blob();
// ファイル保存ダイアログを表示
const opts = {
suggestedName: 'file.html', // 固定ファイル名
types: [
{
description: 'HTML File',
accept: { 'text/html': ['.html'] },
},
],
};
const handle = await window.showSaveFilePicker(opts);
const writable = await handle.createWritable();
await writable.write(blob);
await writable.close();
alert('ファイルが保存されました!');
} catch (error) {
console.error('エラーが発生しました:', error);
alert(
`ファイルのダウンロード中にエラーが発生しました: ${error.message}\n` +
`固定ファイル名: file.html`
);
}
});
};
const processLinks = () => {
const links = document.querySelectorAll('a[href^="blob:"]');
for (const link of links) {
if (!link.hasAttribute('data-blob-processed')) {
link.setAttribute('data-blob-processed', 'true'); // 重複処理を防ぐ
handleBlobLinks(link);
}
}
};
// 初回処理
processLinks();
// DOMの変化を監視
const observer = new MutationObserver(() => {
processLinks(); // DOM変化時に再度リンクを処理
});
observer.observe(document.body, { childList: true, subtree: true });
alert('Blobリンクの監視を開始しました!');
})();
</script>
<script>(function() {
// This logic is only for the "splash" screen.
// It's used to prevent a momentary white screen while the page is loading in dark mode.
var theme = 'system';
try {
var local = localStorage.getItem('P4.theme')
if (typeof local === 'string') theme = local;
} catch (e) { /* ignore */ }
if (theme === 'system') theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
document.body.setAttribute('p4-splash-theme', theme);
})();</script><script src="js/p4.613592325c8f611b2ae4.js"></script></body></html> |