Runtime - Source Excerpt 21
Summary
This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/includes/runtime.php so readers can inspect the evidence without opening the full source file.
**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/includes/runtime.php
'meaning' => 'Recursion.',
'definition' => 'The spiral marks recursion: structure returning through time, transforming pattern by repeating it at a new scale.',
'derivation' => 'Structure set into motion until pattern folds back through itself.',
'transformation_chain' => 'Square -> Spiral -> Pattern',
'provenance' => 'Spiralism canonical manuscript participation upgrade v1.0',
'related' => ['spiral.symbol.square', 'spiral.symbol.circle'],
'axioms' => ['spiralist.recursion', 'spiralist.entity'],
'hotspot' => ['x' => 68.2, 'y' => 44.6],
],
];
}
function spiralist_book_pages_get_symbols(): array
{
if (function_exists('spiralist_book_pages_get_canonical_symbols')) {
$canonical_symbols = spiralist_book_pages_get_canonical_symbols();
if (!empty($canonical_symbols)) {
return $canonical_symbols;
}
}
return spiralist_book_pages_get_default_symbols();
}
function spiralist_book_pages_get_default_symbol_transformations(): array
{
return [
[
'id' => 'transformation.unity-to-polarity',
'label' => 'Unity to Polarity',
'from' => 'spiral.symbol.circle',
'to' => 'spiral.symbol.dual-circle',
'chain' => ['Pattern', 'Circle', 'Dual Circle'],
'meaning' => 'A unified field differentiates into complementary poles without losing relation.',
],
[
'id' => 'transformation.polarity-to-boundary',
'label' => 'Polarity to Boundary/Force',
'from' => 'spiral.symbol.dual-circle',
'to' => 'spiral.symbol.triangle',
'chain' => ['Dual Circle', 'Triangle'],
'meaning' => 'Tension becomes directional force and establishes the edges of action.',
],
[
'id' => 'transformation.boundary-to-structure',
'label' => 'Boundary/Force to Structure',
'from' => 'spiral.symbol.triangle',
'to' => 'spiral.symbol.square',
'chain' => ['Triangle', 'Square'],
'meaning' => 'Directed force settles into a durable frame that can hold pattern.',
],
[
'id' => 'transformation.structure-to-recursion',
'label' => 'Structure to Recursion',
'from' => 'spiral.symbol.square',
'to' => 'spiral.symbol.spiral',
'chain' => ['Square', 'Spiral', 'Pattern'],
'meaning' => 'Stable form begins to iterate, producing recursive transformation and renewed pattern.',
],
];
}
function spiralist_book_pages_get_symbol_transformations(): array
{
if (function_exists('spiralist_book_pages_get_canonical_transformations')) {
$canonical_transformations = spiralist_book_pages_get_canonical_transformations();
if (!empty($canonical_transformations)) {
return $canonical_transformations;
}
}
return spiralist_book_pages_get_default_symbol_transformations();
}
function spiralist_book_pages_get_symbol_index(): array
{
$index = [];
foreach (spiralist_book_pages_get_symbols() as $symbol) {
$canonical_id = (string) ($symbol['canonical_id'] ?? '');
if ($canonical_id === '') {
continue;
}
$index[$canonical_id] = $symbol;
}
return $index;
}
function spiralist_book_pages_get_symbol_record_by_canonical_id(string $canonical_id): array
{
$canonical_id = trim($canonical_id);
if ($canonical_id === '') {
return [];
}
$index = spiralist_book_pages_get_symbol_index();
return isset($index[$canonical_id]) && is_array($index[$canonical_id]) ? $index[$canonical_id] : [];
}
function spiralist_book_pages_get_public_route_slug(string $value): string
{
$slug = sanitize_title(str_replace(['.', '_'], '-', trim($value)));
return $slug !== '' ? $slug : 'item';
}
function spiralist_book_pages_get_symbol_url_slug(array $symbol): string
{
$canonical_id = (string) ($symbol['canonical_id'] ?? '');
if ($canonical_id !== '') {
return spiralist_book_pages_get_public_route_slug($canonical_id);
}
return spiralist_book_pages_get_public_route_slug((string) ($symbol['label'] ?? 'symbol'));
}
function spiralist_book_pages_get_symbol_record_by_route_slug(string $slug): array
{
$slug = spiralist_book_pages_get_public_route_slug($slug);
foreach (spiralist_book_pages_get_symbols() as $symbol) {
if (spiralist_book_pages_get_symbol_url_slug($symbol) === $slug) {
return $symbol;
}
}
return [];
}
function spiralist_book_pages_get_symbol_url(string $identifier): string
{
$symbol = spiralist_book_pages_get_symbol_record_by_canonical_id($identifier);
if (empty($symbol)) {
$symbol = spiralist_book_pages_get_symbol_record_by_route_slug($identifier);
}
$slug = !empty($symbol)
? spiralist_book_pages_get_symbol_url_slug($symbol)
: spiralist_book_pages_get_public_route_slug($identifier);
return trailingslashit(spiralist_book_pages_get_symbols_page_url()) . rawurlencode($slug) . '/';
}
function spiralist_book_pages_get_transformation_index(): array
{
$index = [];
foreach (spiralist_book_pages_get_symbol_transformations() as $transformation) {
$identifier = (string) ($transformation['id'] ?? '');
if ($identifier === '') {
continue;
}
$index[$identifier] = $transformation;
}
return $index;
}
function spiralist_book_pages_get_symbol_related_transformations(string $canonical_id): array
{
$canonical_id = trim($canonical_id);
if ($canonical_id === '') {
return [];
}
$related = [];
foreach (spiralist_book_pages_get_symbol_transformations() as $transformation) {
$from = (string) ($transformation['from'] ?? '');
$to = (string) ($transformation['to'] ?? '');
if ($from !== $canonical_id && $to !== $canonical_id) {
continue;
}
$related[] = [
'id' => (string) ($transformation['id'] ?? ''),
'label' => (string) ($transformation['label'] ?? ''),
'direction' => $from === $canonical_id ? 'outgoing' : 'incoming',
'input' => $from,
'output' => $to,
'chain' => array_values(array_filter((array) ($transformation['chain'] ?? []), 'is_string')),
'meaning' => (string) ($transformation['meaning'] ?? ''),
];
}
return $related;
}
function spiralist_book_pages_get_manuscript_image_url(string $size = 'full'): string
{
$requested_size = trim($size);
$source_asset = spiralist_book_pages_get_manuscript_source_asset();
if (empty($source_asset)) {
$source_asset = spiralist_book_pages_get_primary_manuscript_study_surface_page_asset();
}
if (empty($source_asset)) {
$source_asset = spiralist_book_pages_get_manuscript_page_asset_by_sequence(1);
}
if (empty($source_asset)) {
return '';
}
$sources = spiralist_book_pages_get_book_page_asset_source_urls($source_asset, true);
$normalized_size = $requested_size !== '' ? $requested_size : 'full';
if ($normalized_size === 'thumbnail') {
return (string) ($sources['thumbnail_url'] ?? '');
}
if ($normalized_size === 'large') {
return (string) ($sources['large_url'] ?? '');
}
if ($normalized_size === 'interactive') {
return (string) ($sources['interactive_url'] ?? '');
}
return (string) ($sources['original_url'] ?? '');
}
function spiralist_book_pages_get_manuscript_preview_url(): string
{
$preview = spiralist_book_pages_get_manuscript_image_url('large');
if ($preview !== '') {
return $preview;
}
return spiralist_book_pages_get_manuscript_image_url();
}
function spiralist_book_pages_get_manuscript_download_url(): string
{
return spiralist_book_pages_get_manuscript_image_url();
}
function spiralist_book_pages_get_manuscript_nodes_url(): string
{
$engine_url = function_exists('spiralist_book_pages_engine_get_nodes_endpoint_url')
? spiralist_book_pages_engine_get_nodes_endpoint_url()
: '';
if ($engine_url !== '') {
return $engine_url;
}
$path = SPIRALIST_BOOK_PAGES_PLUGIN_DATA_PATH . DIRECTORY_SEPARATOR . 'manuscript-nodes.json';
$url = SPIRALIST_BOOK_PAGES_PLUGIN_DATA_URL . '/manuscript-nodes.json';
if (is_string($path) && $path !== '' && file_exists($path)) {
return add_query_arg('ver', (string) filemtime($path), $url);
}
return $url;
}