154 lines
7.8 KiB
PHP
154 lines
7.8 KiB
PHP
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Luau Obfuscator</title>
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
|
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
|
<style>
|
|
#loader {
|
|
display: none;
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 1000;
|
|
}
|
|
.split-container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
height: calc(100vh - 56px - 1rem); /* Full height minus header and margin */
|
|
}
|
|
.gutter {
|
|
background-color: #343a40;
|
|
background-repeat: no-repeat;
|
|
background-position: 50%;
|
|
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 30'%3E%3Cpath d='M2 0 v30 M5 0 v30 M8 0 v30' stroke-width='1' stroke='#888'/%3E%3C/svg%3E");
|
|
}
|
|
.gutter.gutter-horizontal {
|
|
cursor: col-resize;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<header class="navbar navbar-dark bg-dark">
|
|
<div class="container-fluid">
|
|
<a class="navbar-brand" href="#">Luau Obfuscator</a>
|
|
<div class="ms-auto d-flex align-items-center">
|
|
<span id="luau-version" class="navbar-text me-3 d-none d-lg-inline">Loading Luau...</span>
|
|
<div class="btn-group me-2" role="group">
|
|
<button class="btn btn-primary" id="obfuscate-btn">Obfuscate</button>
|
|
<button class="btn btn-success" id="run-btn">Run</button>
|
|
</div>
|
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
</div>
|
|
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
|
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
|
|
<li class="nav-item d-lg-none"><span id="luau-version-mobile" class="navbar-text">Loading Luau...</span></li>
|
|
<li class="nav-item"><span id="save-status" class="navbar-text"></span></li>
|
|
<li class="nav-item btn-group" role="group">
|
|
<button class="btn btn-outline-secondary" id="save-btn">Save</button>
|
|
<button class="btn btn-outline-secondary" id="load-btn">Restore</button>
|
|
</li>
|
|
<li class="nav-item dropdown">
|
|
<a class="nav-link dropdown-toggle" href="#" id="examples-dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
Load Example
|
|
</a>
|
|
<ul class="dropdown-menu dropdown-menu-dark" aria-labelledby="examples-dropdown" id="examples-menu">
|
|
<!-- Examples will be populated by JS -->
|
|
</ul>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="btn btn-outline-light" id="clear-output-btn">Clear Obfuscated</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="btn btn-info ms-2" id="share-btn" data-bs-toggle="modal" data-bs-target="#share-modal">
|
|
<i class="bi bi-share-fill"></i> Share
|
|
</button>
|
|
</li>
|
|
<li class="nav-item">
|
|
<button class="btn btn-outline-light ms-2" id="settings-btn" data-bs-toggle="modal" data-bs-target="#settings-modal">
|
|
<i class="bi bi-gear-fill"></i>
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</header>
|
|
|
|
<main class="container-fluid mt-3">
|
|
<div class="split-container">
|
|
<div id="split-0" class="editor-container">
|
|
<div id="editor">print("Hello, from Luau!\n")
|
|
print("Current time: " .. os.date())</div>
|
|
</div>
|
|
<div id="split-1" class="output-container">
|
|
<div id="loader" class="spinner-border text-light" role="status">
|
|
<span class="visually-hidden">Loading...</span>
|
|
</div>
|
|
<pre id="obfuscated-output"></pre>
|
|
<h5 class="text-light">Run Output</h5>
|
|
<pre id="run-output"></pre>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
|
|
<!-- Settings Modal -->
|
|
<div class="modal fade" id="settings-modal" tabindex="-1" aria-labelledby="settingsModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content bg-dark text-light">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="settingsModalLabel">Editor Settings</h5>
|
|
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="mb-3">
|
|
<label for="theme-select" class="form-label">Theme</label>
|
|
<select class="form-select" id="theme-select"></select>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="font-size-input" class="form-label">Font Size</label>
|
|
<input type="number" class="form-control" id="font-size-input" min="8" max="32">
|
|
</div>
|
|
<div class="form-check">
|
|
<input class="form-check-input" type="checkbox" id="soft-wrap-check">
|
|
<label class="form-check-label" for="soft-wrap-check">
|
|
Enable Soft Wrap
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Share Modal -->
|
|
<div class="modal fade" id="share-modal" tabindex="-1" aria-labelledby="shareModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content bg-dark text-light">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="shareModalLabel">Share Link</h5>
|
|
<button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Anyone with this link can view your code.</p>
|
|
<div class="input-group">
|
|
<input type="text" class="form-control" id="share-url-input" readonly>
|
|
<button class="btn btn-outline-secondary" type="button" id="copy-link-btn">Copy</button>
|
|
</div>
|
|
<div id="copy-status" class="form-text text-success mt-2"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/ace-builds@1.32.7/src-min-noconflict/ace.min.js"></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/luau-web@1.2.3/dist/luau-web.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/split.js/1.6.2/split.min.js"></script>
|
|
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
|
</body>
|
|
</html> |