commit 73a3ea2cbaa381250ab09e2b916d760da79d6f56
Author: root <root@hub.scroll.pub>
Date: 2024-12-30 07:33:05 +0000
Subject: Initial commit
diff --git a/body.html b/body.html
new file mode 100644
index 0000000..4d0d7d2
--- /dev/null
+++ b/body.html
@@ -0,0 +1,25 @@
+<header>
+ <h1>Attack Path Builder</h1>
+ <p>Visualize and customize your attack steps with ease.</p>
+</header>
+
+<main>
+ <div id="diagram-container">
+ <div id="start-node" class="node">
+ <span>Start</span>
+ </div>
+ <div id="path-container"></div>
+ <div id="end-node" class="node">
+ <span>End</span>
+ </div>
+ </div>
+
+ <div id="controls">
+ <button id="add-step">Add Attack Step</button>
+ <button id="reset-path">Reset Path</button>
+ </div>
+</main>
+
+<footer>
+ <p>Build your attack path with precision.</p>
+</footer>
\ No newline at end of file
diff --git a/index.scroll b/index.scroll
new file mode 100644
index 0000000..255f2d8
--- /dev/null
+++ b/index.scroll
@@ -0,0 +1,8 @@
+buildHtml
+baseUrl https://attackpath.scroll.pub
+metaTags
+editButton /edit.html
+title Attack Path Builder
+style.css
+body.html
+script.js
\ No newline at end of file
diff --git a/prompt.json b/prompt.json
new file mode 100644
index 0000000..a57dd22
--- /dev/null
+++ b/prompt.json
@@ -0,0 +1,25 @@
+{
+ "id": "360612ca-cdf6-4415-8af4-2b113b8eb6c1",
+ "object": "chat.completion",
+ "created": 1735543969,
+ "model": "deepseek-chat",
+ "choices": [
+ {
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "---domain---\nattackpath.scroll.pub\n---index.scroll---\nbuildHtml\nbaseUrl https://attackpath.scroll.pub\nmetaTags\neditButton /edit.html\ntitle Attack Path Builder\nstyle.css\nbody.html\nscript.js\n---body.html---\n<header>\n <h1>Attack Path Builder</h1>\n <p>Visualize and customize your attack steps with ease.</p>\n</header>\n\n<main>\n <div id=\"diagram-container\">\n <div id=\"start-node\" class=\"node\">\n <span>Start</span>\n </div>\n <div id=\"path-container\"></div>\n <div id=\"end-node\" class=\"node\">\n <span>End</span>\n </div>\n </div>\n\n <div id=\"controls\">\n <button id=\"add-step\">Add Attack Step</button>\n <button id=\"reset-path\">Reset Path</button>\n </div>\n</main>\n\n<footer>\n <p>Build your attack path with precision.</p>\n</footer>\n---style.css---\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n line-height: 1.6;\n color: #333;\n background-color: #f4f4f4;\n padding: 20px;\n}\n\nheader {\n text-align: center;\n margin-bottom: 40px;\n}\n\nheader h1 {\n font-size: 2.5rem;\n color: #444;\n}\n\nheader p {\n font-size: 1.2rem;\n color: #666;\n}\n\n#diagram-container {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 40px;\n}\n\n.node {\n background-color: #007bff;\n color: white;\n padding: 20px;\n border-radius: 50%;\n width: 100px;\n height: 100px;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1.2rem;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n#path-container {\n display: flex;\n align-items: center;\n gap: 20px;\n}\n\n#controls {\n text-align: center;\n}\n\nbutton {\n background-color: #007bff;\n color: white;\n border: none;\n padding: 10px 20px;\n font-size: 1rem;\n border-radius: 5px;\n cursor: pointer;\n margin: 5px;\n transition: background-color 0.3s ease;\n}\n\nbutton:hover {\n background-color: #0056b3;\n}\n\nfooter {\n text-align: center;\n margin-top: 40px;\n font-size: 0.9rem;\n color: #666;\n}\n\n@media (max-width: 768px) {\n header h1 {\n font-size: 2rem;\n }\n\n header p {\n font-size: 1rem;\n }\n\n .node {\n width: 80px;\n height: 80px;\n font-size: 1rem;\n }\n\n button {\n padding: 8px 16px;\n font-size: 0.9rem;\n }\n}\n---script.js---\ndocument.addEventListener('DOMContentLoaded', function () {\n const pathContainer = document.getElementById('path-container');\n const addStepButton = document.getElementById('add-step');\n const resetPathButton = document.getElementById('reset-path');\n\n addStepButton.addEventListener('click', function () {\n const newNode = document.createElement('div');\n newNode.className = 'node';\n newNode.innerHTML = '<span>Step</span>';\n pathContainer.appendChild(newNode);\n });\n\n resetPathButton.addEventListener('click', function () {\n pathContainer.innerHTML = '';\n });\n});\n---end---"
+ },
+ "logprobs": null,
+ "finish_reason": "stop"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 323,
+ "completion_tokens": 866,
+ "total_tokens": 1189,
+ "prompt_cache_hit_tokens": 64,
+ "prompt_cache_miss_tokens": 259
+ },
+ "system_fingerprint": "fp_f1afce2943"
+}
\ No newline at end of file
diff --git a/readme.scroll b/readme.scroll
new file mode 100644
index 0000000..05a1c7b
--- /dev/null
+++ b/readme.scroll
@@ -0,0 +1,2 @@
+# attackpath1.scroll.pub
+Website generated by DeepSeek from prompt: I need a website to help me build an attack path diagram based on user input. Each node in the diagram represents an attack step. Each attack step has its own parameters, which need to be obtained from the backend. The backend will also give each attack step a default value. The attack path needs to have a start and end node. Users can add or delete new attack steps before and after each step. Use vue and js to implement it
\ No newline at end of file
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..a03359b
--- /dev/null
+++ b/script.js
@@ -0,0 +1,16 @@
+document.addEventListener('DOMContentLoaded', function () {
+ const pathContainer = document.getElementById('path-container');
+ const addStepButton = document.getElementById('add-step');
+ const resetPathButton = document.getElementById('reset-path');
+
+ addStepButton.addEventListener('click', function () {
+ const newNode = document.createElement('div');
+ newNode.className = 'node';
+ newNode.innerHTML = '<span>Step</span>';
+ pathContainer.appendChild(newNode);
+ });
+
+ resetPathButton.addEventListener('click', function () {
+ pathContainer.innerHTML = '';
+ });
+});
\ No newline at end of file
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..17ad953
--- /dev/null
+++ b/style.css
@@ -0,0 +1,104 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ line-height: 1.6;
+ color: #333;
+ background-color: #f4f4f4;
+ padding: 20px;
+}
+
+header {
+ text-align: center;
+ margin-bottom: 40px;
+}
+
+header h1 {
+ font-size: 2.5rem;
+ color: #444;
+}
+
+header p {
+ font-size: 1.2rem;
+ color: #666;
+}
+
+#diagram-container {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 40px;
+}
+
+.node {
+ background-color: #007bff;
+ color: white;
+ padding: 20px;
+ border-radius: 50%;
+ width: 100px;
+ height: 100px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ font-size: 1.2rem;
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
+}
+
+#path-container {
+ display: flex;
+ align-items: center;
+ gap: 20px;
+}
+
+#controls {
+ text-align: center;
+}
+
+button {
+ background-color: #007bff;
+ color: white;
+ border: none;
+ padding: 10px 20px;
+ font-size: 1rem;
+ border-radius: 5px;
+ cursor: pointer;
+ margin: 5px;
+ transition: background-color 0.3s ease;
+}
+
+button:hover {
+ background-color: #0056b3;
+}
+
+footer {
+ text-align: center;
+ margin-top: 40px;
+ font-size: 0.9rem;
+ color: #666;
+}
+
+@media (max-width: 768px) {
+ header h1 {
+ font-size: 2rem;
+ }
+
+ header p {
+ font-size: 1rem;
+ }
+
+ .node {
+ width: 80px;
+ height: 80px;
+ font-size: 1rem;
+ }
+
+ button {
+ padding: 8px 16px;
+ font-size: 0.9rem;
+ }
+}
\ No newline at end of file