\implode( "\n", \array_map( fn ($entry) => \rosavox\helpers\render( 'docs-list-entry', [ 'link' => \rosavox\helpers\string_coin( '?mode=edit&id={{id}}', [ 'id' => $entry['id'], ] ), 'text' => $entry['doc']['title'], ] ), \rosavox\logic\docs_list() ) ), 'link_new' => '?mode=make', ] ) ); break; } case 'make': { echo( \rosavox\helpers\render( 'docs-edit', [ 'id' => '', 'title' => '', 'authors' => '', 'content' => '', 'reasoning' => '', 'link_back' => '?mode=list', ] ) ); break; } case 'edit': { $doc = \rosavox\logic\docs_read($id); echo( \rosavox\helpers\render( 'docs-edit', [ 'id' => $id_encoded, 'title' => $doc['title'], 'authors' => \implode(', ', $doc['authors']), 'content' => $doc['content'], 'reasoning' => $doc['reasoning'], 'link_back' => '?mode=list', ] ) ); break; } case 'save': { throw (new \Exception('not implemented yet')); break; } default: { throw (new \Exception(\sprintf('invalid mode: %s', $mode))); break; } } ?>