--- // 考察記事から、いま考えていることと目指すことを伝えるページ(試作) // v="yoko":全部を横組みの読み物に。出典・見出しの番号・ラベルは左の余白に置く // v="tate":最初の画面と本人の言葉(「」)を縦書きに。説明の文は横組み import { TOP, NOW, AXES, CHANGES, OPEN, AIM, TATE_BREAKS, type Log } from '../data/thinking'; import V from './ThinkingVoice.astro'; interface Props { v: 'yoko' | 'tate' } const { v } = Astro.props; const tate = v === 'tate'; const href = (l: Log) => `/record/${l.slug}`; // 縦書きの中の欧字と数字(日本語組版の決まり JLREQ 3.2.3 に合わせる) // - 小文字の英単語(micro factory など)は、決まりどおり時計回りに90度寝かせる(何もしない=ブラウザの既定) // - 大文字だけの略語(AI・VLA など5字まで)は1字ずつ正立させる // - 2桁の数字は縦中横にする const esc = (t: string) => t.replace(/[&<>"]/g, (c) => ({ '&': '&', '<': '<', '>': '>', '"': '"' }[c]!)); const BR = new Map(TATE_BREAKS.map((b) => [b.replaceAll('/', ''), b])); for (const [plain] of BR) { const all = [NOW.voice.t, ...AXES.flatMap((a) => a.voice.map((q) => q.t)), ...CHANGES.items.map((c) => c.voice.t), ...OPEN.items.map((o) => o.v).filter(Boolean), AIM.voice.t]; if (!all.includes(plain)) throw new Error(`縦書きの改行位置が、本人の言葉と一致しない: ${plain}`); } const tateHtml = (t: string) => (BR.get(t) ?? t).split('/').map((ln) => esc(ln) .replace(/(? tcy ? `${tcy}` : `${up}`)).join('
'); ---
{tate ? (

二〇二六年十月までの考察記事から、いま考えていること

{TOP.q[0]}
{TOP.q[1]}

{TOP.lead[0]}
{TOP.lead[1]}

) : (

2026年10月までの
考察記事から、
いま考えていること

{TOP.q[0]}{TOP.q[1]}

{TOP.lead[0]}
{TOP.lead[1]}

)}

{NOW.h}

{NOW.logs.map((l) => {l.n})}

{NOW.text}

{NOW.voice.log.n}
{tate ?

:

{NOW.voice.t}

}

考えの軸

{AXES.map((a) => (

{a.no}

{a.no} {a.h}

{a.scene.k}

{a.scene.link ? a.scene.t.split(a.scene.link.text).map((part, i) => i === 0 ? part : <>{a.scene.link!.text}{part}) : a.scene.t}

{a.voice.slice(0, 1).map((q) => )}

なぜそう考えるか{a.why.logs.map((l) => {l.n})}

{a.why.t}

{a.voice.slice(1).map((q) => )} {a.think &&

考え

{a.think}

}

やりたいこと

{a.want}

元の記事

{a.logs.map((l) => {l.n})}

))}

{CHANGES.h}

{CHANGES.items.map((c) => (

{c.h}

{c.t}

))}

{OPEN.h}

{OPEN.items.map((o) => (

{!o.v && {o.log.n}}

{o.t}

{o.v && (
{o.log.n}{o.when}
{tate ?

:

{o.v}

}
)}
))}

{AIM.h}

{AIM.voice.log.n}
{tate ?

:

{AIM.voice.t}

}

{AIM.log.n}

{AIM.text}

この考えについて、話してみたいことがあれば。

メッセージを送る