예제 #1
2
 public function readme()
 {
     $result = $this->_shell->getBlob($this, $this->_currentBranch, 'README.md');
     $parsedown = new \Parsedown();
     $result = $parsedown->text($result);
     return str_replace('<pre>', '<pre class="prettyprint linenums">', $result);
 }
예제 #2
0
 public function render($echo = false)
 {
     // Load template directories.
     $loader = new \Twig_Loader_Filesystem();
     $loader->addPath('templates');
     // Set up Twig.
     $twig = new \Twig_Environment($loader, array('debug' => true, 'strct_variables' => true));
     $twig->addExtension(new \Twig_Extension_Debug());
     // Mardown support.
     $twig->addFilter(new \Twig_SimpleFilter('markdown', function ($text) {
         $parsedown = new \Parsedown();
         return $parsedown->text($text);
     }));
     // DB queries.
     $twig->addFunction(new \Twig_SimpleFunction('db_queries', function () {
         return Db::getQueries();
     }));
     // Render.
     $string = $twig->render($this->template, $this->data);
     if ($echo) {
         echo $string;
     } else {
         return $string;
     }
 }
예제 #3
0
 function it_can_parse_html_from_file(\Parsedown $parser, Filesystem $filesystem)
 {
     $this->setPath('path/to/file.md');
     $filesystem->get('path/to/file.md')->shouldBeCalled()->willReturn('Some Markdown');
     $parser->text('Some Markdown')->shouldBeCalled()->willReturn('Parsed Markdown');
     $this->getHtml()->shouldBe('Parsed Markdown');
 }
예제 #4
0
 public function run()
 {
     include getcwd() . '/vendor/autoload.php';
     $navStructure = (include getcwd() . '/docs/navigation.php');
     echo "Loading markdown...\n";
     $markdown = $this->findMarkdown($navStructure);
     echo "Converting markdown to html...\n";
     $Parsedown = new \Parsedown();
     $html = $Parsedown->text($markdown);
     $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
     $pdf->SetCreator(PDF_CREATOR);
     #$pdf->SetAuthor('Nicola Asuni');
     $pdf->SetTitle('My Documentation');
     #$pdf->SetSubject('TCPDF Tutorial');
     #$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
     $pdf->setPrintHeader(false);
     $pdf->setPrintFooter(false);
     $pdf->SetFont('helvetica', '', 20);
     $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
     $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
     $pdf->AddPage();
     $pdf->writeHTML($html, true, 0, true, 0);
     $pdf->lastPage();
     echo "Writing PDF...\n";
     $pdf->Output($this->config['output'], 'F');
     echo "Complete.\n";
 }
예제 #5
0
 public function postComment($id)
 {
     $input = Input::all();
     Log::info($input);
     $validator = Comment::validate($input);
     if ($validator->fails()) {
         FlashHelper::message("Null title", FlashHelper::DANGER);
         return;
     }
     $post = Post::findOrFail($id);
     if (!$post->can_comment || !PrivacyHelper::checkPermission(Auth::user(), $post)) {
         throw new Exception("Don't have permision");
     }
     $comment = new Comment();
     $Parsedown = new Parsedown();
     $comment->post_id = $id;
     $comment->parrent_id = $input['parrent_id'];
     $comment->markdown = $input['markdown'];
     Log::info($comment);
     $comment->HTML = $Parsedown->text($comment->markdown);
     $comment->save();
     $comment->comments = array();
     $data['html'] = View::make('posts._comment')->with('data', $comment)->with('level', count($comment->parents()))->with('can_comment', true)->render();
     $data['status'] = true;
     $data['parent_id'] = $comment->parrent_id;
     return Response::json($data);
 }
예제 #6
0
파일: Helper.php 프로젝트: stijni/snipe-it
 public static function parseEscapedMarkedown($str)
 {
     $Parsedown = new \Parsedown();
     if ($str) {
         return $Parsedown->text(e($str));
     }
 }
예제 #7
0
 public function getConfiguration()
 {
     $token = Seat::get('slack_token');
     $parser = new \Parsedown();
     $changelog = $parser->parse($this->getChangelog());
     return view('slackbot::configuration', compact('token', 'changelog'));
 }
예제 #8
0
function build($directory)
{
    $menu = "";
    $pages = "";
    foreach (glob("{$directory}/*", GLOB_MARK) as $f) {
        $find = array(".html", ".md", ".php", " ");
        $replace = array("", "", "", "-");
        $spaces = array("_", "-");
        $nice_name = str_replace($find, $replace, basename($f));
        $cap_name = ucwords(strtolower(str_replace($spaces, " ", $nice_name)));
        if (substr($f, -1) === '/') {
            $content = build($f);
            $pages .= $content[1];
            $menu .= "<li>\n\t\t\t\t\t<span data-menu='submenu'><i class='fa fa-plus-circle'></i> <span>{$cap_name}</span></span>\n\t\t\t\t\t<ul>";
            $menu .= $content[0];
            $menu .= "</ul></li>";
        } else {
            if ($cap_name != "Main") {
                $pages .= "<section class='doc' data-doc='{$nice_name}'>";
                $menu .= "<li data-show='{$nice_name}'> {$cap_name}</li>";
                if (end(explode('.', basename($f))) == "md") {
                    $Parsedown = new Parsedown();
                    $pages .= $Parsedown->text(file_get_contents($f));
                } else {
                    $pages .= file_get_contents($f);
                }
                $pages .= "</section>";
            }
        }
    }
    return [$menu, $pages];
}
예제 #9
0
 /**
  * Convert markdown to html on saving
  *
  * @param array $incommingFieldArray (reference) The field array of a
  *     record
  * @param string $table The table currently processing data for
  * @param string $id The record uid currently processing data for,
  *     [integer] or [string] (like 'NEW...')
  * @param \TYPO3\CMS\Core\DataHandling\DataHandler $parentObject
  *
  * @return void
  */
 public function processDatamap_preProcessFieldArray(&$incomingFieldArray, $table, $id, $parentObject)
 {
     if ($incomingFieldArray['CType'] == 'parsedown_markdown') {
         $parseDown = new \Parsedown();
         $incomingFieldArray['bodytext'] = $parseDown->text((string) $incomingFieldArray['tx_parsedown_content']);
     }
 }
예제 #10
0
파일: AriiDoc.php 프로젝트: AriiPortal/Arii
 public function Parsedown($doc)
 {
     $Parsedown = new \Parsedown();
     $parsedown = $Parsedown->text($doc);
     $parsedown = str_replace('<table>', '<table class="table table-striped table-bordered table-hover">', $parsedown);
     return $parsedown;
 }
예제 #11
0
 /**
  * @dataProvider data
  * @param $section
  * @param $markdown
  * @param $expectedHtml
  */
 function test_($section, $markdown, $expectedHtml)
 {
     $parsedown = new Parsedown();
     $actualHtml = $parsedown->text($markdown);
     $actualHtml = $this->normalizeMarkup($actualHtml);
     $this->assertEquals($expectedHtml, $actualHtml);
 }
예제 #12
0
파일: myFunc.php 프로젝트: sky-L/LBlog-Slim
/**
 * 获取全部文章资源
 * @param  integer $page
 * @param  integer $perpage
 * @return
 */
function get_posts($page = 1, $perpage = 0)
{
    if ($perpage == 0) {
        $perpage = 5;
    }
    $posts = get_post_names();
    // 当前页面posts
    $posts = array_slice($posts, ($page - 1) * $perpage, $perpage);
    $tmp = [];
    $Parsedown = new Parsedown();
    foreach ($posts as $v) {
        $post = new stdClass();
        $arr = explode('_', $v);
        // 从文件名获取时间戳
        $post->date = strtotime(str_replace('posts/', '', $arr[0]));
        // 获取url
        $post->url = './' . date('Y/m', $post->date) . '/' . str_replace('.md', '', $arr[1]);
        // 得到post内容
        $content = $Parsedown->text(file_get_contents($v));
        $arr = explode('</h1>', $content);
        $post->title = str_replace('<h1>', '', $arr[0]);
        $post->body = $arr[1];
        $tmp[] = $post;
    }
    return $tmp;
}
 protected function invokeHandler()
 {
     $content = $this->file->getContent();
     $parsedown = new Parsedown();
     $this->smarty->assign('content', $parsedown->text($content));
     $this->smarty->display('handler/markdown.tpl');
 }
예제 #14
0
 function merge_action($mergeId)
 {
     $this->setBranch();
     $api = new \firegit\app\mod\git\Merge();
     $merge = $api->getMerge($mergeId);
     if (!$merge) {
         throw new \Exception('firegit.u_notfound');
     }
     $orig = $merge['orig_branch'];
     $dest = $merge['dest_branch'];
     setcookie('branch', $orig, time() + 3600 * 24, '/');
     //blame使用cookie
     $commits = $this->repo->listCommits($orig, $dest);
     $branches = $this->repo->listBranches();
     $umod = new \firegit\app\mod\user\User();
     $tusers = $umod->getUsers();
     // 评论
     $modComment = new \firegit\app\mod\util\Comment();
     $comments = $modComment->getComments(1, $mergeId, $this->_sz);
     require_once VENDOR_ROOT . '/parsedown/Parsedown.php';
     $parsedown = new \Parsedown();
     foreach ($comments['list'] as $key => $value) {
         $comments['list'][$key]['content'] = $parsedown->text($value['content']);
     }
     $this->set(array('pageTitle' => '合并请求:' . $merge['title'], 'merge' => $merge, 'commits' => $this->packCommits($commits), 'navType' => 'merge', 'branches' => $branches, 'orig' => $orig, 'dest' => $dest, 'tusers' => $tusers, 'notShowNav' => true, 'comments' => $comments['list'], 'curUser' => $this->getData('user')))->setView('git/merge.phtml');
 }
예제 #15
0
 function renderDefault()
 {
     $projects = $this->projectManager->byUser($this->user->id);
     $awaiting = 0;
     $accepted = 0;
     $declined = 0;
     foreach ($projects as $p) {
         if ($p->accepted == Model\ProjectManager::STATUS_AWAITING) {
             $awaiting++;
         }
         if ($p->accepted == Model\ProjectManager::STATUS_ACCEPTED) {
             $accepted++;
         }
         if ($p->accepted == Model\ProjectManager::STATUS_DECLINED) {
             $declined++;
         }
     }
     $this->template->accepted = $accepted;
     $this->template->declined = $declined;
     $this->template->awaiting = $awaiting;
     $project = $this->projectManager->accepted($this->user->id);
     $this->template->project = $project;
     $this->template->projects = $projects;
     if ($accepted > 0) {
         $parsedown = new \Parsedown();
         $desc = htmlentities($project->description, ENT_QUOTES, 'UTF-8');
         $this->template->desc = $parsedown->parse($desc);
         $this->template->solutions = $this->projectManager->solutions($project->id);
         $this->template->comments = $this->database->table('comments')->where(array('comments_id' => null, 'projects_id' => $project->id))->order('bump DESC');
         $this->template->parsedown = $parsedown;
     }
 }
예제 #16
0
 public function handle()
 {
     $this->page = Page::find_by_title($this->request->page);
     # Action tree
     if ($this->request->action_is('save')) {
         # TODO: validate request before saving
         if (strlen($this->request->post('wmd-input')) > self::MAX_BODY_LENGTH) {
             $this->t->flash('Page content is too long. Please shorten.', 'warning');
             $this->t->data('page-body', $this->request->post('wmd-input'));
         } else {
             $this->page->set('body', $this->request->post('wmd-input'));
             $this->page->save();
             NeechyResponse::redirect($this->page->url());
         }
     } elseif ($this->request->action_is('preview')) {
         $markdown = new Parsedown();
         $preview_html = $markdown->text($this->request->post('wmd-input'));
         $this->t->data('preview', $preview_html);
         $this->t->data('page-body', $this->request->post('wmd-input'));
     } elseif ($this->request->action_is('edit')) {
         $this->t->data('page-body', $this->request->post('wmd-input'));
     } else {
         $this->t->data('page-body', $this->page->field('body'));
     }
     # Partial variables
     $last_edited = sprintf('Last edited by %s on %s', $this->page->editor_link(), $this->page->field('created_at'));
     $page_title = NeechyTemplater::titleize_camel_case($this->page->get_title());
     # Render partial
     $this->t->data('action', $this->request->action);
     $this->t->data('page-title', $page_title);
     $this->t->data('last-edited', $last_edited);
     $content = $this->render_view('editor');
     # Return response
     return $this->respond($content);
 }
예제 #17
0
 public function getNote()
 {
     $Parsedown = new Parsedown();
     if ($this->note) {
         return $Parsedown->text(e($this->note));
     }
 }
 public function formatRaw($string)
 {
     include_once SIMPLEWIKI_DIR . '/thirdparty/parsedown-0.9.0/Parsedown.php';
     $parsedown = new Parsedown();
     return $parsedown->parse($string);
     //		include_once SIMPLEWIKI_DIR . '/thirdparty/php-markdown-extra-1.2.4/markdown.php';
     return Markdown($string);
 }
예제 #19
0
 /**
  * convert 
  * 
  * @param string $text 
  * @return string
  */
 public static function convert($text)
 {
     static $parser;
     if (empty($parser)) {
         $parser = new Parsedown();
     }
     return $parser->text($text);
 }
예제 #20
0
 /**
  * Render a blog post
  *
  * @param  string $path
  * @return string $html
  * @access public
  */
 public function render($name)
 {
     if (!$name) {
         throw new Exception('Blog::render - Required a path for the blog file');
     }
     $parsedown = new \Parsedown();
     return $parsedown->text(file_get_contents(BLOG_PATH . '/' . $this->getFilename($name)));
 }
예제 #21
0
 public static function renderBody($post)
 {
     $Parsedown = new Parsedown();
     $dirty_html = $Parsedown->text($post);
     $purifier = new HTMLPurifier();
     $clean_html = $purifier->purify($dirty_html);
     return $clean_html;
 }
예제 #22
0
파일: Post.php 프로젝트: navarr/magehero
 public function getBodyAsHtml()
 {
     $parseDown = new Parsedown();
     $purifier = new HTMLPurifier(HTMLPurifier_Config::createDefault());
     $body = $parseDown->text($this->get('body'));
     $body = $purifier->purify($body);
     return $body;
 }
 public function renderBody()
 {
     $parse = new Parsedown();
     $config = HTMLPurifier_Config::createDefault();
     $purifier = new HTMLPurifier($config);
     $body = $parse->text($this->description);
     return $clean_html = $purifier->purify($body);
 }
예제 #24
0
 /**
  * @param string $text
  *
  * @return string
  */
 protected function parse_markdown($text)
 {
     static $markdown = null;
     if (is_null($markdown)) {
         $markdown = new \Parsedown();
     }
     return $markdown->text($text);
 }
예제 #25
0
function ShiftType_view($shifttype, $angeltype)
{
    $parsedown = new Parsedown();
    $title = $shifttype['name'];
    if ($angeltype) {
        $title .= ' <small>' . sprintf(_('for team %s'), $angeltype['name']) . '</small>';
    }
    return page_with_title($title, [msg(), buttons([button(page_link_to('shifttypes'), shifttypes_title(), 'back'), $angeltype ? button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], $angeltype['name']) : '', button(page_link_to('shifttypes') . '&action=edit&shifttype_id=' . $shifttype['id'], _('edit'), 'edit'), button(page_link_to('shifttypes') . '&action=delete&shifttype_id=' . $shifttype['id'], _('delete'), 'delete')]), $parsedown->parse($shifttype['description'])]);
}
예제 #26
0
function handlestr($str)
{
    //$str=str_replace(" ", "&nbsp;", $str);
    $str = str_replace("<", "&lt;", $str);
    $str = str_replace(">", "&gt;", $str);
    //$str=str_replace("\n", "<br>", $str);
    $Parsedown = new Parsedown();
    return $Parsedown->text($str);
}
예제 #27
0
function advancemarkdown_savelog($id)
{
    header("Content-Type:text/html;charset=utf-8");
    global $logData, $Log_Model;
    include EMLOG_ROOT . '/content/plugins/advancemarkdown/lib/parsedown.php';
    $Parsedown = new Parsedown();
    $logData['content'] = $Parsedown->text($logData['content']);
    $Log_Model->updateLog($logData, $id);
}
예제 #28
0
 public static function getDefaultEula()
 {
     $Parsedown = new Parsedown();
     if (Setting::getSettings()->default_eula_text) {
         return $Parsedown->text(e(Setting::getSettings()->default_eula_text));
     } else {
         return null;
     }
 }
예제 #29
0
 /**
  * Process this field based on its template and the received data.
  *
  * @param cbField $field
  * @param array $data
  * @return mixed
  */
 public function process(cbField $field, array $data = array())
 {
     $tpl = $field->get('template');
     //$this->modx->log(modX::LOG_LEVEL_ERROR,"process\n" . print_r($data,true));
     $Parsedown = new Parsedown();
     $data['value'] = $Parsedown->text($data['value']);
     return parent::process($field, $data);
     //return $Parsedown->text($this->contentBlocks->parse($tpl, $data));
 }
예제 #30
-1
 public static function renderComment($comment)
 {
     $Parsedown = new Parsedown();
     $dirty_html = $Parsedown->line($comment);
     $purifier = new HTMLPurifier();
     $clean_html = $purifier->purify($dirty_html);
     return $clean_html;
 }