AhBoh commited on
Commit
78a8eb1
·
verified ·
1 Parent(s): fab4f39

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +305 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Agenda Test
3
- emoji: 🌖
4
- colorFrom: yellow
5
- colorTo: pink
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: agenda-test
3
+ emoji: 🐳
4
+ colorFrom: pink
5
+ colorTo: yellow
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,305 @@
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>Italian Diary</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
+ <style>
10
+ @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=Montserrat:wght@300;400;500&display=swap');
11
+
12
+ body {
13
+ font-family: 'Montserrat', sans-serif;
14
+ background-color: #f9f5f0;
15
+ }
16
+
17
+ .title-font {
18
+ font-family: 'Playfair Display', serif;
19
+ }
20
+
21
+ .entry-text {
22
+ font-family: 'Montserrat', sans-serif;
23
+ line-height: 1.8;
24
+ }
25
+
26
+ .paper-texture {
27
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxyZWN0IHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0icmdiYSgyNTUsMjU1LDI1NSwwLjAzKSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNwYXR0ZXJuKSIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIvPjwvc3ZnPg==');
28
+ }
29
+
30
+ .fade-in {
31
+ animation: fadeIn 0.5s ease-in-out;
32
+ }
33
+
34
+ @keyframes fadeIn {
35
+ from { opacity: 0; transform: translateY(10px); }
36
+ to { opacity: 1; transform: translateY(0); }
37
+ }
38
+
39
+ .stamp {
40
+ background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIj48Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9Ijk1IiBmaWxsPSJub25lIiBzdHJva2U9IiNkYzRiNGIiIHN0cm9rZS13aWR0aD0iMiIvPjx0ZXh0IHg9IjUwJSIgeT0iNTAlIiBmb250LWZhbWlseT0iJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZiIgZm9udC1zaXplPSIxNiIgZmlsbD0iI2RjNGI0YiIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZG9taW5hbnQtYmFzZWxpbmU9Im1pZGRsZSI+RElBUklPPC90ZXh0Pjwvc3ZnPg==');
41
+ background-size: contain;
42
+ background-repeat: no-repeat;
43
+ background-position: center;
44
+ opacity: 0.7;
45
+ }
46
+ </style>
47
+ </head>
48
+ <body class="min-h-screen bg-amber-50">
49
+ <div class="container mx-auto px-4 py-8 max-w-4xl">
50
+ <!-- Header -->
51
+ <header class="mb-8 text-center fade-in">
52
+ <h1 class="title-font text-4xl md:text-5xl font-bold text-amber-900 mb-2">Italian Diary</h1>
53
+ <p class="text-amber-700 italic">Il mio diario personale</p>
54
+ <div class="w-24 h-1 bg-amber-300 mx-auto mt-4"></div>
55
+ </header>
56
+
57
+ <!-- Date Selector -->
58
+ <div class="mb-8 bg-white rounded-lg shadow-md p-4 fade-in">
59
+ <div class="flex items-center justify-between">
60
+ <button id="prev-day" class="p-2 rounded-full hover:bg-amber-100 text-amber-700">
61
+ <i class="fas fa-chevron-left"></i>
62
+ </button>
63
+ <div class="text-center">
64
+ <h2 id="current-date" class="title-font text-2xl text-amber-900">Lunedì, 1 Gennaio 2023</h2>
65
+ <p id="italian-date" class="text-sm text-amber-600">1 gennaio 2023</p>
66
+ </div>
67
+ <button id="next-day" class="p-2 rounded-full hover:bg-amber-100 text-amber-700">
68
+ <i class="fas fa-chevron-right"></i>
69
+ </button>
70
+ </div>
71
+ </div>
72
+
73
+ <!-- Diary Entry -->
74
+ <div class="mb-8 bg-white rounded-lg shadow-md overflow-hidden fade-in">
75
+ <div class="paper-texture p-6 md:p-8">
76
+ <div class="flex justify-between items-start mb-6">
77
+ <h3 class="title-font text-xl text-amber-900">Le mie riflessioni</h3>
78
+ <div class="stamp w-16 h-16"></div>
79
+ </div>
80
+ <textarea id="diary-entry" class="w-full h-64 p-4 entry-text text-amber-900 bg-transparent border border-amber-200 rounded focus:outline-none focus:ring-2 focus:ring-amber-300 focus:border-transparent" placeholder="Scrivi qui i tuoi pensieri..."></textarea>
81
+ </div>
82
+ <div class="bg-amber-50 px-6 py-4 flex justify-between items-center">
83
+ <div class="flex space-x-2">
84
+ <button id="mood-happy" class="mood-btn p-2 rounded-full hover:bg-amber-200 text-amber-700" data-mood="happy">
85
+ <i class="fas fa-smile text-xl"></i>
86
+ </button>
87
+ <button id="mood-neutral" class="mood-btn p-2 rounded-full hover:bg-amber-200 text-amber-700" data-mood="neutral">
88
+ <i class="fas fa-meh text-xl"></i>
89
+ </button>
90
+ <button id="mood-sad" class="mood-btn p-2 rounded-full hover:bg-amber-200 text-amber-700" data-mood="sad">
91
+ <i class="fas fa-frown text-xl"></i>
92
+ </button>
93
+ </div>
94
+ <button id="save-entry" class="bg-amber-600 hover:bg-amber-700 text-white px-4 py-2 rounded-full flex items-center">
95
+ <i class="fas fa-save mr-2"></i> Salva
96
+ </button>
97
+ </div>
98
+ </div>
99
+
100
+ <!-- Previous Entries -->
101
+ <div class="mb-8 fade-in">
102
+ <h3 class="title-font text-2xl text-amber-900 mb-4">Archivio</h3>
103
+ <div id="entries-container" class="space-y-4">
104
+ <!-- Entries will be added here dynamically -->
105
+ </div>
106
+ </div>
107
+ </div>
108
+
109
+ <script>
110
+ document.addEventListener('DOMContentLoaded', function() {
111
+ // Initialize date
112
+ const today = new Date();
113
+ let currentDate = new Date(today);
114
+
115
+ // Italian day and month names
116
+ const days = ['Domenica', 'Lunedì', 'Martedì', 'Mercoledì', 'Giovedì', 'Venerdì', 'Sabato'];
117
+ const months = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
118
+
119
+ // Load saved entries from localStorage
120
+ let entries = JSON.parse(localStorage.getItem('italianDiaryEntries')) || [];
121
+
122
+ // DOM elements
123
+ const currentDateEl = document.getElementById('current-date');
124
+ const italianDateEl = document.getElementById('italian-date');
125
+ const diaryEntryEl = document.getElementById('diary-entry');
126
+ const saveEntryBtn = document.getElementById('save-entry');
127
+ const prevDayBtn = document.getElementById('prev-day');
128
+ const nextDayBtn = document.getElementById('next-day');
129
+ const entriesContainer = document.getElementById('entries-container');
130
+ const moodBtns = document.querySelectorAll('.mood-btn');
131
+
132
+ let currentMood = null;
133
+
134
+ // Update date display
135
+ function updateDateDisplay() {
136
+ const dayName = days[currentDate.getDay()];
137
+ const day = currentDate.getDate();
138
+ const month = months[currentDate.getMonth()];
139
+ const year = currentDate.getFullYear();
140
+
141
+ currentDateEl.textContent = `${dayName}, ${day} ${month} ${year}`;
142
+ italianDateEl.textContent = `${day} ${month.toLowerCase()} ${year}`;
143
+
144
+ // Check if there's an entry for this date
145
+ const entry = entries.find(e => e.date === formatDate(currentDate));
146
+ if (entry) {
147
+ diaryEntryEl.value = entry.text;
148
+ currentMood = entry.mood;
149
+ updateMoodButtons();
150
+ } else {
151
+ diaryEntryEl.value = '';
152
+ currentMood = null;
153
+ resetMoodButtons();
154
+ }
155
+ }
156
+
157
+ // Format date as YYYY-MM-DD for storage
158
+ function formatDate(date) {
159
+ const d = new Date(date);
160
+ let month = '' + (d.getMonth() + 1);
161
+ let day = '' + d.getDate();
162
+ const year = d.getFullYear();
163
+
164
+ if (month.length < 2) month = '0' + month;
165
+ if (day.length < 2) day = '0' + day;
166
+
167
+ return [year, month, day].join('-');
168
+ }
169
+
170
+ // Update mood buttons appearance
171
+ function updateMoodButtons() {
172
+ moodBtns.forEach(btn => {
173
+ btn.classList.remove('bg-amber-300', 'text-amber-900');
174
+ if (btn.dataset.mood === currentMood) {
175
+ btn.classList.add('bg-amber-300', 'text-amber-900');
176
+ }
177
+ });
178
+ }
179
+
180
+ // Reset mood buttons
181
+ function resetMoodButtons() {
182
+ moodBtns.forEach(btn => {
183
+ btn.classList.remove('bg-amber-300', 'text-amber-900');
184
+ });
185
+ }
186
+
187
+ // Load previous entries
188
+ function loadPreviousEntries() {
189
+ entriesContainer.innerHTML = '';
190
+
191
+ if (entries.length === 0) {
192
+ entriesContainer.innerHTML = '<p class="text-amber-700 italic">Nessuna voce ancora salvata</p>';
193
+ return;
194
+ }
195
+
196
+ // Sort entries by date (newest first)
197
+ const sortedEntries = [...entries].sort((a, b) => new Date(b.date) - new Date(a.date));
198
+
199
+ sortedEntries.forEach(entry => {
200
+ const entryDate = new Date(entry.date);
201
+ const dayName = days[entryDate.getDay()];
202
+ const day = entryDate.getDate();
203
+ const month = months[entryDate.getMonth()];
204
+ const year = entryDate.getFullYear();
205
+
206
+ const moodIcon = entry.mood === 'happy' ? 'fa-smile text-amber-500' :
207
+ entry.mood === 'neutral' ? 'fa-meh text-amber-600' : 'fa-frown text-amber-700';
208
+
209
+ const entryEl = document.createElement('div');
210
+ entryEl.className = 'bg-white rounded-lg shadow-md overflow-hidden fade-in';
211
+ entryEl.innerHTML = `
212
+ <div class="paper-texture p-6">
213
+ <div class="flex justify-between items-start mb-4">
214
+ <h4 class="title-font text-lg text-amber-900">${dayName}, ${day} ${month} ${year}</h4>
215
+ <i class="fas ${moodIcon} text-xl"></i>
216
+ </div>
217
+ <p class="entry-text text-amber-800 whitespace-pre-line">${entry.text}</p>
218
+ </div>
219
+ <div class="bg-amber-50 px-6 py-3 flex justify-end">
220
+ <button class="delete-entry text-amber-600 hover:text-amber-800 text-sm" data-date="${entry.date}">
221
+ <i class="fas fa-trash-alt mr-1"></i> Elimina
222
+ </button>
223
+ </div>
224
+ `;
225
+
226
+ entriesContainer.appendChild(entryEl);
227
+ });
228
+
229
+ // Add event listeners to delete buttons
230
+ document.querySelectorAll('.delete-entry').forEach(btn => {
231
+ btn.addEventListener('click', function() {
232
+ const dateToDelete = this.dataset.date;
233
+ entries = entries.filter(e => e.date !== dateToDelete);
234
+ localStorage.setItem('italianDiaryEntries', JSON.stringify(entries));
235
+ loadPreviousEntries();
236
+
237
+ // If we're currently viewing the deleted entry, clear the editor
238
+ if (formatDate(currentDate) === dateToDelete) {
239
+ diaryEntryEl.value = '';
240
+ currentMood = null;
241
+ resetMoodButtons();
242
+ }
243
+ });
244
+ });
245
+ }
246
+
247
+ // Event listeners
248
+ prevDayBtn.addEventListener('click', function() {
249
+ currentDate.setDate(currentDate.getDate() - 1);
250
+ updateDateDisplay();
251
+ });
252
+
253
+ nextDayBtn.addEventListener('click', function() {
254
+ currentDate.setDate(currentDate.getDate() + 1);
255
+ // Don't allow future dates
256
+ if (currentDate > today) {
257
+ currentDate = new Date(today);
258
+ }
259
+ updateDateDisplay();
260
+ });
261
+
262
+ saveEntryBtn.addEventListener('click', function() {
263
+ const text = diaryEntryEl.value.trim();
264
+ const date = formatDate(currentDate);
265
+
266
+ if (text === '' || !currentMood) {
267
+ alert('Per favore, scrivi qualcosa e seleziona il tuo umore prima di salvare.');
268
+ return;
269
+ }
270
+
271
+ // Remove existing entry for this date if it exists
272
+ entries = entries.filter(e => e.date !== date);
273
+
274
+ // Add new entry
275
+ entries.push({
276
+ date: date,
277
+ text: text,
278
+ mood: currentMood
279
+ });
280
+
281
+ // Save to localStorage
282
+ localStorage.setItem('italianDiaryEntries', JSON.stringify(entries));
283
+
284
+ // Reload previous entries
285
+ loadPreviousEntries();
286
+
287
+ // Show success message
288
+ alert('Voce salvata con successo!');
289
+ });
290
+
291
+ // Mood button event listeners
292
+ moodBtns.forEach(btn => {
293
+ btn.addEventListener('click', function() {
294
+ currentMood = this.dataset.mood;
295
+ updateMoodButtons();
296
+ });
297
+ });
298
+
299
+ // Initialize
300
+ updateDateDisplay();
301
+ loadPreviousEntries();
302
+ });
303
+ </script>
304
+ <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=AhBoh/agenda-test" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
305
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ Italian Diary