/** * Converts HTML to Markdown */ function Markdownify($Html) { $Html = Gdn_Format::To($Html, 'xHtml'); $Snoopy = Gdn::Factory('Snoopy'); $Vars = array('input' => $Html, 'keepHTML' => 1); $Snoopy->Submit('http://milianw.de/projects/markdownify/demo.php', $Vars); $Doc = PqDocument($Snoopy->results); $Code = Pq('pre > code:eq(0)')->Text(); $Result = $Code; return $Result; }
/** * Converts HTML to Markdown */ function Markdownify($Html) { if (function_exists('Debug') && Debug()) { trigger_error(sprintf('%s is deprecated, use HtmlToMarkdown() instead.', __FUNCTION__), E_USER_DEPRECATED); } $Html = Gdn_Format::To($Html, 'xHtml'); $Snoopy = Gdn::Factory('Snoopy'); $Vars = array('input' => $Html, 'keepHTML' => 1); $Snoopy->Submit('http://milianw.de/projects/markdownify/demo.php', $Vars); $Doc = PqDocument($Snoopy->results); $Code = Pq('pre > code:eq(0)')->Text(); $Result = $Code; return $Result; }
function RemoteHtmlToMarkdown($Html, $FormatHtml = False) { $Snoopy = Gdn::Factory('Snoopy'); $Vars = array('html' => $Html, 'submit' => 1); $Snoopy->Submit('http://modnerd.com/html2markdown/', $Vars); $Doc = PqDocument($Snoopy->results, array('FixHtml' => False)); $Result = Pq('#markdown')->Val(); $Result = htmlspecialchars_decode($Result, ENT_QUOTES); // I don't have a clue why need do htmlspecialchars_decode second time $Result = htmlspecialchars_decode($Result, ENT_QUOTES); $Result = str_replace('
', "\r", $Result); $Result = trim($Result); return $Result; }
protected static function StaticPhpQueryReplace(&$String) { $ImageDimensions = self::ImageDimensions(); $Domain = Gdn::Request()->Domain(); $Doc = PqDocument($String, array('FixHtml' => False)); foreach (Pq('img[src]') as $ImgNode) { $PqImg = Pq($ImgNode); if (!$PqImg->Attr('width') && !$PqImg->Attr('height')) { // TODO: DONT USE AbsoluteSource() for relative paths $Src = AbsoluteSource(trim($PqImg->Attr('src'), '/'), $Domain); $CrcKey = crc32($Src); if (!array_key_exists($CrcKey, $ImageDimensions)) { $ImageSize = getimagesize($Src); $ImageDimensions[$CrcKey] = array($ImageSize[0], $ImageSize[1], '_src' => $Src); } else { $ImageSize = $ImageDimensions[$CrcKey]; } $PqImg->Attr('width', $ImageSize[0]); $PqImg->Attr('height', $ImageSize[1]); } } // Save cache. self::ImageDimensions($ImageDimensions); $String = $Doc->document->saveXML(); }
function LingvoTranslate($Word, $Options = array()) { LoadPhpQuery(); static $Result, $LanguageCode; if (is_null($LanguageCode)) { $LanguageCode = LocaleLanguageCode(); } $ResetCache = ArrayValue('ResetCache', $Options, False); $From = ArrayValue('From', $Options, $LanguageCode); $To = ArrayValue('To', $Options, $LanguageCode); if (!isset($Result[$Word]) || $ResetCache) { $Direction = $From . '-' . $To; $Url = 'http://lingvo.abbyyonline.com/en/' . $Direction . '/' . rawurlencode($Word); $Doc = PhpQuery::NewDocumentFile($Url); /*$Translation = Pq('div.card-short > span.Bold')->Text(); if($Translation != ''){ $Translation = preg_replace('/\n/', '', $Translation); if(!preg_match('/^[а-я ]+$/iu', $Translation)){ $Translation = Pq('span.translation:eq(0)')->Text(); } }*/ Pq('span.translation:eq(0)')->Children()->Remove(); $Translation = Pq('span.translation:eq(0)')->Text(); $Translation = trim($Translation); $Result[$Word] = $Translation; } return $Result[$Word]; }