diff options
author | Florian Pritz <bluewind@xinu.at> | 2013-02-25 19:27:23 +0100 |
---|---|---|
committer | Florian Pritz <bluewind@xinu.at> | 2013-02-25 20:49:49 +0100 |
commit | b99ae1000c31cabc8621b24ebedd64ed4ad67267 (patch) | |
tree | 97e40f1631ba608446e09f9cc61a05142ca60a38 /application | |
parent | 3b5a740ef9a6c905be8be30ad1674c8825dd0f71 (diff) |
automatically wrap lines
Signed-off-by: Florian Pritz <bluewind@xinu.at>
Diffstat (limited to 'application')
-rw-r--r-- | application/controllers/file.php | 40 | ||||
-rw-r--r-- | application/views/file/html_footer.php | 3 | ||||
-rw-r--r-- | application/views/file/html_header.php | 2 |
3 files changed, 33 insertions, 12 deletions
diff --git a/application/controllers/file.php b/application/controllers/file.php index 333602fbf..5bd829713 100644 --- a/application/controllers/file.php +++ b/application/controllers/file.php @@ -203,19 +203,43 @@ class File extends CI_Controller { private function _pygmentize($file, $lexer) { $return_value = 0; + $output = ""; - ob_start(); + $output .= '<div class="code content table">'."\n"; + $output .= '<div class="highlight"><pre>'."\n"; - echo '<table class="content"><tr>'; - echo '<td class="numbers"><pre>'; - // generate line numbers (links) - passthru('perl -ne \'print "<a href=\"#n$.\" ><span class=\"anchor\" id=\"n$.\"> </span>$.</a>\n"\' '.escapeshellarg($file), $return_value); - echo '</pre></td><td class="code">'."\n"; + ob_start(); passthru('pygmentize -F codetagify -O encoding=guess,outencoding=utf8 -l '.escapeshellarg($lexer).' -f html '.escapeshellarg($file), $return_value); - - $output = ob_get_contents(); + $buf = ob_get_contents(); ob_end_clean(); + + $buf = explode("\n", $buf); + $line_count = count($buf); + + // Last 2 items are just "</pre></div>" and "" + // We don't need those + unset($buf[$line_count - 2]); + unset($buf[$line_count - 1]); + + foreach ($buf as $key => $line) { + $line_number = $key + 1; + if ($key == 0) { + $line = str_replace("<div class=\"highlight\"><pre>", "", $line); + } + + // Be careful not to add superflous whitespace here (we are in a <pre>) + $output .= "<div class=\"table-row\">" + ."<a href=\"#n$line_number\" class=\"linenumber table-cell\">" + ."<span class=\"anchor\" id=\"n$line_number\"> </span>" + ."</a>" + ."<span class=\"line table-cell\">".$line."</span>\n"; + $output .= "</div>"; + } + + $output .= "</pre></div>"; + $output .= "</div>"; + return array( "return_value" => $return_value, "output" => $output diff --git a/application/views/file/html_footer.php b/application/views/file/html_footer.php index 3a4b05505..bbec7ebd1 100644 --- a/application/views/file/html_footer.php +++ b/application/views/file/html_footer.php @@ -1,6 +1,3 @@ - </td> - </tr> - </table> </div> </div> diff --git a/application/views/file/html_header.php b/application/views/file/html_header.php index e14bad6f5..b861e0a39 100644 --- a/application/views/file/html_header.php +++ b/application/views/file/html_header.php @@ -74,7 +74,7 @@ include(FCPATH."application/views/header.php"); ?> </li> </ul> <div class="btn-group pull-right" style="margin-top: 7px; margin-right:-10px;"> - <a id="linewrap" class="btn btn-small" rel="tooltip" title="Wrap long lines">Linewrap</a> + <a id="linewrap" class="btn btn-small" rel="tooltip" title="Toggle wrapping of long lines">Linewrap</a> <a href="<?php echo site_url($id."/plain") ?>" class="btn btn-small" rel="tooltip" title="View as plain text">Plain</a> <a href="<?php echo site_url($id) ?>" class="btn btn-small" rel="tooltip" title="View as raw file (org. mime type)">Raw</a> <?php if ($current_highlight === 'rmd') { ?> |