tatht commited on
Commit
d96bd6b
·
verified ·
1 Parent(s): 448677d

Tạo ra trang web parse markdown - Initial Deployment

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +358 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Markdown Parser 1
3
- emoji:
4
- colorFrom: purple
5
- colorTo: blue
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: markdown-parser-1
3
+ emoji: 🐳
4
+ colorFrom: green
5
+ colorTo: green
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,358 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Responsdown - Markdown Parser</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
10
+ <script>
11
+ tailwind.config = {
12
+ theme: {
13
+ extend: {
14
+ colors: {
15
+ primary: '#4F46E5',
16
+ secondary: '#818CF8',
17
+ dark: '#1E293B',
18
+ light: '#F8FAFC'
19
+ }
20
+ }
21
+ }
22
+ }
23
+ </script>
24
+ <style>
25
+ .markdown-body {
26
+ background-color: #0F172A;
27
+ color: #E2E8F0;
28
+ border-radius: 0.5rem;
29
+ padding: 1.5rem;
30
+ overflow: auto;
31
+ }
32
+
33
+ .markdown-body h1,
34
+ .markdown-body h2,
35
+ .markdown-body h3,
36
+ .markdown-body h4,
37
+ .markdown-body h5,
38
+ .markdown-body h6 {
39
+ color: #E2E8F0;
40
+ border-bottom: 1px solid #334155;
41
+ padding-bottom: 0.3em;
42
+ margin-top: 1.5em;
43
+ margin-bottom: 0.5em;
44
+ }
45
+
46
+ .markdown-body p {
47
+ margin-bottom: 1em;
48
+ line-height: 1.6;
49
+ }
50
+
51
+ .markdown-body a {
52
+ color: #60AFA;
53
+ text-decoration: none;
54
+ }
55
+
56
+ .markdown-body a:hover {
57
+ text-decoration: underline;
58
+ }
59
+
60
+ .markdown-body code {
61
+ background-color: #1E293B;
62
+ color: #F8FAFC;
63
+ padding: 0.2em 0.4em;
64
+ border-radius: 0.3em;
65
+ font-family: monospace;
66
+ }
67
+
68
+ .markdown-body pre {
69
+ background-color: #1E293B;
70
+ padding: 1em;
71
+ border-radius: 0.5em;
72
+ overflow: auto;
73
+ margin-bottom: 1.5em;
74
+ }
75
+
76
+ .markdown-body pre code {
77
+ background: none;
78
+ padding: 0;
79
+ }
80
+
81
+ .markdown-body blockquote {
82
+ border-left: 4px solid #4F46E5;
83
+ padding-left: 1em;
84
+ margin-left: 0;
85
+ color: #94A3B8;
86
+ }
87
+
88
+ .markdown-body ul,
89
+ .markdown-body ol {
90
+ padding-left: 2em;
91
+ margin-bottom: 1em;
92
+ }
93
+
94
+ .markdown-body li {
95
+ margin-bottom: 0.5em;
96
+ }
97
+
98
+ .markdown-container {
99
+ height: calc(100vh - 10rem);
100
+ }
101
+
102
+ .editor, .preview {
103
+ height: 100%;
104
+ }
105
+
106
+ .editor textarea {
107
+ height: 100%;
108
+ resize: none;
109
+ background-color: #0F172A;
110
+ color: #E2E8F0;
111
+ border: none;
112
+ padding: 1.5rem;
113
+ font-family: monospace;
114
+ }
115
+
116
+ .editor textarea:focus {
117
+ outline: none;
118
+ }
119
+
120
+ .tab {
121
+ transition: all 0.3s ease;
122
+ }
123
+
124
+ .tab.active {
125
+ background-color: #4F46E5;
126
+ color: white;
127
+ }
128
+
129
+ .tab:not(.active):hover {
130
+ background-color: #334155;
131
+ }
132
+
133
+ .grow-wrap {
134
+ display: grid;
135
+ }
136
+
137
+ .grow-wrap::after {
138
+ content: attr(data-replicated-value) " ";
139
+ white-space: pre-wrap;
140
+ visibility: hidden;
141
+ }
142
+
143
+ .grow-wrap > textarea {
144
+ resize: none;
145
+ overflow: hidden;
146
+ }
147
+
148
+ .grow-wrap > textarea,
149
+ .grow-wrap::after {
150
+ grid-area: 1 / 1 / 2 / 2;
151
+ }
152
+
153
+ .floating-button {
154
+ animation: float 3s ease-in-out infinite;
155
+ }
156
+
157
+ @keyframes float {
158
+ 0% { transform: translateY(0px); }
159
+ 50% { transform: translateY(-10px); }
160
+ 100% { transform: translateY(0px); }
161
+ }
162
+ </style>
163
+ </head>
164
+ <body class="bg-dark text-light min-h-screen">
165
+ <!-- Header -->
166
+ <header class="bg-gradient-to-r from-primary to-secondary py-6 px-2">
167
+ <div class="container mx-auto flex flex-col md:flex-row justify-between items-center">
168
+ <div class="flex items-center mb-4 md:mb-0">
169
+ <i class="fas fa-code text-3xl mr-3 text-white"></i>
170
+ <h1 class="text-3xl font-bold text-white">Responsdown</h1>
171
+ </div>
172
+ <div class="flex space-x-2">
173
+ <button class="bg-white text-primary px-4 py-2 rounded-lg font-semibold hover:bg-opacity-90 transition">
174
+ <i class="fas fa-download mr-2"></i>Export
175
+ </button>
176
+ <button class="bg-white text-primary px-4 py-2 rounded-lg font-semibold hover:bg-opacity-90 transition">
177
+ <i class="fas fa-share-alt mr-2"></i>Share
178
+ </button>
179
+ </div>
180
+ </div>
181
+ </header>
182
+
183
+ <!-- Main Content -->
184
+ <main class="container mx-auto px-4 py-8">
185
+ <div class="flex flex-col lg:flex-row gap-8">
186
+ <!-- Editor Panel -->
187
+ <div class="w-full lg:w-1/2">
188
+ <div class="bg-slate-800 rounded-xl shadow-xl overflow-hidden">
189
+ <div class="bg-slate-900 px-6 py-4 flex justify-between">
190
+ <h2 class="text-xl font-bold text-white flex items-center">
191
+ <i class="fas fa-edit mr-2 text-secondary"></i>Markdown Editor
192
+ </h2>
193
+ <div class="flex space-x-1">
194
+ <button class="tab active px-3 py-1 rounded-lg text-sm font-medium">Edit</button>
195
+ <button class="tab px-3 py-1 rounded-lg text-sm font-medium">Guide</button>
196
+ </div>
197
+ </div>
198
+ <div class="grow-wrap editor">
199
+ <textarea id="markdown-input" class="w-full rounded-b-xl" placeholder="Start typing your Markdown here..."># Welcome to Responsdown!
200
+
201
+ ## A modern Markdown parser
202
+
203
+ **Responsdown** is a responsive Markdown parser that renders your content in real-time.
204
+
205
+ ### Features
206
+ - Real-time preview
207
+ - Clean, modern UI
208
+ - Responsive design
209
+ - Syntax highlighting
210
+ - Export options
211
+
212
+ ### Try it out!
213
+ ```javascript
214
+ function helloWorld() {
215
+ console.log("Hello, Markdown!");
216
+ }
217
+ ```
218
+
219
+ > "Markdown is a lightweight markup language for creating formatted text using a plain-text editor." - John Gruber
220
+
221
+ ### Get Started
222
+ 1. Type Markdown in the left pane
223
+ 2. See the rendered result on the right
224
+ 3. Use the toolbar for quick formatting
225
+
226
+ [Learn more about Markdown](https://www.markdownguide.org/)
227
+
228
+ ![Markdown Logo](https://markdown-here.com/img/icon256.png)</textarea>
229
+ </div>
230
+ </div>
231
+ </div>
232
+
233
+ <!-- Preview Panel -->
234
+ <div class="w-full lg:w-1/2">
235
+ <div class="bg-slate-800 rounded-xl shadow-xl overflow-hidden h-full">
236
+ <div class="bg-slate-900 px-6 py-4 flex justify-between">
237
+ <h2 class="text-xl font-bold text-white flex items-center">
238
+ <i class="fas fa-eye mr-2 text-secondary"></i>Preview
239
+ </h2>
240
+ <div class="flex space-x-2">
241
+ <button class="text-slate-300 hover:text-white">
242
+ <i class="fas fa-expand"></i>
243
+ </button>
244
+ <button class="text-slate-300 hover:text-white">
245
+ <i class="fas fa-copy"></i>
246
+ </button>
247
+ </div>
248
+ </div>
249
+ <div id="markdown-preview" class="markdown-body preview"></div>
250
+ </div>
251
+ </div>
252
+ </div>
253
+
254
+ <!-- Quick Format Toolbar -->
255
+ <div class="mt-8 bg-slate-800 rounded-xl p-4">
256
+ <h3 class="text-lg font-semibold mb-3 text-center">Quick Formatting</h3>
257
+ <div class="flex flex-wrap justify-center gap-2">
258
+ <button class="format-btn" data-insert="# "><i class="fas fa-heading mr-1"></i> H1</button>
259
+ <button class="format-btn" data-insert="## "><i class="fas fa-heading mr-1"></i> H2</button>
260
+ <button class="format-btn" data-insert="### "><i class="fas fa-heading mr-1"></i> H3</button>
261
+ <button class="format-btn" data-insert="**text**"><i class="fas fa-bold mr-1"></i> Bold</button>
262
+ <button class="format-btn" data-insert="_text_"><i class="fas fa-italic mr-1"></i> Italic</button>
263
+ <button class="format-btn" data-insert="[text](url)"><i class="fas fa-link mr-1"></i> Link</button>
264
+ <button class="format-btn" data-insert="![alt](src)"><i class="fas fa-image mr-1"></i> Image</button>
265
+ <button class="format-btn" data-insert="- "><i class="fas fa-list-ul mr-1"></i> List</button>
266
+ <button class="format-btn" data-insert="1. "><i class="fas fa-list-ol mr-1"></i> Ordered</button>
267
+ <button class="format-btn" data-insert="> "><i class="fas fa-quote-right mr-1"></i> Quote</button>
268
+ <button class="format-btn" data-insert="```\ncode\n```"><i class="fas fa-code mr-1"></i> Code</button>
269
+ </div>
270
+ </div>
271
+ </main>
272
+
273
+ <!-- Floating Action Button -->
274
+ <button class="floating-button fixed bottom-6 right-6 bg-primary text-white w-14 h-14 rounded-full shadow-lg flex items-center justify-center text-2xl hover:bg-secondary transition">
275
+ <i class="fas fa-magic"></i>
276
+ </button>
277
+
278
+ <!-- Footer -->
279
+ <footer class="bg-slate-900 py-6 mt-8">
280
+ <div class="container mx-auto px-4 text-center text-slate-400">
281
+ <p>Made with <i class="fas fa-heart text-red-500"></i> using HTML, CSS, and JavaScript</p>
282
+ <p class="mt-2">Powered by Marked.js and Tailwind CSS</p>
283
+ <div class="mt-4 flex justify-center space-x-4">
284
+ <a href="#" class="text-slate-300 hover:text-white"><i class="fab fa-github"></i></a>
285
+ <a href="#" class="text-slate-300 hover:text-white"><i class="fab fa-twitter"></i></a>
286
+ <a href="#" class="text-slate-300 hover:text-white"><i class="fab fa-linkedin"></i></a>
287
+ </div>
288
+ </div>
289
+ </footer>
290
+
291
+ <script>
292
+ // Initialize Marked.js
293
+ marked.setOptions({
294
+ breaks: true,
295
+ gfm: true,
296
+ highlight: function(code, lang) {
297
+ return code;
298
+ }
299
+ });
300
+
301
+ // Get DOM elements
302
+ const markdownInput = document.getElementById('markdown-input');
303
+ const markdownPreview = document.getElementById('markdown-preview');
304
+ const formatButtons = document.querySelectorAll('.format-btn');
305
+
306
+ // Initial render
307
+ markdownPreview.innerHTML = marked.parse(markdownInput.value);
308
+
309
+ // Update preview on input changes
310
+ markdownInput.addEventListener('input', function() {
311
+ markdownPreview.innerHTML = marked.parse(this.value);
312
+ });
313
+
314
+ // Formatting buttons
315
+ formatButtons.forEach(button => {
316
+ button.addEventListener('click', function() {
317
+ const insert = this.getAttribute('data-insert');
318
+ const start = markdownInput.selectionStart;
319
+ const end = markdownInput.selectionEnd;
320
+ const selectedText = markdownInput.value.substring(start, end);
321
+ const newText = insert.replace('text', selectedText);
322
+
323
+ markdownInput.value = markdownInput.value.substring(0, start) +
324
+ newText +
325
+ markdownInput.value.substring(end);
326
+
327
+ // Trigger input event to update preview
328
+ const event = new Event('input');
329
+ markdownInput.dispatchEvent(event);
330
+
331
+ // Set cursor position
332
+ markdownInput.focus();
333
+ markdownInput.setSelectionRange(start + newText.length, start + newText.length);
334
+ });
335
+ });
336
+
337
+ // Auto-resize textarea
338
+ const textarea = document.querySelector('textarea');
339
+ const growWrap = document.querySelector('.grow-wrap');
340
+
341
+ textarea.addEventListener('input', function() {
342
+ growWrap.dataset.replicatedValue = this.value;
343
+ });
344
+
345
+ // Initialize with current value
346
+ growWrap.dataset.replicatedValue = textarea.value;
347
+
348
+ // Tab switching
349
+ const tabs = document.querySelectorAll('.tab');
350
+ tabs.forEach(tab => {
351
+ tab.addEventListener('click', function() {
352
+ tabs.forEach(t => t.classList.remove('active'));
353
+ this.classList.add('active');
354
+ });
355
+ });
356
+ </script>
357
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=tatht/markdown-parser-1" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
358
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Tạo ra trang web parse markdown