feat: convert web El source to native HTML template syntax
Replace all return "..." HTML string literals with native El templates —
removes all \" escapes, converts + interpolations to {expr}/{raw(expr)},
and replaces conditional string concatenation with {#if}/{#else}/{/if}.
No functional changes; output is identical.
This commit is contained in:
+44
-46
@@ -6,64 +6,63 @@
|
||||
// path when a signal warrants it.
|
||||
|
||||
fn safety() -> String {
|
||||
return "
|
||||
<section id=\"safety\" aria-label=\"Safety\" style=\"padding:8rem 2.5rem;background:var(--bg2)\">
|
||||
<div class=\"container-lg\">
|
||||
return <section id="safety" aria-label="Safety" style="padding:8rem 2.5rem;background:var(--bg2)">
|
||||
<div class="container-lg">
|
||||
|
||||
<!-- Intro text -->
|
||||
<div style=\"max-width:44rem;margin-bottom:3.5rem\">
|
||||
<div style=\"display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem\">
|
||||
<div class=\"navy-line-left\" style=\"width:3rem;flex-shrink:0\"></div>
|
||||
<span class=\"label reveal\" style=\"color:var(--navy-85)\">Safety</span>
|
||||
<div style="max-width:44rem;margin-bottom:3.5rem">
|
||||
<div style="display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem">
|
||||
<div class="navy-line-left" style="width:3rem;flex-shrink:0"></div>
|
||||
<span class="label reveal" style="color:var(--navy-85)">Safety</span>
|
||||
</div>
|
||||
<h2 class=\"display-lg reveal\" style=\"transition-delay:80ms;margin-bottom:1.5rem\">
|
||||
<h2 class="display-lg reveal" style="transition-delay:80ms;margin-bottom:1.5rem">
|
||||
Safety built in.<br>Not bolted on.
|
||||
</h2>
|
||||
<p class=\"reveal\" style=\"transition-delay:160ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">
|
||||
<p class="reveal" style="transition-delay:160ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem">
|
||||
Most AI products treat safety as a content filter. Block a list of topics, add a disclaimer, call it done. That's not safety. That's liability management.
|
||||
</p>
|
||||
<p class=\"reveal\" style=\"transition-delay:220ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">
|
||||
<p class="reveal" style="transition-delay:220ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem">
|
||||
Real safety means thinking about who might need help and what help actually looks like in a crisis. The person closest to you is sometimes the source of the problem. A system that routes every distress signal to your primary contact can alert the very person you need protection from.
|
||||
</p>
|
||||
<p class=\"reveal\" style=\"transition-delay:280ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8\">
|
||||
<p class="reveal" style="transition-delay:280ms;font-family:var(--body);font-weight:300;font-size:1rem;color:var(--t2);line-height:1.8">
|
||||
I built something different. I called it the Hard Bell.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- 2x2 card grid -->
|
||||
<div style=\"display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem\">
|
||||
<div style="display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem">
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:100ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem\">Hard Bell</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">A trusted contact the threat can't intercept</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
<div class="reveal card-dark" style="transition-delay:100ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)">
|
||||
<p style="font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem">Hard Bell</p>
|
||||
<p style="font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem">A trusted contact the threat can't intercept</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7">
|
||||
Any user can designate a Hard Bell contact - a friend, a relative, a colleague - set up in a calm moment, independent of any shared account. When a signal warrants it, that contact is reached directly. It works the same way for everyone: adult, teen, or child.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:150ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem\">Emergency routing</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Emergency services first - not notification</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
<div class="reveal card-dark" style="transition-delay:150ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)">
|
||||
<p style="font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem">Emergency routing</p>
|
||||
<p style="font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem">Emergency services first - not notification</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7">
|
||||
Physical danger and crisis signals route to emergency services and crisis lines. Neuron evaluates the content of the signal, not the account type. No one in your contact list can disable or redirect this path.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:200ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem\">Family accounts</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">Oversight without surveillance</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
<div class="reveal card-dark" style="transition-delay:200ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)">
|
||||
<p style="font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem">Family accounts</p>
|
||||
<p style="font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem">Oversight without surveillance</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7">
|
||||
For family accounts, parents see what they need to see. A child's conversations remain private unless a wellbeing signal triggers notification - and even then, the routing logic accounts for the possibility that the parent could be the source of harm.
|
||||
</p>
|
||||
<p style=\"font-family:var(--body);font-weight:500;font-size:0.875rem;color:var(--t1);line-height:1.7;margin-top:0.75rem\">
|
||||
<p style="font-family:var(--body);font-weight:500;font-size:0.875rem;color:var(--t1);line-height:1.7;margin-top:0.75rem">
|
||||
We protect the kids. They come first.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"transition-delay:250ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem\">Mandatory reporting</p>
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem\">If real harm is intended, authorities may be contacted</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7\">
|
||||
<div class="reveal card-dark" style="transition-delay:250ms;padding:1.75rem 2rem;border-left:3px solid rgba(0,82,160,.40)">
|
||||
<p style="font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem">Mandatory reporting</p>
|
||||
<p style="font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);margin-bottom:0.5rem">If real harm is intended, authorities may be contacted</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.875rem;color:var(--t2);line-height:1.7">
|
||||
If Neuron detects credible, specific indicators of intended harm - to the user or to someone else - emergency services or relevant authorities may be contacted. Every user agrees to this at account creation. You cannot opt out.
|
||||
</p>
|
||||
</div>
|
||||
@@ -71,41 +70,40 @@ fn safety() -> String {
|
||||
</div>
|
||||
|
||||
<!-- People first card — full width -->
|
||||
<div class=\"reveal card-dark\" style=\"padding:2rem 2.5rem;border-left:3px solid var(--navy);margin-bottom:1.5rem\">
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem\">This applies to anyone planning mass harm, a shooting, or serious self-harm. Not just child protection - anyone. The same logic holds: a misunderstanding can be resolved. A person's life can't be given back to them.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:700;font-size:1.125rem;color:var(--navy);line-height:1.4\">People first, always.</p>
|
||||
<div class="reveal card-dark" style="padding:2rem 2.5rem;border-left:3px solid var(--navy);margin-bottom:1.5rem">
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1.25rem">This applies to anyone planning mass harm, a shooting, or serious self-harm. Not just child protection - anyone. The same logic holds: a misunderstanding can be resolved. A person's life can't be given back to them.</p>
|
||||
<p style="font-family:var(--body);font-weight:700;font-size:1.125rem;color:var(--navy);line-height:1.4">People first, always.</p>
|
||||
</div>
|
||||
|
||||
<!-- Statement + stat cards — each full width -->
|
||||
<div style=\"display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem\">
|
||||
<div style="display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem">
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"padding:2rem 2.5rem;border-left:3px solid rgba(0,82,160,.30)\">
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem\">Why the routing works this way</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:0.75rem\">According to federal child maltreatment data (HHS, Child Maltreatment 2023), approximately 89% of child abuse victims are maltreated by a parent or caregiver. The emergency contact on file is not always a safe contact.</p>
|
||||
<p style=\"font-family:var(--body);font-size:0.75rem;color:var(--t3)\">Source: U.S. Department of Health & Human Services, Administration for Children and Families, <em>Child Maltreatment 2023</em>. <a href=\"https://www.acf.hhs.gov/cb/data-research/child-maltreatment\" target=\"_blank\" rel=\"noopener\" style=\"color:var(--navy)\">acf.hhs.gov/cb/data-research/child-maltreatment</a></p>
|
||||
<div class="reveal card-dark" style="padding:2rem 2.5rem;border-left:3px solid rgba(0,82,160,.30)">
|
||||
<p style="font-family:var(--body);font-size:0.75rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--navy);margin-bottom:0.75rem">Why the routing works this way</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:0.75rem">According to federal child maltreatment data (HHS, Child Maltreatment 2023), approximately 89% of child abuse victims are maltreated by a parent or caregiver. The emergency contact on file is not always a safe contact.</p>
|
||||
<p style="font-family:var(--body);font-size:0.75rem;color:var(--t3)">Source: U.S. Department of Health & Human Services, Administration for Children and Families, <em>Child Maltreatment 2023</em>. <a href="https://www.acf.hhs.gov/cb/data-research/child-maltreatment" target="_blank" rel="noopener" style="color:var(--navy)">acf.hhs.gov/cb/data-research/child-maltreatment</a></p>
|
||||
</div>
|
||||
|
||||
<div class=\"reveal card-dark\" style=\"padding:2rem 2.5rem;border-left:3px solid var(--navy)\">
|
||||
<p style=\"font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);line-height:1.8;margin-bottom:0.75rem\">I recognize I will lose business over this. That doesn't matter to me.</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">This is still local. Neuron, LLC does not see your conversations. When a safety signal fires, the contact is made by your local instance - not by our servers. We are not in the loop. We cannot be. That's the architecture.</p>
|
||||
<div class="reveal card-dark" style="padding:2rem 2.5rem;border-left:3px solid var(--navy)">
|
||||
<p style="font-family:var(--body);font-weight:400;font-size:0.9375rem;color:var(--t1);line-height:1.8;margin-bottom:0.75rem">I recognize I will lose business over this. That doesn't matter to me.</p>
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8">This is still local. Neuron, LLC does not see your conversations. When a safety signal fires, the contact is made by your local instance - not by our servers. We are not in the loop. We cannot be. That's the architecture.</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Required block -->
|
||||
<div class=\"reveal\" style=\"padding:2rem 2.5rem;border:1px solid rgba(0,82,160,.15);background:rgba(0,82,160,.03)\">
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">
|
||||
<strong style=\"color:var(--t1);font-weight:500\">Required before you can use Neuron.</strong> You must designate a Hard Bell contact during setup - before anything else. This is not a settings page you visit later. It happens first.
|
||||
<div class="reveal" style="padding:2rem 2.5rem;border:1px solid rgba(0,82,160,.15);background:rgba(0,82,160,.03)">
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem">
|
||||
<strong style="color:var(--t1);font-weight:500">Required before you can use Neuron.</strong> You must designate a Hard Bell contact during setup - before anything else. This is not a settings page you visit later. It happens first.
|
||||
</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem\">
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8;margin-bottom:1rem">
|
||||
If you don't have someone to designate, you can use 988 - the Suicide & Crisis Lifeline - as your Hard Bell contact. The system will accept it. The point is that no one goes in without a line out.
|
||||
</p>
|
||||
<p style=\"font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8\">
|
||||
<p style="font-family:var(--body);font-weight:300;font-size:0.9375rem;color:var(--t2);line-height:1.8">
|
||||
I'm also establishing a Neuron crisis line - free, 24/7, staffed. Because I recognize that some people don't have anyone. The technology shouldn't make that worse. It should be the thing that catches you when nothing else does.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user