From ac85b278602b13c01b6eb26d07ec7c4d7cd962cc Mon Sep 17 00:00:00 2001 From: cornernote Date: Mon, 10 Aug 2015 12:08:58 +0930 Subject: [PATCH] allow text readme, fixes #3 --- .../m150810_000001_update_package.php | 19 ++++++++++++ src/models/Package.php | 30 +++++++++++++++---- src/views/mod/view.php | 4 +-- 3 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 src/migrations/m150810_000001_update_package.php diff --git a/src/migrations/m150810_000001_update_package.php b/src/migrations/m150810_000001_update_package.php new file mode 100644 index 0000000..e6a80ab --- /dev/null +++ b/src/migrations/m150810_000001_update_package.php @@ -0,0 +1,19 @@ +addColumn(self::TABLE, 'readme_format', Schema::TYPE_STRING . '(8)'); + } + + public function down() + { + $this->dropColumn(self::TABLE, 'readme_format'); + } +} \ No newline at end of file diff --git a/src/models/Package.php b/src/models/Package.php index a267503..86aa0d6 100644 --- a/src/models/Package.php +++ b/src/models/Package.php @@ -19,6 +19,7 @@ use yii\helpers\Html; * @property integer $hits * @property string $bower * @property string $readme + * @property string $readme_format * @property string $description * @property string $homepage * @property string $keywords @@ -134,12 +135,21 @@ class Package extends ActiveRecord public function harvestModInfo() { // get README.md - $this->readme = Git::getFile($this->url, 'README.md'); - if (!$this->readme) { - $this->readme = Git::getFile($this->url, 'readme.md'); + foreach (['README.md', 'readme.md', 'Readme.md'] as $file) { + $this->readme = Git::getFile($this->url, $file); + if ($this->readme) { + $this->readme_format = 'markdown'; + break; + } } if (!$this->readme) { - $this->readme = Git::getFile($this->url, 'Readme.md'); + foreach (['README.txt', 'readme.txt', 'Readme.txt', 'README', 'readme'] as $file) { + $this->readme = Git::getFile($this->url, $file); + if ($this->readme) { + $this->readme_format = 'text'; + break; + } + } } // get bower.json @@ -260,7 +270,15 @@ class Package extends ActiveRecord */ public function getReadmeHtml() { - $parser = new GithubMarkdown(); - return $parser->parse($this->readme); + if ($this->readme_format && $this->readme) { + if ($this->readme_format == 'markdown') { + $parser = new GithubMarkdown(); + return $parser->parse($this->readme); + } + if ($this->readme_format == 'text') { + return '
' . $this->readme . '
'; + } + } + return ''; } } diff --git a/src/views/mod/view.php b/src/views/mod/view.php index ec65d7d..ac9398a 100644 --- a/src/views/mod/view.php +++ b/src/views/mod/view.php @@ -74,9 +74,7 @@ $this->params['breadcrumbs'][] = $this->title; ]) ?> readme) { - echo $model->getReadmeHtml(); - } + echo $model->getReadmeHtml(); ?> bower) { ?>