TYPE: СЕТЬ
ZONE: СИЭТЛ
TITLE: MATRIX FEED ВЫШЛА В ЭФИР
REWARD: —
TEXT: Городской канал Zero Frame принимает сводки, слухи, объявления и последствия игровых эпизодов.
LINK: —
Как добавить новость
Каждый новый ответ в этой теме становится карточкой в новостной ленте. Скопируйте шесть строк выше и замените значения.
TYPE — категория: СРОЧНО, КОРПОРАЦИИ, РОЗЫСК, СЛУХИ, КОНТРАКТ или СЕТЬ.
ZONE — район или источник.
TITLE — короткий заголовок.
REWARD — награда либо знак «—».
TEXT — один короткий абзац.
LINK — полная ссылка на эпизод или знак «—».
Лента использует последние сообщения этой темы. Код дизайна для обновления новостей открывать не требуется.
КОНСТРУКТОР СВОДКИ MATRIX FEED
[html]
<style>body{margin:0;background:#061012;color:#d6f8f1;font:13px Arial,sans-serif}.zfbox{border:1px solid #00a98f;background:linear-gradient(135deg,#071719,#041012);padding:16px;box-sizing:border-box}.zftop{color:#62ffcf;font:700 15px monospace;letter-spacing:2px;margin-bottom:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wide{grid-column:1/-1}label{display:block;color:#55c9b5;font:700 10px monospace;letter-spacing:1px;margin-bottom:4px}input,select,textarea{width:100%;box-sizing:border-box;border:1px solid #17665d;background:#020909;color:#e8fffa;padding:9px;font:13px Arial}textarea{min-height:72px;resize:vertical}.out{min-height:125px;font-family:monospace;color:#91ffd9}.buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}button{border:1px solid #00d4ae;background:#07332d;color:#aaffdd;padding:9px 14px;font:700 11px monospace;cursor:pointer}button:hover{background:#0b4d42}.status{margin-top:8px;color:#7ea9a1;font:11px monospace}@media(max-width:600px){.grid{grid-template-columns:1fr}}</style>
<div class="zfbox"><div class="zftop">CITYNET // MATRIX FEED BUILDER</div><div class="grid"><div><label>КАТЕГОРИЯ</label><select id="nf_type"><option>СРОЧНО</option><option>КОРПОРАЦИИ</option><option>РОЗЫСК</option><option>СЛУХИ</option><option>КОНТРАКТ</option><option>СЕТЬ</option><option>МАТРИЦА</option><option>ТРАНСПОРТ</option><option>БЕЗОПАСНОСТЬ</option><option>ПОГОДА</option><option>РЫНОК</option></select></div><div><label>РАЙОН / ИСТОЧНИК</label><input id="nf_zone" placeholder="Например: КРАСНАЯ ЗОНА"></div><div class="wide"><label>ЗАГОЛОВОК</label><input id="nf_title" placeholder="Короткий заголовок"></div><div><label>НАГРАДА</label><input id="nf_reward" value="—" placeholder="— или 3 500 ¥"></div><div><label>ССЫЛКА НА ЭПИЗОД</label><input id="nf_link" value="—" placeholder="— или https://..."></div><div class="wide"><label>ТЕКСТ СВОДКИ</label><textarea id="nf_text" placeholder="Один короткий информативный абзац"></textarea></div><div class="wide"><label>ГОТОВАЯ ЗАПИСЬ</label><textarea id="nf_out" class="out" readonly></textarea></div></div><div class="buttons"><button type="button" onclick="nfBuild()">СОБРАТЬ</button><button type="button" onclick="nfCopy()">КОПИРОВАТЬ</button><button type="button" onclick="nfClear()">ОЧИСТИТЬ</button></div><div id="nf_status" class="status">Заполните поля и нажмите «Собрать».</div></div>
<script>function nfv(id){return document.getElementById(id).value.trim()}function nfBuild(){var s='TYPE: '+nfv('nf_type')+'\nZONE: '+(nfv('nf_zone')||'—')+'\nTITLE: '+(nfv('nf_title')||'—')+'\nREWARD: '+(nfv('nf_reward')||'—')+'\nTEXT: '+(nfv('nf_text')||'—')+'\nLINK: '+(nfv('nf_link')||'—');document.getElementById('nf_out').value=s;document.getElementById('nf_status').textContent='Запись собрана и готова для вставки в новый ответ.';return s}function nfCopy(){var o=document.getElementById('nf_out');if(!o.value)nfBuild();o.focus();o.select();var done=false;try{done=document.execCommand('copy')}catch(e){}if(navigator.clipboard){navigator.clipboard.writeText(o.value).then(function(){document.getElementById('nf_status').textContent='Скопировано в буфер обмена.'}).catch(function(){document.getElementById('nf_status').textContent=done?'Скопировано в буфер обмена.':'Выделите результат и скопируйте вручную.'})}else document.getElementById('nf_status').textContent=done?'Скопировано в буфер обмена.':'Выделите результат и скопируйте вручную.'}function nfClear(){['nf_zone','nf_title','nf_text','nf_out'].forEach(function(id){document.getElementById(id).value=''});document.getElementById('nf_reward').value='—';document.getElementById('nf_link').value='—';document.getElementById('nf_status').textContent='Форма очищена.'}</script>
[/html]