Mohammed AL Sarraj commited on
Commit
d28190f
Β·
1 Parent(s): d715331

style: replace em dashes with hyphens for natural-sounding text

Browse files
app/home/templates/home/index.html CHANGED
@@ -1,5 +1,5 @@
1
  {% extends "base.html" %}
2
- {% block title %}DevKit β€” Developer Toolkit{% endblock %}
3
 
4
  {% block content %}
5
  <link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap" rel="stylesheet">
@@ -49,7 +49,7 @@
49
  <div class="dk-hero">
50
  <div class="dk-eyebrow"><span></span>Developer Toolkit<span></span></div>
51
  <h1 class="dk-h1">Build better.<br><em>Ship faster.</em><span class="cursor"></span></h1>
52
- <p class="dk-sub">Six precision tools for the daily developer workflow β€” schema auditing, SQL generation, test suites, and documentation.</p>
53
  <div class="dk-meta"><span>No signup required</span><span>Free forever</span><span>6 tools</span></div>
54
  </div>
55
  <div class="dk-section">
 
1
  {% extends "base.html" %}
2
+ {% block title %}DevKit - Developer Toolkit{% endblock %}
3
 
4
  {% block content %}
5
  <link href="https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap" rel="stylesheet">
 
49
  <div class="dk-hero">
50
  <div class="dk-eyebrow"><span></span>Developer Toolkit<span></span></div>
51
  <h1 class="dk-h1">Build better.<br><em>Ship faster.</em><span class="cursor"></span></h1>
52
+ <p class="dk-sub">Six precision tools for the daily developer workflow - schema auditing, SQL generation, test suites, and documentation.</p>
53
  <div class="dk-meta"><span>No signup required</span><span>Free forever</span><span>6 tools</span></div>
54
  </div>
55
  <div class="dk-section">
app/tools/changelog_ai/templates/changelog_ai/index.html CHANGED
@@ -1,5 +1,5 @@
1
  {% extends "base.html" %}
2
- {% block title %}Changelog.ai β€” AI Release Notes Generator{% endblock %}
3
 
4
  {% block extra_head %}
5
  <style>
@@ -29,7 +29,7 @@
29
  </div>
30
  <div class="flex items-center gap-3">
31
  <button id="btn-download-pdf"
32
- title="Opens print dialog β€” choose Save as PDF for a text-based, ATS-readable file"
33
  class="hidden bg-white border border-slate-200 hover:border-slate-300 text-on-surface px-4 py-2 rounded-lg text-sm font-medium transition-all shadow-sm flex items-center gap-2">
34
  <span class="material-symbols-outlined text-sm" style="font-size:16px">picture_as_pdf</span>
35
  Save as PDF
@@ -320,13 +320,13 @@ refactor: clean up legacy charting utility"></textarea>
320
  })
321
  });
322
  const data = await res.json();
323
- if (!res.ok) { showError(data.error || 'Generation failed β€” try again.'); return; }
324
  lastResult = data;
325
  renderChangelog(data);
326
  showState('results');
327
  btnDownloadPdf.classList.remove('hidden');
328
  } catch (_) {
329
- showError('Network error β€” is the server running?');
330
  }
331
  }
332
 
@@ -431,7 +431,7 @@ refactor: clean up legacy charting utility"></textarea>
431
  lines.push('## ' + meta.emoji + ' ' + getSectionLabel(section.type));
432
  lines.push('');
433
  (section.items || []).forEach(item => {
434
- lines.push('- **' + (item.title || '') + '** β€” ' + (item.description || ''));
435
  });
436
  lines.push('');
437
  });
@@ -679,7 +679,7 @@ refactor: clean up legacy charting utility"></textarea>
679
  },
680
  {
681
  version: 'v3.1.2',
682
- commits: `- feat: offline mode β€” browse and save content without internet
683
  - feat: biometric login (Face ID / fingerprint)
684
  - feat: share to WhatsApp and Instagram Stories
685
  - fix: app crashing on Android 12 when opening camera
 
1
  {% extends "base.html" %}
2
+ {% block title %}Changelog.ai - AI Release Notes Generator{% endblock %}
3
 
4
  {% block extra_head %}
5
  <style>
 
29
  </div>
30
  <div class="flex items-center gap-3">
31
  <button id="btn-download-pdf"
32
+ title="Opens print dialog - choose Save as PDF for a text-based, ATS-readable file"
33
  class="hidden bg-white border border-slate-200 hover:border-slate-300 text-on-surface px-4 py-2 rounded-lg text-sm font-medium transition-all shadow-sm flex items-center gap-2">
34
  <span class="material-symbols-outlined text-sm" style="font-size:16px">picture_as_pdf</span>
35
  Save as PDF
 
320
  })
321
  });
322
  const data = await res.json();
323
+ if (!res.ok) { showError(data.error || 'Generation failed - try again.'); return; }
324
  lastResult = data;
325
  renderChangelog(data);
326
  showState('results');
327
  btnDownloadPdf.classList.remove('hidden');
328
  } catch (_) {
329
+ showError('Network error - is the server running?');
330
  }
331
  }
332
 
 
431
  lines.push('## ' + meta.emoji + ' ' + getSectionLabel(section.type));
432
  lines.push('');
433
  (section.items || []).forEach(item => {
434
+ lines.push('- **' + (item.title || '') + '** - ' + (item.description || ''));
435
  });
436
  lines.push('');
437
  });
 
679
  },
680
  {
681
  version: 'v3.1.2',
682
+ commits: `- feat: offline mode - browse and save content without internet
683
  - feat: biometric login (Face ID / fingerprint)
684
  - feat: share to WhatsApp and Instagram Stories
685
  - fix: app crashing on Android 12 when opening camera
app/tools/doc_forge/templates/doc_forge/docs.html CHANGED
@@ -1,6 +1,6 @@
1
  {% extends "base.html" %}
2
 
3
- {% block title %}{{ owner }}/{{ repo }} β€” DocForge{% endblock %}
4
 
5
  {% block extra_head %}
6
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
 
1
  {% extends "base.html" %}
2
 
3
+ {% block title %}{{ owner }}/{{ repo }} - DocForge{% endblock %}
4
 
5
  {% block extra_head %}
6
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
app/tools/doc_forge/templates/doc_forge/index.html CHANGED
@@ -1,6 +1,6 @@
1
  {% extends "base.html" %}
2
 
3
- {% block title %}DocForge β€” AI Documentation Engine{% endblock %}
4
 
5
  {% block extra_head %}
6
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
@@ -125,7 +125,7 @@
125
  <h3 class="text-3xl font-bold tracking-tight mb-4 text-on-surface">Understand any codebase in seconds.</h3>
126
  <p class="text-on-surface-variant max-w-sm mb-8 font-medium">
127
  DocForge parses file trees, function relationships, and logic flows to explain
128
- <span class="italic text-on-surface">why</span> code works β€” not just what it does.
129
  </p>
130
  <div class="mt-auto pt-8 flex items-center justify-between">
131
  <div class="flex items-center gap-2 text-xs font-mono text-outline">
@@ -194,7 +194,7 @@
194
  </div>
195
  <div>
196
  <h5 class="font-bold text-on-surface">AI-Written README</h5>
197
- <p class="text-sm text-on-surface-variant">A complete, professional README with setup instructions, features, and badges β€” generated from your code.</p>
198
  </div>
199
  </div>
200
  <div class="flex gap-4">
 
1
  {% extends "base.html" %}
2
 
3
+ {% block title %}DocForge - AI Documentation Engine{% endblock %}
4
 
5
  {% block extra_head %}
6
  <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
 
125
  <h3 class="text-3xl font-bold tracking-tight mb-4 text-on-surface">Understand any codebase in seconds.</h3>
126
  <p class="text-on-surface-variant max-w-sm mb-8 font-medium">
127
  DocForge parses file trees, function relationships, and logic flows to explain
128
+ <span class="italic text-on-surface">why</span> code works - not just what it does.
129
  </p>
130
  <div class="mt-auto pt-8 flex items-center justify-between">
131
  <div class="flex items-center gap-2 text-xs font-mono text-outline">
 
194
  </div>
195
  <div>
196
  <h5 class="font-bold text-on-surface">AI-Written README</h5>
197
+ <p class="text-sm text-on-surface-variant">A complete, professional README with setup instructions, features, and badges - generated from your code.</p>
198
  </div>
199
  </div>
200
  <div class="flex gap-4">
app/tools/git_narrator/templates/git_narrator/index.html CHANGED
@@ -1,5 +1,5 @@
1
  {% extends "base.html" %}
2
- {% block title %}Git Narrator β€” Engineering Stories{% endblock %}
3
 
4
  {% block content %}
5
 
 
1
  {% extends "base.html" %}
2
+ {% block title %}Git Narrator - Engineering Stories{% endblock %}
3
 
4
  {% block content %}
5
 
app/tools/schema_detective/templates/schema_detective/index.html CHANGED
@@ -1,5 +1,5 @@
1
  {% extends "base.html" %}
2
- {% block title %}Schema Detective β€” Database Schema Auditor{% endblock %}
3
 
4
  {% block extra_head %}
5
  <style>
@@ -25,7 +25,7 @@
25
  <button id="btn-clear" class="px-4 py-2 text-sm font-medium text-on-surface-variant hover:bg-surface-container rounded-lg transition-colors">
26
  Clear
27
  </button>
28
- <button id="btn-download-pdf" title="Opens print dialog β€” choose Save as PDF for a text-based, ATS-readable file" class="hidden items-center gap-2 px-4 py-2 bg-white border border-slate-200 hover:border-slate-300 rounded-lg text-sm font-medium text-on-surface shadow-sm transition-all">
29
  <span class="material-symbols-outlined" style="font-size:16px">picture_as_pdf</span>
30
  Save as PDF
31
  </button>
@@ -348,7 +348,7 @@ CREATE TABLE prescriptions (
348
  body: JSON.stringify({ schema })
349
  });
350
  const data = await res.json();
351
- if (!res.ok) { showError(data.error || 'Audit failed β€” try again.'); return; }
352
  _lastFindings = data.findings || [];
353
  renderResults(data);
354
  showState('results');
@@ -356,7 +356,7 @@ CREATE TABLE prescriptions (
356
  btnDownloadPdf.classList.remove('hidden');
357
  btnDownloadPdf.classList.add('flex');
358
  } catch (_) {
359
- showError('Network error β€” is the server running?');
360
  }
361
  }
362
 
 
1
  {% extends "base.html" %}
2
+ {% block title %}Schema Detective - Database Schema Auditor{% endblock %}
3
 
4
  {% block extra_head %}
5
  <style>
 
25
  <button id="btn-clear" class="px-4 py-2 text-sm font-medium text-on-surface-variant hover:bg-surface-container rounded-lg transition-colors">
26
  Clear
27
  </button>
28
+ <button id="btn-download-pdf" title="Opens print dialog - choose Save as PDF for a text-based, ATS-readable file" class="hidden items-center gap-2 px-4 py-2 bg-white border border-slate-200 hover:border-slate-300 rounded-lg text-sm font-medium text-on-surface shadow-sm transition-all">
29
  <span class="material-symbols-outlined" style="font-size:16px">picture_as_pdf</span>
30
  Save as PDF
31
  </button>
 
348
  body: JSON.stringify({ schema })
349
  });
350
  const data = await res.json();
351
+ if (!res.ok) { showError(data.error || 'Audit failed - try again.'); return; }
352
  _lastFindings = data.findings || [];
353
  renderResults(data);
354
  showState('results');
 
356
  btnDownloadPdf.classList.remove('hidden');
357
  btnDownloadPdf.classList.add('flex');
358
  } catch (_) {
359
+ showError('Network error - is the server running?');
360
  }
361
  }
362
 
app/tools/sql_whisperer/templates/sql_whisperer/index.html CHANGED
@@ -1,5 +1,5 @@
1
  {% extends "base.html" %}
2
- {% block title %}SQL Whisperer β€” NL to SQL{% endblock %}
3
 
4
  {% block content %}
5
 
@@ -36,7 +36,7 @@
36
  {# ── Body: split panel ───────────────────────────────────────────────────────── #}
37
  <div class="flex flex-1 overflow-hidden">
38
 
39
- {# Left β€” inputs #}
40
  <section class="w-[42%] flex flex-col gap-3 p-4 overflow-y-auto"
41
  style="border-right: 1px solid rgba(60,60,67,0.10); background: #F2F2F7;">
42
 
@@ -93,7 +93,7 @@ CREATE TABLE orders (
93
  </div>
94
  </section>
95
 
96
- {# Right β€” results #}
97
  <section class="flex-1 flex flex-col p-4 gap-3 overflow-y-auto" style="background:#F2F2F7;">
98
 
99
  {# Empty state #}
 
1
  {% extends "base.html" %}
2
+ {% block title %}SQL Whisperer - NL to SQL{% endblock %}
3
 
4
  {% block content %}
5
 
 
36
  {# ── Body: split panel ───────────────────────────────────────────────────────── #}
37
  <div class="flex flex-1 overflow-hidden">
38
 
39
+ {# Left - inputs #}
40
  <section class="w-[42%] flex flex-col gap-3 p-4 overflow-y-auto"
41
  style="border-right: 1px solid rgba(60,60,67,0.10); background: #F2F2F7;">
42
 
 
93
  </div>
94
  </section>
95
 
96
+ {# Right - results #}
97
  <section class="flex-1 flex flex-col p-4 gap-3 overflow-y-auto" style="background:#F2F2F7;">
98
 
99
  {# Empty state #}
app/tools/test_forge/templates/test_forge/index.html CHANGED
@@ -1,6 +1,6 @@
1
  {% extends "base.html" %}
2
 
3
- {% block title %}Test Forge β€” AI Test Suite Generator{% endblock %}
4
 
5
  {% block content %}
6
  <!-- Top Nav -->
@@ -309,7 +309,7 @@
309
  })
310
  });
311
  const data = await res.json();
312
- if (!res.ok) { showError(data.error || 'Generation failed β€” try again.'); return; }
313
 
314
  generatedCode = data.test_code || '';
315
  testOutput.textContent = generatedCode;
@@ -339,11 +339,11 @@
339
  showState('results');
340
  setAiStatus('ready');
341
  } catch (_) {
342
- showError('Network error β€” is the server running?');
343
  }
344
  }
345
 
346
- // Copy (no innerHTML β€” toggle icon/label via textContent)
347
  btnCopy.addEventListener('click', async () => {
348
  if (!generatedCode) return;
349
  await navigator.clipboard.writeText(generatedCode);
 
1
  {% extends "base.html" %}
2
 
3
+ {% block title %}Test Forge - AI Test Suite Generator{% endblock %}
4
 
5
  {% block content %}
6
  <!-- Top Nav -->
 
309
  })
310
  });
311
  const data = await res.json();
312
+ if (!res.ok) { showError(data.error || 'Generation failed - try again.'); return; }
313
 
314
  generatedCode = data.test_code || '';
315
  testOutput.textContent = generatedCode;
 
339
  showState('results');
340
  setAiStatus('ready');
341
  } catch (_) {
342
+ showError('Network error - is the server running?');
343
  }
344
  }
345
 
346
+ // Copy (no innerHTML - toggle icon/label via textContent)
347
  btnCopy.addEventListener('click', async () => {
348
  if (!generatedCode) return;
349
  await navigator.clipboard.writeText(generatedCode);