瀏覽代碼

取消使用marked

baijunyao 8 年之前
父節點
當前提交
20ec9975d9

+ 82 - 72
app/Http/Controllers/Admin/IndexController.php

@@ -2,6 +2,8 @@
 
 namespace App\Http\Controllers\Admin;
 
+use HyperDown\Parser;
+use Parsedown;
 use App\Models\Chat;
 use App\Models\Config;
 use App\Models\FriendshipLink;
@@ -29,65 +31,73 @@ class IndexController extends Controller
 
     public function migration(Article $articleModel, ArticleTag $articleTag, Comment $commentModel, FriendshipLink $friendshipLinkModel, Config $configModel, OauthUser $oauthUserModel, Chat $chatModel)
     {
-        // $htmlConverter = new HtmlConverter();
-        // // $htmlConverter = new \HTML_To_Markdown();
-        // $test = DB::connection('old')->table('article')->where('aid', 105)->first();
-        // $content = htmlspecialchars_decode($test->content);
-        // $content = str_replace('<br style="box-sizing: inherit; margin-bottom: 0px;"/>', '', $content);
-        // $content = str_replace('/Upload/image/ueditor', 'uploads/article', $content);
-        // $content = str_replace(['<pre class="brush:', '</pre>', ';toolbar:false">', '&nbsp;', '<p><br/></p>'], ["\r\n```", "\r\n```\r\n", "\r\n", ' ', "\r\n"], $content);
-        // $content = str_replace('```js', '```javascript', $content);
-        // $content = str_replace("\r\n", '|rn|', $content);
-        // $content = str_replace('<p>', '', $content);
-        // $content = str_replace('</p>', '|rn|', $content);
-        // $markdown = $htmlConverter->convert($content);
-        // $markdown = htmlspecialchars($markdown);
-        // $markdown = str_replace(['|rn|', '\*', '\_', '|s|'], ["\r\n", '*', '_', ' '], $markdown);
-        // $markdown = str_replace("\r\n\r\n", "\r\n", $markdown);
-        // $markdown = str_replace('http://www.baijunyao.com/uploads/article', 'uploads/article', $markdown);
-        // echo $markdown;die;
+        $data = DB::connection('old')->table('article')->where('aid', 103)->value('content');
+        $content = htmlspecialchars_decode($data);
+        $content = str_replace('<br style="box-sizing: inherit; margin-bottom: 0px;"/>', '', $content);
+        $content = str_replace('/Upload/image/ueditor', '/uploads/article', $content);
+        $content = str_replace(['<pre class="brush:', '</pre>', ';toolbar:false">',  '<p><br/></p>'], ["\r\n```", "\r\n```\r\n", "\r\n", "\r\n"], $content);
+        $content = str_replace('```js', '```javascript', $content);
+        $content = str_replace("\r\n", '|rn|', $content);
+        $content = str_replace('<p>', '', $content);
+        $content = str_replace('</p>', '|rn|', $content);
+        $htmlConverter = new HtmlConverter();
+        echo $content;die;
+        $markdown = $htmlConverter->convert($content);
+        $markdown = htmlspecialchars($markdown);
+        $markdown = str_replace(['|rn|', '\*', '\_', "\n "], ["\r\n", '*', '_', "\n    "], $markdown);
+        $markdown = str_replace("\r\n\r\n", "\r\n", $markdown);
+        $markdown = str_replace('http://www.baijunyao.com/uploads/article', 'uploads/article', $markdown);
+        echo $markdown;die;
+        die;
 
 
         // 从旧系统中迁移文章
-        // $htmlConverter = new HtmlConverter();
-        // $data = DB::connection('old')->table('article')->get()->toArray();
-        // $articleModel->truncate();
-        // foreach ($data as $k => $v) {
-        //     $content = htmlspecialchars_decode($v->content);
-        //     $content = str_replace('<br style="box-sizing: inherit; margin-bottom: 0px;"/>', '', $content);
-        //     $content = str_replace('/Upload/image/ueditor', '/uploads/article', $content);
-        //     $content = str_replace(['<pre class="brush:', '</pre>', ';toolbar:false">', '&nbsp;', '<p><br/></p>'], ["\r\n```", "\r\n```\r\n", "\r\n", ' ', "\r\n"], $content);
-        //     $content = str_replace('```js', '```javascript', $content);
-        //     $content = str_replace("\r\n", '|rn|', $content);
-        //     $content = str_replace('<p>', '', $content);
-        //     $content = str_replace('</p>', '|rn|', $content);
-        //     $markdown = $htmlConverter->convert($content);
-        //     $markdown = htmlspecialchars($markdown);
-        //     $markdown = str_replace(['|rn|', '\*', '\_', "\n "], ["\r\n", '*', '_', "\n    "], $markdown);
-        //     $markdown = str_replace("\r\n\r\n", "\r\n", $markdown);
-        //     $markdown = str_replace('http://www.baijunyao.com/uploads/article', 'uploads/article', $markdown);
-        //     $article = [
-        //         'id' => $v->aid,
-        //         'category_id' => $v->cid,
-        //         'title' => $v->title,
-        //         'author' => $v->author,
-        //         'content' => $markdown,
-        //         'description' => $v->description,
-        //         'keywords' => $v->keywords,
-        //         'cover' => $articleModel->getCover($markdown),
-        //         'is_top' => $v->is_top,
-        //         'click' => $v->click,
-        //     ];
-        //     $articleModel->create($article);
-        //     $editArticleMap = [
-        //         'id' => $v->aid
-        //     ];
-        //
-        //     $editArticleData = [
-        //         'created_at' => date('Y-m-d H:i:s', $v->addtime)
-        //     ];
-        //     $articleModel->editData($editArticleMap, $editArticleData);
-        // }
+        $htmlConverter = new HtmlConverter();
+        $parser = new Parser();
+        $data = DB::connection('old')->table('article')->get()->toArray();
+        $articleModel->truncate();
+        foreach ($data as $k => $v) {
+            $content = htmlspecialchars_decode($v->content);
+            $content = str_replace('<br style="box-sizing: inherit; margin-bottom: 0px;"/>', '', $content);
+            $content = str_replace('/Upload/image/ueditor', '/uploads/article', $content);
+            $content = str_replace(['<pre class="brush:', '</pre>', ';toolbar:false">', '<p><br/></p>'], ["\r\n```", "\r\n```\r\n", "\r\n", "\r\n"], $content);
+            $content = str_replace('```js', '```javascript', $content);
+            $content = str_replace("\r\n", '|rn|', $content);
+            $content = str_replace('<p>', '', $content);
+            $content = str_replace('</p>', '|rn|', $content);
+            $markdown = $htmlConverter->convert($content);
+            $markdown = htmlspecialchars($markdown);
+            $markdown = str_replace(['|rn|', '\*', '\_', "\n "], ["\r\n", '*', '_', "\n    "], $markdown);
+            $markdown = str_replace("\r\n\r\n", "\r\n", $markdown);
+            $markdown = str_replace('http://www.baijunyao.com/uploads/article', 'uploads/article', $markdown);
+
+            // markdown 转html
+            $html = $parser->makeHtml($markdown);
+            $html = str_replace('<code class="', '<code class="lang-', $html);
+            // $html = htmlspecialchars_decode($html);
+            $article = [
+                'id' => $v->aid,
+                'category_id' => $v->cid,
+                'title' => $v->title,
+                'author' => $v->author,
+                'markdown' => $markdown,
+                'html' => $html,
+                'description' => $v->description,
+                'keywords' => $v->keywords,
+                'cover' => $articleModel->getCover($markdown),
+                'is_top' => $v->is_top,
+                'click' => $v->click,
+            ];
+            $articleModel->create($article);
+            $editArticleMap = [
+                'id' => $v->aid
+            ];
+
+            $editArticleData = [
+                'created_at' => date('Y-m-d H:i:s', $v->addtime)
+            ];
+            $articleModel->editData($editArticleMap, $editArticleData);
+        }
 
         // 从旧系统中迁移文章标签中间表
         // $data = DB::connection('old')->table('article_tag')->get()->toArray();
@@ -178,22 +188,22 @@ class IndexController extends Controller
         // }
 
         // 迁移随言碎语表
-        $data = DB::connection('old')->table('chat')->get()->toArray();
-        $chatModel->truncate();
-        foreach ($data as $v) {
-            $chatData = [
-                'id' => $v->chid,
-                'content' => $v->content,
-            ];
-            $chatModel->addData($chatData);
-            $editChatMap = [
-                'id' => $v->chid,
-            ];
-            $editChatData = [
-                'created_at' => date('Y-m-d H:i:s', $v->date)
-            ];
-            $chatModel->editData($editChatMap, $editChatData);
-        }
+        // $data = DB::connection('old')->table('chat')->get()->toArray();
+        // $chatModel->truncate();
+        // foreach ($data as $v) {
+        //     $chatData = [
+        //         'id' => $v->chid,
+        //         'content' => $v->content,
+        //     ];
+        //     $chatModel->addData($chatData);
+        //     $editChatMap = [
+        //         'id' => $v->chid,
+        //     ];
+        //     $editChatData = [
+        //         'created_at' => date('Y-m-d H:i:s', $v->date)
+        //     ];
+        //     $chatModel->editData($editChatMap, $editChatData);
+        // }
 
 
     }

+ 1 - 1
app/Http/Controllers/Home/IndexController.php

@@ -43,7 +43,7 @@ class IndexController extends Controller
     {
         // 获取文章数据
         $data = $article->getDataById($id);
-
+        echo $data->markdown;die;
         // 获取上一篇
         $prev = $article
             ->select('id', 'title')

+ 0 - 11
app/Models/Base.php

@@ -14,17 +14,6 @@ class Base extends Model
     protected $guarded = [];
 
     /**
-     * 不显示的字段
-     *
-     * @var array
-     */
-    protected $hidden = [
-        'created_at',
-        'updated_at',
-        'deleted_at',
-    ];
-
-    /**
      * 添加数据
      *
      * @param  array $data 需要添加的数据

+ 1 - 0
composer.json

@@ -9,6 +9,7 @@
         "barryvdh/laravel-ide-helper": "^2.3",
         "erusev/parsedown": "^1.6",
         "intervention/image": "^2.3",
+        "joyqi/hyper-down": "dev-master",
         "laravel/framework": "5.3.*",
         "laravel/socialite": "~2.0",
         "league/html-to-markdown": "^4.4",

+ 41 - 3
composer.lock

@@ -4,8 +4,8 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "f81bd6260fda61587c56b6b0997259ff",
-    "content-hash": "60d67442588b253eec3f7d8dbf1d492d",
+    "hash": "1739422a30e51cee1c633b2d4936fae3",
+    "content-hash": "8a86e7c9f71effdd7d5c26f92c39df51",
     "packages": [
         {
             "name": "barryvdh/laravel-ide-helper",
@@ -741,6 +741,42 @@
             "time": "2016-12-07 09:37:55"
         },
         {
+            "name": "joyqi/hyper-down",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/SegmentFault/HyperDown.git",
+                "reference": "969c70631546b3d155e07bc4a4135274b287bc2e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://files.phpcomposer.com/files/SegmentFault/HyperDown/969c70631546b3d155e07bc4a4135274b287bc2e.zip",
+                "reference": "969c70631546b3d155e07bc4a4135274b287bc2e",
+                "shasum": ""
+            },
+            "require": {
+                "php": ">=5.4.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "HyperDown\\": "./"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "BSD"
+            ],
+            "authors": [
+                {
+                    "name": "joyqi",
+                    "email": "joyqi@segmentfault.com"
+                }
+            ],
+            "description": "A light weight markdown parser library",
+            "time": "2017-03-04 06:46:44"
+        },
+        {
             "name": "laravel/framework",
             "version": "v5.3.30",
             "source": {
@@ -4415,7 +4451,9 @@
     ],
     "aliases": [],
     "minimum-stability": "stable",
-    "stability-flags": [],
+    "stability-flags": {
+        "joyqi/hyper-down": 20
+    },
     "prefer-stable": false,
     "prefer-lowest": false,
     "platform": {

+ 1 - 19
resources/views/home/index/article.blade.php

@@ -33,7 +33,7 @@
                 </ul>
             </div>
             <div class="col-xs-12 col-md-12 col-lg-12 b-content-word">
-                <div class="js-content">{!! $data->content !!}</div>
+                <div class="js-content">{!! $data->html !!}</div>
                 <eq name="article['current']['is_original']" value="1">
                     <p class="b-h-20"></p>
                     <p class="b-copyright">
@@ -143,25 +143,7 @@
 
 @section('js')
     <script src="{{ asset('statics/prism/prism.min.js') }}"></script>
-    <script src="{{ asset('statics/editormd/lib/marked.min.js') }}"></script>
     <script>
-        // 获取文章内容
-        var articleMarkdown = $('.js-content').text();
-        marked.setOptions({
-            sanitize: true,
-            gfm: true,
-            gfmBreaks: true
-        })
-        // markdown 转 html
-        var articleHtml = marked(articleMarkdown);
-        $('.js-content').html(articleHtml);
-
-        // 保留文章的换行
-        $.each($('.js-content p'), function (index, val) {
-            var html = $(val).html();
-            $(val).html(html.replace(/\n/g,"<br>"));
-        })
-
         // 添加行数
         $('pre').addClass('line-numbers');
         // 新页面跳转