Content.php

<?php
/**
 * Get the content for the requested file / dir
 * @param $project a project from $provi->parse_url2()
 */

$path = $project->abs_file_path;

if (is_dir($path)
    &&file_exists($readme=$path.'/README.md')){
    $file=$readme;
    $source = file_get_contents($readme);
    $extension = 'md';
} else if (is_dir($path)){
    // echo 'dir dir dir';
    // exit;
    $extension = 'md';
    $source = $lia->view('DirListing',['project'=>$project]);
} else if (is_file($path)) {
    $file = $path;
    $source = file_get_contents($file);
    $extension = pathinfo($file,PATHINFO_EXTENSION);
    if ('.'.$extension==basename($path))$extension = 'txt';
} else {
    echo "The project or branch or file was not found.";
    // $provi->show_error();
    return;
    // var_dump(get_defined_vars());
    // exit;
    // $router = $lia->addon('lia:server.router');
    // ob_start();
    // $router->handleProjectError(\Taeluf\ProjectViewer\ProjectRouter::FILE_NOT_FOUND, '');
    // $source = '## '.ob_get_clean();
    // $extension = 'md';
}

$mimetype = \Lia\FastFileRouter::get_mime_type('.'.$extension) ?? '.txt'; 
// $mimetype = \Lia\Content\RawContent::extensionMimeType($extension);
$mimeparts = explode('/',$mimetype);
if ($mimeparts[0]=='image'){
    $blob = 'data:'.$mimetype.';base64,'.base64_encode($source);
    $html = '<img src="'.$blob.'" />';
    // var_dump($path);
    // var_dump($page);
    // exit;
} else if ($extension=='md'){
    // $cm = new \League\CommonMark\CommonMarkConverter([
        // 'html_input' => 'strip',
        // 'allow_unsafe_links' => false,
    // ]);
    $converter = new \League\CommonMark\CommonMarkConverter();
    $html = $converter->convert($source);
    $base_url = $project->project_url;
    if (substr($base_url,-1)=='/')$base_url = substr($base_url,0,-1);
    if (substr($base_url,-4)!='-src')$base_url .= '-src';
    $html = preg_replace("/href=\"\//", "href=\"$base_url/", $html);
    // return $converter->convert($markdown).'';
    // $source = $source;
    // $html = $cm->convertToHtml($source);
} else {
    $source = htmlentities($source);
    $basename = basename($path);
    $html = 
    <<<HTML
        <h2>{$basename}</h2>
        <pre><code class="language-{$extension}">{$source}</code></pre>
    HTML;
}


echo $html;