Virtual Pages - Source Excerpt 93
Summary
This source excerpt preserves a bounded section of 2IA.org/wp-content/themes/twoia-intelligence/inc/virtual-pages.php so readers can inspect the evidence without opening the full source file.
**Source path:** 2IA.org/wp-content/themes/twoia-intelligence/inc/virtual-pages.php
/**
* Render the launch article blueprint shelf.
*/
function twoia_render_launch_article_blueprints() {
?>
<section class="section section--compact twoia-blueprint-section" aria-labelledby="twoia-launch-slate-title">
<header class="section-header">
<p class="eyebrow"><?php esc_html_e( 'Launch content', 'two-identities-anonymous' ); ?></p>
<h2 id="twoia-launch-slate-title"><?php esc_html_e( 'Core Research Starters', 'two-identities-anonymous' ); ?></h2>
<p><?php esc_html_e( 'Each card gives readers a lead, source categories, civil-liberties implications, correction link, and next check.', 'two-identities-anonymous' ); ?></p>
</header>
<div class="twoia-dossier-grid">
<?php foreach ( twoia_launch_article_blueprints() as $article ) : ?>
<article class="briefing-panel briefing-panel--compact twoia-dossier-card">
<span class="metadata-label"><?php echo esc_html( $article['topic'] ); ?></span>
<h3><?php echo esc_html( $article['title'] ); ?></h3>
<p><strong><?php esc_html_e( 'Deck:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['deck'] ); ?></p>
<p><strong><?php esc_html_e( 'Reader promise:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['promise'] ); ?></p>
<?php twoia_render_virtual_dossier_list( $article['takeaways'] ); ?>
<p><?php echo esc_html( $article['explanation'] ); ?></p>
<p><strong><?php esc_html_e( 'Evidence/source categories:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['sources'] ); ?></p>
<p><strong><?php esc_html_e( 'Civil-liberties implications:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['implications'] ); ?></p>
<p><strong><?php esc_html_e( 'What to check next:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['next_steps'] ); ?></p>
<p><strong><?php esc_html_e( 'Related routes:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $article['internal_links'] ); ?></p>
<p><strong><?php esc_html_e( 'Correction link:', 'two-identities-anonymous' ); ?></strong> <a href="<?php echo esc_url( home_url( '/corrections-and-right-of-reply/' ) ); ?>"><?php esc_html_e( 'Corrections and right of reply', 'two-identities-anonymous' ); ?></a></p>
</article>
<?php endforeach; ?>
</div>
</section>
<?php
}
/**
* Render issue hub outlines.
*/
function twoia_render_issue_hub_blueprints() {
$taxonomy = array(
'Metadata Is Identity',
'Surveillance Architecture',
'Public Records and FOIA',
'AI Risk Scores and Due Process',
'Data Brokers and Shadow Public Power',
'Keyword Monitoring and False Positives',
'Protest Privacy and Civil Liberties',
'Facial Recognition and Biometric Identity',
'Social Media Monitoring',
'Location Data',
'Watchlists, Flags, and Institutional Memory',
'Corrections, Appeals, and Right of Reply',
'OSINT Ethics and Harm Reduction',
);
?>
<section class="section section--compact twoia-blueprint-section" aria-labelledby="twoia-hub-blueprints-title">
<header class="section-header">
<p class="eyebrow"><?php esc_html_e( 'Issue hubs', 'two-identities-anonymous' ); ?></p>
<h2 id="twoia-hub-blueprints-title"><?php esc_html_e( 'Thirteen issue maps for records, harms, and demands', 'two-identities-anonymous' ); ?></h2>
<p><?php echo esc_html( implode( ' / ', $taxonomy ) ); ?></p>
</header>
<div class="twoia-dossier-grid">
<?php foreach ( twoia_issue_hub_blueprints() as $hub ) : ?>
<article class="briefing-panel briefing-panel--compact twoia-dossier-card">
<span class="metadata-label"><?php esc_html_e( 'Issue Hub', 'two-identities-anonymous' ); ?></span>
<h3><?php echo esc_html( $hub['title'] ); ?></h3>
<p><strong><?php esc_html_e( 'Plain-language overview:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['overview'] ); ?></p>
<p><strong><?php esc_html_e( 'Why it matters:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['why'] ); ?></p>
<p><strong><?php esc_html_e( 'How the system works:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['works'] ); ?></p>
<p><strong><?php esc_html_e( 'What can go wrong:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['wrong'] ); ?></p>
<?php if ( ! empty( $hub['benefits'] ) ) : ?>
<p><strong><?php esc_html_e( 'Who benefits:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['benefits'] ); ?></p>
<?php endif; ?>
<?php if ( ! empty( $hub['harmed'] ) ) : ?>
<p><strong><?php esc_html_e( 'Who is harmed:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['harmed'] ); ?></p>
<?php endif; ?>
<?php if ( ! empty( $hub['terms'] ) ) : ?>
<p><strong><?php esc_html_e( 'Key terms:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['terms'] ); ?></p>
<?php endif; ?>
<p><strong><?php esc_html_e( 'Documents to request:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['records'] ); ?></p>
<p><strong><?php esc_html_e( 'Questions for officials:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['questions'] ); ?></p>
<?php if ( ! empty( $hub['actors'] ) ) : ?>
<p><strong><?php esc_html_e( 'Known vendors or institutional actors:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['actors'] ); ?></p>
<?php endif; ?>
<p><strong><?php esc_html_e( 'External authoritative references:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['references'] ); ?></p>
<?php if ( ! empty( $hub['related'] ) ) : ?>
<p><strong><?php esc_html_e( 'Related 2IA dossiers:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['related'] ); ?></p>
<?php endif; ?>
<p><strong><?php esc_html_e( 'Public move:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $hub['steps'] ); ?></p>
</article>
<?php endforeach; ?>
</div>
</section>
<?php
}
/**
* Render source-class standards.
*/
function twoia_render_source_class_matrix() {
?>
<section class="section section--compact twoia-blueprint-section" aria-labelledby="twoia-source-class-title">
<header class="section-header">
<p class="eyebrow"><?php esc_html_e( 'Source classes', 'two-identities-anonymous' ); ?></p>
<h2 id="twoia-source-class-title"><?php esc_html_e( 'How the archive weighs evidence', 'two-identities-anonymous' ); ?></h2>
<p><?php esc_html_e( 'The same source can prove one thing and only suggest another. This matrix gives readers the confidence logic before they reach a dossier.', 'two-identities-anonymous' ); ?></p>
</header>
<div class="twoia-dossier-grid">
<?php foreach ( twoia_source_class_matrix() as $source_class ) : ?>
<article class="briefing-panel briefing-panel--compact twoia-dossier-card">
<span class="metadata-label"><?php esc_html_e( 'Source Class', 'two-identities-anonymous' ); ?></span>
<h3><?php echo esc_html( $source_class['class'] ); ?></h3>
<p><strong><?php esc_html_e( 'Examples:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $source_class['examples'] ); ?></p>
<p><strong><?php esc_html_e( 'Use:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $source_class['use'] ); ?></p>
<p><strong><?php esc_html_e( 'Strength:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $source_class['strength'] ); ?></p>
<p><strong><?php esc_html_e( 'Limits:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $source_class['limits'] ); ?></p>
<p><strong><?php esc_html_e( 'Confidence handling:', 'two-identities-anonymous' ); ?></strong> <?php echo esc_html( $source_class['confidence'] ); ?></p>
</article>
<?php endforeach; ?>
</div>
</section>
<?php
}