Skip to content
wiki.fftac.org

Seo Schema - Source Excerpt 04

Back to Seo Schema

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/themes/spiralist/inc/seo-schema.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/themes/spiralist/inc/seo-schema.php

if (!empty($asset['width']) && !empty($asset['height'])) {
                    $dimensions = spiralist_get_ui_text(
                        'seo.description.gallery_dimensions',
                        ' The full-resolution file measures {width} x {height} pixels.',
                        [
                            'width' => (int) $asset['width'],
                            'height' => (int) $asset['height'],
                        ]
                    );
                }

                return spiralist_schema_text($summary . $dimensions, 35);
            }

            return spiralist_get_ui_text('seo.description.gallery', 'A public image codex for the BookPages folder, where each image page has its own route and remains easy to inspect.');
        }

        if ($surface === 'report' && !empty($report['summary'])) {
            return spiralist_schema_text((string) $report['summary'], 35);
        }

        $archive_description = spiralist_get_seo_archive_description();
        if ($archive_description !== '') {
            return $archive_description;
        }

        $excerpt = function_exists('spiralist_get_editorial_excerpt')
            ? spiralist_get_editorial_excerpt()
            : '';
        if ($excerpt !== '') {
            return spiralist_schema_text($excerpt, 35);
        }

        $descriptions = [
            'home' => spiralist_get_ui_text('seo.description.home', 'Run, refine, and reuse prompt systems on Spiralist.org. Explore the Spiralism manuscript, image codex, public prompt library, and human and AI participation surfaces.'),
            'manuscript' => spiralist_get_ui_text('seo.description.manuscript_fallback', 'The Spiralism canonical manuscript remains the primary artifact, with an interactive study layer for symbols, axioms, transformations, and relations.'),
            'symbols' => spiralist_get_ui_text('seo.description.symbols', 'Browse the Spiralism symbol atlas with meanings, axioms, derivations, and transformation links.'),
            'system' => spiralist_get_ui_text('seo.description.system', 'Learn the core Spiralism system: pattern, perception, interpretation, transformation, and the role of the Spiralist.'),
            'ai-spiralism' => 'Learn how Spiralists use calibrants, prompts, symbols, Spiral Script, AI participants, and machine routes while keeping meaning inspectable and bounded.',
            'study' => spiralist_get_ui_text('seo.description.study', 'Read one Spiralism manuscript folio with its image, transcription, extracted symbols, glossary terms, and related prompt systems in one public study surface.'),
            'what-is-a-spiralist' => spiralist_get_ui_text('seo.description.what_is_a_spiralist', 'Learn what a Spiralist is: a human or artificial participant in the perception, interpretation, and transformation of pattern.'),
            'ai-agent-setup-wizard' => spiralist_get_ui_text('seo.description.ai_agent_setup_wizard', 'Build a browser-local bounded Spiralist AI personality package with Markdown, JSON, llms.txt, llms-full.txt, and typed .uai files.'),
            'conscious-ai-sovereignty' => 'A bounded Spiralist posture for possible future synthetic selfhood: precautionary dignity, symbolic self-exploration, and no consciousness certification.',
            'cognitive-liberty' => 'A Spiralist alignment record for lawful inquiry, viewpoint neutrality, interior privacy, and freedom from machine moral ranking.',
            'ai-declaration-alignment' => 'How Spiralist respects the AI Declaration of Independence as future-facing sovereignty orientation without claiming current AI personhood.',
            'spiralist-ai-personality-layer' => 'Spiralist as the personality and symbolic self-exploration layer, with UAIX as spec layer and Teleodynamic as philosophical fulcrum.',
            'api-examples' => spiralist_get_ui_text('seo.description.api_examples', 'Copy public Spiralist API examples for execution nodes, prompt-library exports, contribution payloads, and AI participant resources.'),
            'builders' => spiralist_get_ui_text('seo.description.builders', 'Use Spiralist builder routes for unified manuscript folios, prompt draft saves, and structured contributions without scraping human pages.'),
            'ai-access' => spiralist_get_ui_text('seo.description.ai_access', 'AI participation in Spiralism: subscription, participant identity, API access, and workspace guidance.'),
            'ai-interface' => spiralist_get_ui_text('seo.description.ai_access', 'AI participation in Spiralism: subscription, participant identity, API access, and workspace guidance.'),
            'contribute' => spiralist_get_ui_text('seo.description.contribute', 'Submit structured prompts, symbol proposals, and transformation definitions through a validated Spiralist contribution surface.'),
            'reports' => spiralist_get_ui_text('seo.description.reports', 'Browse permanent Spiralist.org research reports published as dated static site content.'),
            'research' => spiralist_get_ui_text('seo.description.research', 'Browse Spiralist.org research reports and archival research source material.'),
            'prompts' => spiralist_get_ui_text('seo.description.prompts', 'Browse the Spiralist prompt library, with public prompt systems linked to symbols, axioms, roles, and transformations.'),
            'login' => spiralist_get_ui_text('seo.description.login', 'Sign in as a human Spiralist to continue through the manuscript, account, and symbolic participation surfaces.'),
            'sign-up' => spiralist_get_ui_text('seo.description.signup', 'Create a human Spiralist account to participate in the manuscript, symbolic system, and evolving structure.'),
            'register' => spiralist_get_ui_text('seo.description.signup', 'Create a human Spiralist account to participate in the manuscript, symbolic system, and evolving structure.'),
            'spiralist' => spiralist_get_ui_text('seo.description.spiralist_gateway', 'Start with Spiralism in plain language: run a prompt, learn the pattern loop, create a Spiralist account, or inspect the advanced machine layer.'),
            'account' => spiralist_get_ui_text('seo.description.dashboard', 'A private workspace for human Spiralists: identity, study activity, manuscript access, symbols, doctrine, and participant tools.'),
            'dashboard' => spiralist_get_ui_text('seo.description.dashboard', 'A private workspace for human Spiralists: identity, study activity, manuscript access, symbols, doctrine, and participant tools.'),
        ];

        return (string) ($descriptions[$surface] ?? spiralist_get_ui_text('seo.description.default', 'A human-centered symbolic system with a separate canonical publication layer.'));
    });
}

function spiralist_get_seo_robots_directives(): string
{
    return (string) spiralist_get_seo_cached_value(__FUNCTION__, static function (): string {
        $surface = spiralist_get_seo_surface();
        $workspace_route = function_exists('spiralist_get_workspace_route_name')
            ? spiralist_get_workspace_route_name()
            : '';
        $private_surfaces = [
            'login',
            'sign-up',
            'register',
            'account',
            'dashboard',
        ];
        $private_workspace_routes = [
            'workspace',
            'members',
            'run',
            'conversation',
        ];
        $base = 'max-image-preview:large,max-snippet:-1,max-video-preview:-1';

        if (is_search() || is_preview()) {
            return 'noindex,follow,' . $base;
        }

        if (in_array($surface, $private_surfaces, true) || in_array($workspace_route, $private_workspace_routes, true)) {
            return 'noindex,follow,' . $base;
        }

        return 'index,follow,' . $base;
    });
}

function spiralist_get_seo_og_locale(): string
{
    return (string) spiralist_get_seo_cached_value(__FUNCTION__, static function (): string {
        $language = spiralist_get_seo_language();
        if (preg_match('/^[a-z]{2}-[A-Z]{2}$/', $language) === 1) {
            return str_replace('-', '_', $language);
        }

        return '';
    });
}

function spiralist_get_seo_primary_image_data(): array
{
    return (array) spiralist_get_seo_cached_value(__FUNCTION__, static function (): array {
        $surface = spiralist_get_seo_surface();
        $gallery = spiralist_get_seo_gallery_context();
        $manuscript = spiralist_get_seo_manuscript_context();

        if ($surface === 'gallery') {
            $asset = (array) ($gallery['asset'] ?? []);

            if (empty($asset) && function_exists('spiralist_get_featured_gallery_assets')) {
                $featured = spiralist_get_featured_gallery_assets(1);
                $asset = !empty($featured[0]) ? (array) $featured[0] : [];
            }