resultArea 挂在 ProseMirror 可编辑文档树内部,浏览器对 contenteditable 子树强制 white-space 折叠(computed 为 collapse),CSS 的 white-space: pre-wrap 被覆盖,导致 textContent 里的 \n 与行首空格被吞、多行输出挤成一行。 改用 <br> 显式渲染换行、\u00A0 替换空格/制表符以保留对齐——二者均不依赖 white-space。createTextNode 避免 stdout 含 HTML 标签时的注入。