. */ namespace App\Helpers; use Illuminate\Support\Str; use App\Account; use App\DigestNonce; use League\CommonMark\Environment; use League\CommonMark\Extension\HeadingPermalink\HeadingPermalinkExtension; use League\CommonMark\Extension\TableOfContents\TableOfContentsExtension; use League\CommonMark\MarkdownConverter; class Utils { public static function generateNonce(): string { return Str::random(32); } public static function generateValidNonce(Account $account): string { $nonce = new DigestNonce; $nonce->account_id = $account->id; $nonce->nonce = Utils::generateNonce(); $nonce->save(); return $nonce->nonce; } public static function bchash(string $username, string $domain, string $password, string $algorithm = 'MD5') { $algos = ['MD5' => 'md5', 'SHA-256' => 'sha256']; return hash($algos[$algorithm], $username.':'.$domain.':'.$password); } public static function generatePin() { return mt_rand(1000, 9999); } public static function markdownDocumentationView($view) { $environment = Environment::createCommonMarkEnvironment(); $environment->addExtension(new HeadingPermalinkExtension); $environment->addExtension(new TableOfContentsExtension); $environment->mergeConfig([ 'heading_permalink' => [ 'html_class' => 'permalink', 'insert' => 'after', 'title' => 'Permalink', 'id_prefix' => '', 'fragment_prefix' => '', ], 'table_of_contents' => [ 'html_class' => 'table-of-contents float-right', ], ]); $converter = new MarkdownConverter($environment); return (string) $converter->convertToHtml( view($view, [ 'app_name' => config('app.name') ])->render() ); } }