public function actionBlog() { $id = Yii::$app->request->get('id'); $data = TblBlog::find()->joinwith('category')->where([TblBlog::tableName() . '.id' => $id])->asArray()->one(); $data['text'] = Markdown::process($data['text'], 'gfm'); return $this->render('article', ['data' => $data]); }
public function actionRss() { /** @var News[] $news */ $news = News::find()->where(['status' => News::STATUS_PUBLIC])->orderBy('id DESC')->limit(50)->all(); $feed = new Feed(); $feed->title = 'YiiFeed'; $feed->link = Url::to(''); $feed->selfLink = Url::to(['news/rss'], true); $feed->description = 'Yii news'; $feed->language = 'en'; $feed->setWebMaster('*****@*****.**', 'Alexander Makarov'); $feed->setManagingEditor('*****@*****.**', 'Alexander Makarov'); foreach ($news as $post) { $item = new Item(); $item->title = $post->title; $item->link = Url::to(['news/view', 'id' => $post->id], true); $item->guid = Url::to(['news/view', 'id' => $post->id], true); $item->description = HtmlPurifier::process(Markdown::process($post->text)); if (!empty($post->link)) { $item->description .= Html::a(Html::encode($post->link), $post->link); } $item->pubDate = $post->created_at; $item->setAuthor('*****@*****.**', 'YiiFeed'); $feed->addItem($item); } $feed->render(); }
/** * Process $text using settings without explode \n to <p> * $ntext = true change \n to <br> * @param $text * @param bool $ntext * @return string */ public function directTypo($text) { $t = $this->Setup(); $text = Markdown::processParagraph($text, $this->markdownType); $t->set_text($text); return $t->apply(); }
public function actionTest() { echo \yii\helpers\Markdown::process('**strong text***emphasized text*'); exit; // echo Yii::getAlias('@yii/storage'); return $this->render('test'); }
public static function prepareForSave($model) { list($model->PostText, $imgs, $urls) = self::parseText($model->PostText); $model->PostTextParsed = Markdown::process($model->PostText); $model->PostHeader = self::createHeader(strip_tags($model->PostText)); return [$model, $imgs, $urls]; }
protected function parseData($path) { preg_match('~guide-?(.*)/(.+)\\.md$~', $path, $matches); $language = $matches[1] ? $matches[1] : Yii::$app->sourceLanguage; $language = Locale::getPrimaryLanguage($language); $slug = strtolower($matches[2]); $doc = file_get_contents($path); $doc = Markdown::process($doc, 'gfm'); $html = new HTMLDocument(); @$html->loadHTML($doc); $html->addPrefix("/{lang}/", 'a', 'href'); $imgPath = dirname($path) . '/images'; $imgPath = $this->publishImages($imgPath); if ($imgPath) { $html->addPrefix(function ($src) use($imgPath) { return $imgPath . '/' . basename($src); }, 'img', 'src'); } foreach (['h1', 'h2', 'h3', 'h4'] as $tag) { /** @var \DOMElement $item */ foreach ($html->getElementsByTagName($tag) as $item) { /** @var \DOMElement $span */ if ($span = $item->getElementsByTagName('span')[0]) { $item->setAttribute('id', $span->getAttribute('id')); } } } /** @var DOMElement $title */ $title = $html->getElementsByTagName('h1')[0]; return ['language' => $language, 'slug' => $slug, 'title' => $title->textContent, 'description' => $html->saveHTML()]; }
/** * @inheritdoc */ public function behaviors() { return [TimestampBehavior::className(), ['class' => AttributeBehavior::className(), 'attributes' => [ActiveRecord::EVENT_BEFORE_INSERT => 'alias'], 'value' => function ($event) { return Inflector::slug($event->sender->title); }], ['class' => AttributeBehavior::className(), 'attributes' => [ActiveRecord::EVENT_AFTER_FIND => 'body'], 'value' => function ($event) { return HtmlPurifier::process(Markdown::process($event->sender->content, 'gfm')); }]]; }
public function beforeSave($insert) { parent::beforeSave($insert); $this->historyTemp = new History(); $this->historyTemp->attributes = ['title' => $this->title, 'content' => $this->content, 'user_id' => 1]; $this->content = Markdown::process($this->content, 'gfm'); if (!$this->isNewRecord) { $this->historyTemp->renderDiff($this->lastEdit); } return true; }
public function up() { $works = Work::find()->all(); foreach ($works as $work) { if ($work->description && strpos('<p>', $work->description) === false) { echo "Convert {$work->id} 's description...\n"; $work->description = Markdown::process($work->description, 'gfm'); $work->save(false); } } echo "DOne\n"; }
/** * Converts markdown into HTML * * @param string $content * @param TypeDoc $context * @param boolean $paragraph * @return string */ public static function process($content, $context = null, $paragraph = false) { if (!isset(Markdown::$flavors['api-latex'])) { Markdown::$flavors['api-latex'] = new static(); } if (is_string($context)) { $context = static::$renderer->apiContext->getType($context); } Markdown::$flavors['api-latex']->renderingContext = $context; if ($paragraph) { return Markdown::processParagraph($content, 'api-latex'); } else { return Markdown::process($content, 'api-latex'); } }
public function run() { if ($this->hasModel()) { $tagOptions = ArrayHelper::merge($this->options, ['id' => $this->targetId, 'class' => $this->clientOptions['class'] ?: '', 'data' => ['target' => $this->options['id']]]); if (isset($this->clientOptions['inline'])) { $value = Markdown::processParagraph(Html::getAttributeValue($this->model, $this->attribute)); echo Html::tag($this->clientOptions['tag'] ?: 'p', $value, $tagOptions); } else { $value = MarkdownExtra::defaultTransform(Html::getAttributeValue($this->model, $this->attribute)); echo Html::tag('section', Html::tag($this->clientOptions['tag'] ?: 'p', $value), $tagOptions); } echo Html::activeHiddenInput($this->model, $this->attribute); } $this->registerPlugin(); }
/** * @inheritdoc * @throws \InvalidArgumentException when params are not empty */ public function render($view, $file, $params) { if (!empty($params)) { throw new \InvalidArgumentException('MdViewRenderer does not support params.'); } if ($this->cache) { $key = self::CACHE_PREFIX . $file; $result = $this->cache->get($key); if ($result === false) { $result = Markdown::process(file_get_contents($file), $this->flavor); $this->cache->set($key, $result, 0, new FileDependency(['fileName' => $file])); } } else { $result = Markdown::process(file_get_contents($file), $this->flavor); } return $result; }
/** * Helper function for the docs action * @return string */ private function createHtml($file, $useRootPath = false) { \Yii::trace("Creating HTML for '{$file}'", __METHOD__); try { $filePath = \Yii::getAlias($this->module->markdownUrl) . '/' . $file; $markdown = file_get_contents($filePath); \Yii::trace("Loaded markdown for '{$filePath}'", __METHOD__); } catch (\Exception $e) { \Yii::$app->session->addFlash("error", "File '{$file}' not found,"); return false; } $_slash = $useRootPath ? '' : '/'; $html = Markdown::process($markdown, 'gfm'); $html = preg_replace('|<a href="(?!http)' . $_slash . '(.+\\.md)">|U', '<a href="__INTERNAL_URL__$1">', $html); $dummyUrl = Url::to(['/' . $this->module->id . '/default/index', 'file' => '__PLACEHOLDER__']); $html = strtr($html, ['__INTERNAL_URL__' => $dummyUrl]); $html = strtr($html, ['__PLACEHOLDER__' => '']); return $html; }
<?php use yii\helpers\Markdown; $NodeLink = \common\models\NodeLink::NodeLink($node); if (!empty($NodeLink)) { ?> <section> <div class="block-content markdown-content"> <?php foreach ($NodeLink as $link) { ?> <?php echo Markdown::process($link['content'], 'gfm'); ?> <?php } ?> </div> </section> <?php }
public static function markdown2html($str) { return Markdown::process($str); }
/* @var $this yii\web\View */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = $model->title; $this->params['breadcrumbs'][] = $this->title; ?> <div class="panel panel-info"> <div class="panel-heading"> <h3><?php echo Html::encode($model->title); ?> </h3> </div> <div class="panel-body"> <?php echo \yii\helpers\Markdown::process($model->content); ?> </div> <div class="panel-footer"> <h4><b>标签: </b> <?php $tags = explode(',', $model->tags); foreach ($tags as $tag) { echo $tag, ' '; } ?> </h4> </div> </div> <br/>
echo $form->field($model, 'content')->widget('trntv\\aceeditor\\AceEditor', ['id' => 'markdown', 'mode' => 'markdown', 'containerOptions' => ['style' => 'width: 100%; min-height: 350px'], 'theme' => 'github']); ?> </div> <?php echo SelectizeTextInput::widget(['name' => 'Topic[tags]', 'value' => $model->tags, 'loadUrl' => ['/post-tag/index'], 'clientOptions' => ['placeholder' => '标签(可选)', 'allowEmptyOption' => false, 'delimiter' => ',', 'valueField' => 'name', 'labelField' => 'name', 'searchField' => 'name', 'maxItems' => 5, 'plugins' => ['remove_button'], 'persist' => false, 'create' => true]]); ?> <div class="form-group"> <?php echo Html::submitButton($model->isNewRecord ? '创建话题' : '修改话题', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']); ?> <div class="pull-right"> <?php echo Html::a('排版说明', ['/site/markdown'], ['target' => '_blank']); ?> </div> </div> <div id="md-preview" class="pt10"> <?php echo HtmlPurifier::process(\yii\helpers\Markdown::process($model->content, 'gfm')); ?> </div> <?php ActiveForm::end(); ?> </div>
public function render($view, $file, $params) { return Markdown::process(file_get_contents($file)); }
<a href="index.php?r=post/searchby&text="> <?php echo $t_el['name']; ?> </a>, <?php } ?> </div> <div class="post-body2"> <?php echo \yii\helpers\HtmlPurifier::process(\yii\helpers\Markdown::process(substr($post_el['text'], 0, 700) . ' ...')); ?> </div> <span style="float: right;padding-right: 1cm;"> <?php echo Html::a('Read more', ['post/view', 'id' => $post_el['post_id']], ['class' => 'btnread']); ?> </span> <hr class="style-two">
$baseDir = ''; $this->title = substr($page, 0, strrpos($page, '.')); } else { $baseDir = substr($page, 0, $pos) . '/'; $this->title = substr($page, $pos + 1, strrpos($page, '.') - $pos - 1); } if ($page == 'README.md') { $this->params['breadcrumbs'][] = 'Readme'; $menus = $this->context->module->getMenus(); $links = []; foreach ($menus as $menu) { $url = Url::to($menu['url'], true); $links[] = "[**{$menu['label']}**]({$url})"; } $body = str_replace(':smile:.', ".\n\n" . implode(' ', $links) . "\n", $this->render("@thinkwill/admin/README.md")); } else { $body = $this->render("@thinkwill/admin/{$page}"); } $body = preg_replace_callback('/\\]\\((.*?)\\)/', function ($matches) use($baseDir) { $link = $matches[1]; if (strpos($link, '://') === false) { if ($link[0] == '/') { $link = Url::current(['page' => ltrim($link, '/')], true); } else { $link = Url::current(['page' => $baseDir . $link], true); } } return "]({$link})"; }, $body); echo Markdown::process($body, 'gfm');
/** * @inheritdoc */ public function behaviors() { return [TimestampBehavior::className(), ['class' => AttributeBehavior::className(), 'attributes' => [ActiveRecord::EVENT_AFTER_FIND => 'body'], 'value' => function ($event) { return HtmlPurifier::process(Markdown::process($event->sender->content, 'gfm-comment')); }], ['class' => BlameableBehavior::className(), 'attributes' => [ActiveRecord::EVENT_BEFORE_INSERT => 'user_id']]]; }
']=false"> <div class="help-overlay" ng-show="isHover['<?php echo $name; ?> ']"> <h3 class="help-overlay__title"><?php echo $name; ?> </h3> <code class="help-overlay__example-code"><?php echo $object->example(); ?> </code> <div class="help-overlay__description"><?php echo Markdown::process($object->readme()); ?> </div> </div> <div><?php echo $name; ?> <a class="secondary-content"><i class="material-icons">content_paste</i></a></div> </li> <?php } ?> </ul> </div> </li>
echo $model->author->name . ' 发表于 ' . date('Y年m月d日', $model->created_at); ?> </p> </div> <div class="content"> <p> <?php if (mb_strlen($model->content) > 300) { $content = mb_substr($model->content, 0, 300, 'UTF-8'); $content .= '...'; } else { $content = $model->content; } ?> <?php echo \yii\helpers\Markdown::process($content); ?> </p> </div> <nav class="navbar navbar-default" role="navigation" style="padding:15px 5px"> <span><b>标签: </b> <?php $tags = explode(',', $model->tags); foreach ($tags as $tag) { echo $tag, ' '; } ?> </span> <span class="pull-right"><?php echo Html::a("Comments ({$model->commentCount})", $model->url . '#comments');
public function getMarkdown() { return Markdown::process($this->content, 'gfm'); }
· <?php echo $model->view_count; ?> 次阅读 </div> </div> <div class="avatar media-right"> <?php echo Html::a(Html::img($model->user->userAvatar, ['class' => 'media-object avatar-48']), ['/user/default/show', 'username' => $model->user['username']]); ?> </div> </div> <div class="panel-body article"> <?php echo HtmlPurifier::process(Markdown::process($model->content, 'gfm')); ?> <?php if ($donate) { ?> <hr/> <div style="text-align: center; color: #666;"> <?php echo Html::button('打赏作者', ['class' => 'btn btn-danger', 'id' => 'donate-btn']); ?> <p></p> <p><?php echo $donate->description; ?> </p>
} ?> <?php if ($node) { echo \frontend\widgets\Panel::widget(['title' => \Yii::t('app', 'Same Node Topics'), 'items' => $sameTopics]); } ?> <div class="panel panel-default corner-radius"> <div class="panel-heading text-center"> <h3 class="panel-title"><?php echo \Yii::t('app', 'Tips and Tricks'); ?> </h3> </div> <div class="panel-body"> <?php echo \yii\helpers\Markdown::process($tips, 'gfm'); ?> </div> </div> <?php \frontend\widgets\Panel::widget(['title' => \Yii::t('app', 'Site Status'), 'items' => []]); ?> </div> <div class="clearfix"></div>
#### 基于Yii2 - [GetYii](https://github.com/iiYii/getyii) - [huajuan](https://github.com/callmez/huajuan) - [dcms2](https://github.com/djfly/dcms2) - [yii2-adminlte](https://github.com/funson86/yii2-adminlte) - [yii2-simple](https://github.com/azraf/yii2-simple) - [dotplant2](https://github.com/DevGroup-ru/dotplant2) ### 贡献者 - [forecho](/member/forecho) ### 最后 欢迎大家跟我联系提供更多资料。 '; ?> <div class="container p0"> <div class="panel panel-default"> <div class="panel-heading"> Wiki 列表 </div> <div class="panel-body"> <?php echo Markdown::process($content, 'gfm'); ?> </div> </div> </div>
/* @var $question app\modules\poll\models\Question */ /* @var $answers app\modules\poll\models\Answer[] */ /* @var $form yii\widgets\ActiveForm */ ?> <div class="vote-form"> <?php $form = ActiveForm::begin(); ?> <h3><?php echo $question->title; ?> </h3> <p><?php echo $question->isAuto() ? '<pre>' . $question->description . '</pre>' : \yii\helpers\Markdown::process($question->description); ?> </p> <table class="table table-stripped"> <tbody> <?php foreach ($answers as $answer) { ?> <tr> <td><?php echo $answer->title; ?> </td> <td><?php echo $answer->voteCount; ?>
$this->params['breadcrumbs'][] = $model->title; ?> <div class="row"> <div class="col-md-9"> <section> <?php echo yii\widgets\Breadcrumbs::widget(['links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : []]); ?> <article class="<?php echo $model->route; ?> "> <div class="row"> <div class="col-lg-9 markdown-content"> <?php echo Markdown::process($model->content, 'gfm'); ?> </div> </div> </article> </section> </div> <div class="col-md-3 sidebar"> <?php echo $this->render('@frontend/views/weight/user'); ?> <?php echo $this->render('@frontend/views/weight/hot-topic'); ?> <?php
// // The onchange event handler that typesets the // math entered by the user // window.UpdateMath = function (TeX) { QUEUE.Push(["Text",math,"\\displaystyle{"+TeX+"}"]); } })(); </script> <h1><?php echo Html::encode($this->title); ?> </h1> <p> <?php echo Html::a('Изменить', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']); ?> <?php echo Html::a('Удалить', ['delete', 'id' => $model->id], ['class' => 'btn btn-danger', 'data' => ['confirm' => 'Are you sure you want to delete this item?', 'method' => 'post']]); ?> </p> <?php echo DetailView::widget(['model' => $model, 'attributes' => ['name', ['attribute' => 'type_id', 'value' => $model->taskType->name], ['attribute' => 'text', 'value' => Markdown::process($model->text), 'format' => 'html']]]); ?> </div> <?php Pjax::end();