Let’s fix that right now. The issue is likely how the browser handles the contenteditable
div when you press Enter.
The Fix: Use a standard, reliable <input>
field.
This is more robust across all browsers. I have updated declassifier.md
to replace the contenteditable
div with a proper <input type="text">
.
Step 1: Replace declassifier.md
Again
Please delete the contents of declassifier.md
and paste this updated version.
The key changes are:
- HTML: Changed
<div contenteditable="true" ...>
to<input type="text" ...>
. - JS: Changed
terminalInput.innerText
toterminalInput.value
. - CSS: Minor tweaks to make the input field look right in the terminal.
---
layout: wide
title: Declassifier
permalink: /declassifier/
---
<!--
DECLASSIFIER: Terminal + Research Briefings (V2 - Fixed Input)
-->
<style>
/* --- Terminal & Container Styles --- */
.declassifier-terminal-container {
max-width: 850px;
margin: 2rem auto 4rem auto;
font-family: 'Courier New', Monaco, monospace;
}
.declassifier-terminal {
background: #1a1a1a;
border-radius: 8px;
overflow: hidden;
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.4);
}
.terminal-header {
background: #333;
padding: 0.5rem 1rem;
color: #ccc;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 0.9rem;
}
.terminal-controls {
display: flex;
gap: 0.4rem;
}
.control {
width: 12px;
height: 12px;
border-radius: 50%;
}
.control.close { background: #ff5f57; }
.control.minimize { background: #ffbd2e; }
.control.maximize { background: #28ca42; }
/* Terminal Body & Interaction */
.terminal-body {
padding: 1.5rem;
background: #222;
color: #e0e0e0;
min-height: 200px;
max-height: 400px;
overflow-y: auto;
}
.terminal-output {
margin-bottom: 1rem;
font-size: 0.95rem;
line-height: 1.5;
}
.terminal-line {
margin-bottom: 0.5rem;
opacity: 0;
animation: fadeIn 0.3s forwards;
}
@keyframes fadeIn { to { opacity: 1; } }
.terminal-prompt-line {
display: flex;
align-items: center;
margin-top: 1rem;
}
.terminal-prompt-line label {
color: #4dabf7;
margin-right: 0.5rem;
flex-shrink: 0;
font-weight: bold;
}
/* THE FIX: Styles for the standard <input> */
.terminal-input {
flex: 1;
background: transparent;
border: none;
color: #fff;
outline: none;
font-family: inherit;
font-size: 0.95rem;
padding: 0;
width: 100%;
}
.terminal-input::placeholder {
color: #666;
opacity: 1;
}
.declassify-btn {
display: block;
margin: 1rem auto;
padding: 0.75rem 2rem;
background: #4dabf7;
color: #fff;
border: none;
border-radius: 4px;
font-family: 'Courier New', monospace;
cursor: pointer;
transition: background 0.2s;
}
.declassify-btn:hover {
background: #3a8bc7;
}
/* --- Report/Briefing Styles --- */
.available-reports-container {
max-width: 850px;
margin: 2rem auto;
}
.report-buttons {
display: flex;
gap: 0.5rem;
margin-top: 1rem;
flex-wrap: wrap;
}
.report-btn {
padding: 0.5rem 1rem;
background: #eee;
color: #333;
border: 1px solid #ccc;
border-radius: 4px;
cursor: pointer;
}
.report-btn.active {
background: #4dabf7;
color: white;
border-color: #4dabf7;
}
.report-container {
max-width: 850px;
margin: 0 auto 4rem auto;
}
.report-content {
display: none;
background: #f9f9f9;
padding: 2rem;
border-radius: 8px;
}
.report-content.visible {
display: block;
}
.report-title {
color: #222;
margin-top: 0;
border-bottom: 2px solid #4dabf7;
padding-bottom: 0.5rem;
}
.report-section {
margin-bottom: 2rem;
}
.report-section h3 {
color: #4dabf7;
}
.connection {
background: #eef7ff;
padding: 1rem;
border-left: 4px solid #4dabf7;
}
</style>
<!-- Hero Section -->
<div class="declassifier-hero">
<div class="container narrow">
<h1>Psilocybin Declassifier</h1>
<p class="about-subtitle">Access structured briefings on the science of psilocybin, neuroplasticity, and fungal innovation.</p>
</div>
</div>
<!-- Terminal Interface -->
<div class="declassifier-terminal-container">
<div class="declassifier-terminal">
<div class="terminal-header">
<span>PSILOCYBIN_TERMINAL.EXE</span>
<div class="terminal-controls">
<span class="control close"></span>
<span class="control minimize"></span>
<span class="control maximize"></span>
</div>
</div>
<div class="terminal-body">
<div class="terminal-output" id="terminalOutput">
<div class="terminal-line">> SYSTEM INITIALIZED.</div>
<div class="terminal-line">> Welcome to the Research Declassifier.</div>
</div>
<!-- THE FIX: Using a standard input field -->
<div class="terminal-prompt-line">
<label for="queryInput">></label>
<input
type="text"
id="queryInput"
class="terminal-input"
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"
placeholder="Type a topic (e.g., microdosing) and press Enter..."
>
</div>
</div>
</div>
<button class="declassify-btn" id="declassifyBtn">Run Query</button>
</div>
<!-- Quick Access Reports -->
<div class="available-reports-container">
<div class="container narrow">
<h3>Featured Briefings</h3>
<div class="report-buttons">
<button class="report-btn active" data-report="report-depression">Depression</button>
<button class="report-btn" data-report="report-neuroplasticity">Neuroplasticity</button>
<button class="report-btn" data-report="report-materials">Mycelium Tech</button>
</div>
</div>
</div>
<!-- Report Content Area -->
<div class="report-container" id="reportContainer">
<!-- Report 1: Depression -->
<div class="report-content visible" id="report-depression">
<h2 class="report-title">Briefing: Psilocybin for Treatment-Resistant Depression (TRD)</h2>
<div class="report-section">
<h3>1. Executive Summary</h3>
<p>Clinical trials demonstrate that psilocybin-assisted therapy produces rapid and enduring antidepressant effects. One or two high-dose sessions can lead to remission lasting months by facilitating profound psychological shifts and "rewiring" rigid thought patterns.</p>
</div>
<div class="report-section connection">
<h3>2. The Psiloconvalley Signal</h3>
<p>This research shifts the paradigm from "managing symptoms" to "treating root causes." It signals a future where mental health care is precise, short-term, and curative.</p>
</div>
</div>
<!-- Report 2: Neuroplasticity -->
<div class="report-content" id="report-neuroplasticity">
<h2 class="report-title">Briefing: Psilocybin & Neuroplasticity</h2>
<div class="report-section">
<h3>1. Executive Summary</h3>
<p>Psilocybin acts as a catalyst for <b>neuroplasticity</b>—the brain's ability to reorganize itself by forming new neural connections. This may explain the "reset" feeling and long-term benefits.</p>
</div>
<div class="report-section connection">
<h3>2. The Psiloconvalley Signal</h3>
<p>If the brain is hardware, psilocybin is an update patch. The ability to intentionally promote adaptation is the ultimate biohack.</p>
</div>
</div>
<!-- Report 3: Mycelium Materials -->
<div class="report-content" id="report-materials">
<h2 class="report-title">Briefing: Mycelium as Sustainable Technology</h2>
<div class="report-section">
<h3>1. Executive Summary</h3>
<p>Mycelium is being harnessed to "grow" industrial materials. By feeding agricultural waste to mushroom strains, companies create biodegradable alternatives to plastic foam and leather.</p>
</div>
<div class="report-section connection">
<h3>2. The Psiloconvalley Signal</h3>
<p>This demonstrates how biological intelligence can replace extractive industrial processes, merging "tech" with the wisdom of natural systems.</p>
</div>
</div>
</div>
<!-- JavaScript for Interactivity -->
<script>
document.addEventListener('DOMContentLoaded', function() {
const terminalInput = document.getElementById('queryInput');
const terminalOutput = document.getElementById('terminalOutput');
const runBtn = document.getElementById('declassifyBtn');
const reportButtons = document.querySelectorAll('.report-btn');
const reportContents = document.querySelectorAll('.report-content');
// --- 1. Handle Report Switching (Buttons) ---
reportButtons.forEach(button => {
button.addEventListener('click', function() {
reportButtons.forEach(btn => btn.classList.remove('active'));
this.classList.add('active');
const targetReportId = this.getAttribute('data-report');
showReport(targetReportId);
});
});
// --- 2. Handle Terminal Queries (Simulated) ---
function processQuery() {
// THE FIX: Use .value for input elements
const query = terminalInput.value.trim().toLowerCase();
if (!query) return;
// 1. Echo the query
appendTerminalLine(`> ${query}`);
appendTerminalLine("> Processing request...");
// 2. Clear the input field
terminalInput.value = '';
// 3. Match query to a report (Simulated AI)
setTimeout(() => {
let matchedReport = null;
if (query.includes('depress') || query.includes('trd') || query.includes('mental')) {
matchedReport = 'report-depression';
} else if (query.includes('neuro') || query.includes('plasticity') || query.includes('brain')) {
matchedReport = 'report-neuroplasticity';
} else if (query.includes('mycelium') || query.includes('material') || query.includes('sustainable')) {
matchedReport = 'report-materials';
}
if (matchedReport) {
appendTerminalLine("> MATCH FOUND. Loading briefing...");
activateReportAndScroll(matchedReport);
} else {
appendTerminalLine(`> No match for "${query}". Try "neuroplasticity".`);
}
}, 800);
}
// --- Helper Functions ---
function appendTerminalLine(text) {
const line = document.createElement('div');
line.className = 'terminal-line';
line.textContent = text;
terminalOutput.appendChild(line);
terminalOutput.scrollTop = terminalOutput.scrollHeight;
}
function showReport(reportId) {
reportContents.forEach(content => content.classList.remove('visible'));
const targetReport = document.getElementById(reportId);
if (targetReport) {
targetReport.classList.add('visible');
}
}
function activateReportAndScroll(reportId) {
// Sync the button state
const button = document.querySelector(`.report-btn[data-report="${reportId}"]`);
if (button) {
reportButtons.forEach(btn => btn.classList.remove('active'));
button.classList.add('active');
}
// Show the report
showReport(reportId);
// Scroll to it
document.getElementById('reportContainer').scrollIntoView({ behavior: 'smooth', block: 'start' });
}
// --- Event Listeners ---
runBtn.addEventListener('click', processQuery);
terminalInput.addEventListener('keydown', function(e) {
if (e.key === 'Enter') {
e.preventDefault();
processQuery();
}
});
// Focus the input on load
terminalInput.focus();
});
</script>
Step 2: Test
Save the file, let Jekyll refresh, and try typing depression
and hitting Enter. It should work perfectly now.