Markdown helper
This commit is contained in:
parent
a2aadecea3
commit
ca4d86db99
|
@ -4,8 +4,7 @@ namespace App\Console\Commands;
|
|||
|
||||
use App\Models\Post;
|
||||
use Illuminate\Console\Command;
|
||||
use League\CommonMark\CommonMarkConverter;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Helpers\Markdown;
|
||||
|
||||
class RegenerateHtml extends Command
|
||||
{
|
||||
|
@ -30,16 +29,11 @@ class RegenerateHtml extends Command
|
|||
*/
|
||||
public function handle()
|
||||
{
|
||||
$markdown = new CommonMarkConverter([
|
||||
'allow_unsafe_links' => true,
|
||||
]);
|
||||
$markdown = new Markdown();
|
||||
Post::chunk(100, function($posts) use($markdown) {
|
||||
foreach($posts as $post) {
|
||||
$post->content_html = $markdown->convert($post->content);
|
||||
$post->excerpt_html = Str::words($post->content_html, config('app.brief_limit'), '…');
|
||||
if (class_exists('\tidy')) {
|
||||
$post->excerpt_html = \tidy::repairString($post->excerpt_html);
|
||||
}
|
||||
$post->excerpt_html = $markdown->convert($post->content, true);
|
||||
$post->save();
|
||||
}
|
||||
});
|
||||
|
|
25
app/Helpers/Markdown.php
Normal file
25
app/Helpers/Markdown.php
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?php
|
||||
namespace App\Helpers;
|
||||
|
||||
use League\CommonMark\CommonMarkConverter;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Markdown {
|
||||
protected $converter;
|
||||
public function __construct() {
|
||||
$this->converter = new CommonMarkConverter([
|
||||
'allow_unsafe_links' => true,
|
||||
]);
|
||||
}
|
||||
public function convert(string $text, bool $trim = false): string {
|
||||
$retval = $this->converter->convert($text);
|
||||
if ($trim) {
|
||||
$retval = Str::words($retval, config('app.brief_limit'), '…');
|
||||
}
|
||||
if (class_exists('\tidy')) {
|
||||
$tidy = new \tidy();
|
||||
$retval = $tidy->repairString($retval);
|
||||
}
|
||||
return $retval;
|
||||
}
|
||||
}
|
|
@ -2,8 +2,7 @@
|
|||
namespace App\Http\View;
|
||||
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use League\CommonMark\CommonMarkConverter;
|
||||
use Nette\Utils\Html;
|
||||
use App\Helpers\Markdown;
|
||||
|
||||
class GenericView {
|
||||
/**
|
||||
|
@ -12,7 +11,7 @@ class GenericView {
|
|||
protected $is_admin = FALSE;
|
||||
|
||||
/**
|
||||
* @var CommonMarkConverter
|
||||
* @var Markdown
|
||||
**/
|
||||
protected $markdown;
|
||||
|
||||
|
@ -27,9 +26,7 @@ class GenericView {
|
|||
// Check if logged in
|
||||
$this->is_admin = !is_null(Auth::user());
|
||||
|
||||
$this->markdown = new CommonMarkConverter([
|
||||
'allow_unsafe_links' => true,
|
||||
]);
|
||||
$this->markdown = new Markdown();
|
||||
}
|
||||
|
||||
public function navigation()
|
||||
|
|
|
@ -3,20 +3,14 @@
|
|||
namespace App\Observers;
|
||||
|
||||
use App\Models\Page;
|
||||
use League\CommonMark\CommonMarkConverter;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Helpers\Markdown;
|
||||
|
||||
class PageObserver
|
||||
{
|
||||
public function saving(Page $page)
|
||||
{
|
||||
$markdown = new CommonMarkConverter([
|
||||
'allow_unsafe_links' => true,
|
||||
]);
|
||||
$markdown = new Markdown();
|
||||
$page->content_html = $markdown->convert($page->content);
|
||||
$page->excerpt_html = Str::words($page->content_html, config('app.brief_limit'), '…');
|
||||
if (class_exists('\tidy')) {
|
||||
$page->excerpt_html = \tidy::repairString($page->excerpt_html);
|
||||
}
|
||||
$page->excerpt_html = $markdown->convert($page->content, true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,20 +3,14 @@
|
|||
namespace App\Observers;
|
||||
|
||||
use App\Models\Post;
|
||||
use League\CommonMark\CommonMarkConverter;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Helpers\Markdown;
|
||||
|
||||
class PostObserver
|
||||
{
|
||||
public function saving(Post $post)
|
||||
{
|
||||
$markdown = new CommonMarkConverter([
|
||||
'allow_unsafe_links' => true,
|
||||
]);
|
||||
$markdown = new Markdown();
|
||||
$post->content_html = $markdown->convert($post->content);
|
||||
$post->excerpt_html = Str::words($post->content_html, config('app.brief_limit'), '…');
|
||||
if (class_exists('\tidy')) {
|
||||
$post->excerpt_html = \tidy::repairString($post->excerpt_html);
|
||||
}
|
||||
$post->excerpt_html = $markdown->convert($post->content, true);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue