# changed the diff view to use a separate floating span to show line numbers.

# changed the blame view to use separte floating spans to show authors and revisions.
This commit is contained in:
hyung-hwan 2015-04-19 15:17:35 +00:00
parent 1d5a16a1d4
commit be199e68ee
16 changed files with 328 additions and 140 deletions

View File

@ -215,48 +215,84 @@ if ($login['settings'] != NULL &&
$login['settings']->code_hide_line_num == 'Y') $prettyprint_linenums = ''; $login['settings']->code_hide_line_num == 'Y') $prettyprint_linenums = '';
?> ?>
<pre class="prettyprint <?php print $prettyprint_linenums?> <?php print $prettyprint_lang?>" id="code_blame_mainarea_result_pre"> <pre id="code_blame_mainarea_result_code_container" class="line-numbered">
<?php <?php
// when producing line-numbered code, make sure to produce proper
$content = $file['content']; // line terminators.
//
// the <code> </code> block requires \n after every line.
// while the <span></span> block to contain revision numbers and authors
// doesn't require \n. It is because the css file sets the line-number span
// to display: block.
//
// If you have new lines between <span></span> and <code></code>, there will
// be some positioning problems as thouse new lines are rendered at the top
// of the actual code.
//
$content = &$file['content'];
$len = count($content); $len = count($content);
$rev = '';
$author = '';
print '<span class="line-number-block" id="code_blame_mainarea_result_code_revision">';
$rev = '';
for ($i = 0; $i < $len; $i++) for ($i = 0; $i < $len; $i++)
{ {
$line = $content[$i]; $line = &$content[$i];
if ($line['author'] != $author || $line['rev'] != $rev)
{
$author = $line['author'];
$author_padded = str_pad ($author, 9, ' ', STR_PAD_RIGHT);
$author_padded = substr($author_padded, 0, 9);
}
else
{
$author_padded = str_pad (' ', 9, ' ', STR_PAD_RIGHT);
}
if ($line['rev'] != $rev) if ($line['rev'] != $rev)
{ {
$rev = $line['rev']; $rev = $line['rev'];
$rev_padded = str_pad ($rev, 6, ' ', STR_PAD_LEFT); //$rev_to_show = str_pad ($rev, 6, ' ', STR_PAD_LEFT);
$rev_to_show = $rev;
$xpar = $this->converter->AsciiTohex ($headpath); $xpar = $this->converter->AsciiTohex ($headpath);
$rev_padded = anchor ("code/blame/{$project->id}/{$xpar}/{$rev}", $rev_padded); $rev_to_show = anchor ("code/blame/{$project->id}/{$xpar}/{$rev}", $rev_to_show);
} }
else else
{ {
$rev_padded = str_pad (' ', 6, ' ', STR_PAD_LEFT); //$rev_to_show = str_pad (' ', 6, ' ', STR_PAD_LEFT);
$rev_to_show = ' ';
} }
print "<span class='nocode'>{$rev_padded}</span> "; print "<span>{$rev_to_show}</span>";
print "<span class='nocode' title='{$author}'>{$author_padded}</span> "; }
print '</span>';
print '<span class="line-number-block" id="code_blame_mainarea_result_code_author">';
$rev = '';
$author = '';
for ($i = 0; $i < $len; $i++)
{
$line = &$content[$i];
if ($line['author'] != $author || $line['rev'] != $rev)
{
$author = $line['author'];
//$author_to_show = str_pad ($author, 9, ' ', STR_PAD_RIGHT);
//$author_to_show = substr($author_to_show, 0, 9);
$author_to_show = $author;
}
else
{
//$author_to_show = str_pad (' ', 9, ' ', STR_PAD_RIGHT);
$author_to_show = ' ';
}
$rev = $line['rev'];
print "<span>{$author_to_show}</span>";
}
print '</span>';
printf ('<code class="line-numbered-code prettyprint %s %s" id="code_blame_mainarea_result_code">', $prettyprint_linenums, $prettyprint_lang);
for ($i = 0; $i < $len; $i++)
{
$line = &$content[$i];
print htmlspecialchars ($line['line']); print htmlspecialchars ($line['line']);
print "\n"; print "\n";
} }
print '</code>';
?> ?>
</pre> </pre>
@ -268,7 +304,7 @@ if ($login['settings'] != NULL &&
<div class="title"><?php print $this->lang->line('Message') ?></div> <div class="title"><?php print $this->lang->line('Message') ?></div>
<pre id="code_blame_mainarea_result_info_logmsg"> <pre id="code_blame_mainarea_result_info_logmsg" class="pre-wrapped">
<?php print $file['logmsg'] ?> <?php print $file['logmsg'] ?>
</pre> </pre>
@ -294,6 +330,8 @@ if (array_key_exists('properties', $file) && count($file['properties']) > 0)
</pre> </pre>
</div> <!-- code_blame_mainarea_result_info --> </div> <!-- code_blame_mainarea_result_info -->
</div> <!-- code_blame_mainarea_result --> </div> <!-- code_blame_mainarea_result -->
</div> <!-- code_blame_mainarea --> </div> <!-- code_blame_mainarea -->

View File

@ -394,7 +394,7 @@ else
// //
// SHOW THE OLD FILE // SHOW THE OLD FILE
// //
print ("<div style='float:left; width: 49%;'>"); print ("<div style='float:left; width: 50%; margin: 0; padding: 0;'>");
print "<div class='navigator'>"; print "<div class='navigator'>";
$currev = $file['created_rev']; $currev = $file['created_rev'];
@ -405,7 +405,7 @@ else
print '&nbsp;&nbsp;&nbsp;'; print '&nbsp;&nbsp;&nbsp;';
// show the history details of the previous revision at the root directory // show the history details of the previous revision at the root directory
$revanc = "code/revision/{$project->id}/!/{$prevrev}"; $revanc = "code/revision/{$project->id}/!/{$file['against']['created_rev']}";
print anchor ($revanc, ($this->lang->line('Revision') . ' ' . $file['against']['created_rev'])); print anchor ($revanc, ($this->lang->line('Revision') . ' ' . $file['against']['created_rev']));
$currev = $file['created_rev']; $currev = $file['created_rev'];
@ -413,10 +413,44 @@ else
$nextanc = "code/{$diff_view}/{$project->id}/{$xpar}/{$currev}/{$nextrev}"; $nextanc = "code/{$diff_view}/{$project->id}/{$xpar}/{$currev}/{$nextrev}";
print '&nbsp;&nbsp;&nbsp;'; print '&nbsp;&nbsp;&nbsp;';
print anchor ($nextanc, '>>'); print anchor ($nextanc, '>>');
print "</div>"; print "</div>"; // navigator
print "<pre class='prettyprint lang-{$fileext}' style='width: 100%' id='code_diff_mainarea_result_fulldiffold'>"; //print "<pre class='prettyprint lang-{$fileext}' style='width: 100%;' id='code_diff_mainarea_result_fulldiffold'>";
print '<pre style="width: 100%;" id="code_diff_mainarea_result_fulldiffold" class="line-numbered">';
print '<span class="line-number-block">';
$actual_line_no = 1;
foreach ($file['content'] as $x)
{
if (array_key_exists('rev2line', $x))
{
// on the old file, there can be unchanged, changed, and deleted lines.
// however, it should consider added lines on the new file side.
if (array_key_exists('rev2diffclass', $x) && $x['rev2diffclass'] == 'diffadded')
{
// the line number is not display on the old file side
// as it doesn't have anthing meaningful to show.
// this line is added because the new file side has something
// to show as that both the old file view and the new file
// view can go side by side.
print "<span> </span>";
}
else
{
print "<span>$actual_line_no</span>";
$actual_line_no++;
}
}
else
{
if ($actual_line_no > 1) print "<span class='line-number-empty'>&nbsp;</span>";
$actual_line_no = $x['rev1lineno'];
}
}
print '</span>';
print '<code class="line-numbered-code prettyprint lang-{$fileext}" id="old-code">';
$actual_line_no = 1;
foreach ($file['content'] as $x) foreach ($file['content'] as $x)
{ {
if (array_key_exists('rev2line', $x)) if (array_key_exists('rev2line', $x))
@ -437,21 +471,31 @@ else
if ($is_msie && $xline == '') $xline = '&nbsp;'; if ($is_msie && $xline == '') $xline = '&nbsp;';
print $xline; print $xline;
print "</span>\n"; print "</span>\n";
// on the old file, there can be unchanged, changed, and deleted lines.
$actual_line_no++;
} }
else else
{ {
print "<span class='diffrow'> "; // this is the line number that tells which line the upcoming
print $x['rev1lineno']; // block of difference begins. set $actual_line_no to this line number.
print " </span>\n"; //print "<span class='diffrow'> ";
//print $x['rev1lineno'];
//print " </span>\n";
if ($actual_line_no > 1) print "<span class='line-numbered-code-line-empty'>&nbsp;</span>\n"; // \n is required here unlike in the line-number-block
$actual_line_no = $x['rev1lineno'];
} }
} }
printf ("</div>"); print '</code>';
print '<span class="line-number-clear"></span>';
print '</pre>'; print '</pre>';
print '</div>';
// //
// SHOW THE NEW FILE // SHOW THE NEW FILE
// //
print ("<div style='float:left; width: 49%;'>"); print ("<div style='float:left; width: 50%; margin: 0; padding: 0;'>");
print "<div class='navigator'>"; print "<div class='navigator'>";
$currev = $file['against']['created_rev']; $currev = $file['against']['created_rev'];
@ -461,7 +505,7 @@ else
print '&nbsp;&nbsp;&nbsp;'; print '&nbsp;&nbsp;&nbsp;';
// show the history details of the current revision at the root directory // show the history details of the current revision at the root directory
$revanc = "code/revision/{$project->id}/!/{$currev}"; $revanc = "code/revision/{$project->id}/!/{$file['created_rev']}";
print anchor ($revanc, ($this->lang->line('Revision') . ' ' . $file['created_rev'])); print anchor ($revanc, ($this->lang->line('Revision') . ' ' . $file['created_rev']));
$currev = $file['against']['created_rev']; $currev = $file['against']['created_rev'];
@ -469,9 +513,40 @@ else
$nextanc = "code/{$diff_view}/{$project->id}/{$xpar}/{$nextrev}/{$currev}"; $nextanc = "code/{$diff_view}/{$project->id}/{$xpar}/{$nextrev}/{$currev}";
print '&nbsp;&nbsp;&nbsp;'; print '&nbsp;&nbsp;&nbsp;';
print anchor ($nextanc, '>>'); print anchor ($nextanc, '>>');
print "</div>"; print "</div>"; // navigator
print "<pre class='prettyprint lang-{$fileext}' style='width: 100%' id='code_diff_mainarea_result_fulldiffnew'>"; //print "<pre class='prettyprint lang-{$fileext}' style='width: 100%;' id='code_diff_mainarea_result_fulldiffnew'>";
print '<pre style="width: 100%;" id="code_diff_mainarea_result_fulldiffnew" class="line-numbered">';
print '<span class="line-number-block">';
$actual_line_no = 1;
foreach ($file['content'] as $x)
{
// on the old file, there can be unchanged, changed, and added lines.
// however, the new file side must consider deleted lines on the old file side.
if (array_key_exists('rev2line', $x))
{
if (array_key_exists('rev1diffclass', $x) && $x['rev1diffclass'] == 'diffdeleted')
{
/* corresponding line on the old file has been deleted */
print "<span> </span>";
}
else
{
print "<span>$actual_line_no</span>";
$actual_line_no++;
}
}
else
{
if ($actual_line_no > 1) print "<span class='line-number-empty'>&nbsp;</span>";
$actual_line_no = $x['rev2lineno'];
}
}
print '</span>';
print '<code class="line-numbered-code prettyprint lang-{$fileext}" id="new-code" class="line-numbered-code">';
$actual_line_no = 1;
foreach ($file['content'] as $x) foreach ($file['content'] as $x)
{ {
if (array_key_exists('rev2line', $x)) if (array_key_exists('rev2line', $x))
@ -493,17 +568,34 @@ else
if ($is_msie && $xline == '') $xline = '&nbsp;'; if ($is_msie && $xline == '') $xline = '&nbsp;';
print $xline; print $xline;
print "</span>\n"; print "</span>\n";
if (array_key_exists('rev1diffclass', $x) && $x['rev1diffclass'] == 'diffdeleted')
{
/* corresponding line on the old file has been deleted */
}
else
{
$actual_line_no++;
}
} }
else else
{ {
print "<span class='diffrow'> "; //print "<span class='diffrow'> ";
print $x['rev2lineno']; //print $x['rev2lineno'];
print " </span>\n"; //print " </span>\n";
if ($actual_line_no > 1) print "<span class='line-numbered-code-line-empty'>&nbsp;</span>\n"; // \n is required here unlike in the line number block
$actual_line_no = $x['rev2lineno'];
} }
} }
print '</code>';
print '<span class="line-number-clear"></span>';
print '</pre>'; print '</pre>';
printf ("</div>");
print '</div>';
print '</div>'; print '</div>';
} }
?> ?>

View File

@ -49,7 +49,7 @@ $(function () {
}); });
// for code rendering // for code rendering
$("#code_file_mainarea_result_raw").html ($("#code_file_mainarea_result_pre").html()) $("#code_file_mainarea_result_raw").html ($("#code_file_mainarea_result_code").html())
prettyPrint (); prettyPrint ();
}); });
@ -61,13 +61,13 @@ function showRawCode()
{ {
$("#code_file_style_anchor").text("<?php print $this->lang->line('Destyle')?>"); $("#code_file_style_anchor").text("<?php print $this->lang->line('Destyle')?>");
$("#code_file_mainarea_result_pre").removeClass("prettyprinted"); $("#code_file_mainarea_result_code").removeClass("prettyprinted");
prettyPrint(); prettyPrint();
} }
else else
{ {
$("#code_file_style_anchor").text("<?php print $this->lang->line('Enstyle')?>"); $("#code_file_style_anchor").text("<?php print $this->lang->line('Enstyle')?>");
$("#code_file_mainarea_result_pre").html($("#code_file_mainarea_result_raw").html()); $("#code_file_mainarea_result_code").html($("#code_file_mainarea_result_raw").html());
} }
showing_raw_code = !showing_raw_code; showing_raw_code = !showing_raw_code;
@ -258,7 +258,7 @@ if ($login['settings'] != NULL &&
$login['settings']->code_hide_line_num == 'Y') $prettyprint_linenums = ''; $login['settings']->code_hide_line_num == 'Y') $prettyprint_linenums = '';
?> ?>
<pre class="prettyprint <?php print $prettyprint_linenums?> <?php print $prettyprint_lang?>" id="code_file_mainarea_result_pre"> <pre class="prettyprint <?php print $prettyprint_linenums?> <?php print $prettyprint_lang?>" id="code_file_mainarea_result_code">
<?php <?php
$is_octet_stream = FALSE; $is_octet_stream = FALSE;
if (array_key_exists('properties', $file) && count($file['properties']) > 0) if (array_key_exists('properties', $file) && count($file['properties']) > 0)
@ -297,7 +297,7 @@ if ($login['settings'] != NULL &&
</ul> </ul>
<div class="title"><?php print $this->lang->line('Message') ?></div> <div class="title"><?php print $this->lang->line('Message') ?></div>
<pre id="code_file_mainarea_result_info_logmsg"> <pre id="code_file_mainarea_result_info_logmsg" class="pre-wrapped">
<?php print htmlspecialchars ($file['logmsg']) ?> <?php print htmlspecialchars ($file['logmsg']) ?>
</pre> </pre>

View File

@ -144,7 +144,7 @@ function show_loc_graph (response)
function render_readme() function render_readme()
{ {
<?php <?php
// if the readme file name ends with '.wiki', perform pretty printing // if the readme file name ends with '.wiki', perform wiki formatting and pretty printing
if (strlen($readme_text) > 0 && substr_compare($readme_file, '.wiki', -5) === 0): if (strlen($readme_text) > 0 && substr_compare($readme_file, '.wiki', -5) === 0):
?> ?>
creole_render_wiki ( creole_render_wiki (
@ -561,7 +561,10 @@ $this->load->view (
if (strlen($readme_text) > 0) if (strlen($readme_text) > 0)
{ {
print '<div id="code_folder_mainarea_result_readme">'; print '<div id="code_folder_mainarea_result_readme">';
print '<pre id="code_folder_mainarea_result_readme_text">'; // the pre division is gone when rendered as a wiki text.
// so is the pre-wrapped class. so let me put the class
// regardless of the text type.
print '<pre id="code_folder_mainarea_result_readme_text" class="pre-wrapped">';
print "\n"; print "\n";
print htmlspecialchars($readme_text); print htmlspecialchars($readme_text);
print "\n"; print "\n";
@ -583,7 +586,7 @@ $this->load->view (
print '<div class="title">'; print '<div class="title">';
print $this->lang->line('Message'); print $this->lang->line('Message');
print '</div>'; print '</div>';
print '<pre id="code_folder_mainarea_result_info_logmsg">'; print '<pre id="code_folder_mainarea_result_info_logmsg" class="pre-wrapped">';
print htmlspecialchars ($file['logmsg']); print htmlspecialchars ($file['logmsg']);
print '</pre>'; print '</pre>';

View File

@ -147,7 +147,7 @@ $this->load->view (
print '</code></td>'; print '</code></td>';
print '<td>'; print '<td>';
print '<pre>'; print '<pre class="pre-wrapped">';
print htmlspecialchars($h['msg']); print htmlspecialchars($h['msg']);
print '</pre>'; print '</pre>';
print '</td>'; print '</td>';

View File

@ -366,7 +366,7 @@ $history = $file['history'];
</div> </div>
<div id="code_revision_mainarea_result_msg"> <div id="code_revision_mainarea_result_msg">
<pre id="code_revision_mainarea_result_msg_text"> <pre id="code_revision_mainarea_result_msg_text" class="pre-wrapped">
<?php print htmlspecialchars($history['msg']); ?> <?php print htmlspecialchars($history['msg']); ?>
</pre> </pre>
</div> </div>

View File

@ -283,7 +283,7 @@ $this->load->view (
print '<td class="details">'; print '<td class="details">';
if ($new->comment != "") if ($new->comment != "")
{ {
print "<div id='issue_show_mainarea_changes_comment_{$commentno}' class='issue_show_mainarea_changes_comment'>"; print "<div id='issue_show_mainarea_changes_comment_{$commentno}' class='issue_changes_comment'>";
print "<pre id='issue_show_mainarea_changes_comment_pre_{$commentno}'>"; print "<pre id='issue_show_mainarea_changes_comment_pre_{$commentno}'>";
print htmlspecialchars($new->comment); print htmlspecialchars($new->comment);
print '</pre>'; print '</pre>';

View File

@ -226,7 +226,7 @@ $this->load->view (
if ($log['action'] != 'revpropchange') if ($log['action'] != 'revpropchange')
{ {
print '<pre class="message">'; print '<pre class="pre-wrapped message">';
print htmlspecialchars ($code['message']); print htmlspecialchars ($code['message']);
print '</pre>'; print '</pre>';
} }

View File

@ -224,7 +224,7 @@ foreach ($urls as $url)
if ($log['action'] != 'revpropchange') if ($log['action'] != 'revpropchange')
{ {
print '<pre class="message">'; print '<pre class="pre-wrapped message">';
$sm = strtok (trim ($x['message']), "\r\n"); $sm = strtok (trim ($x['message']), "\r\n");
print htmlspecialchars ($sm); print htmlspecialchars ($sm);
print '</pre>'; print '</pre>';

View File

@ -196,7 +196,7 @@ foreach ($latest_projects as $project)
if ($log['action'] != 'revpropchange') if ($log['action'] != 'revpropchange')
{ {
print '<pre class="message">'; print '<pre class="pre-wrapped message">';
$sm = strtok (trim ($x['message']), "\r\n"); $sm = strtok (trim ($x['message']), "\r\n");
print htmlspecialchars ($sm); print htmlspecialchars ($sm);
print '</pre>'; print '</pre>';

View File

@ -33,7 +33,7 @@
position: relative; position: relative;
} }
#code_file_mainarea_result_pre { #code_file_mainarea_result_code {
line-height: 1.4em; line-height: 1.4em;
} }
@ -45,14 +45,27 @@
/*----------------------------------------------- /*-----------------------------------------------
* project source blame view * project source blame view
*-----------------------------------------------*/ *-----------------------------------------------*/
#code_blame_mainarea_result { #code_blame_mainarea_result {
position: relative; position: relative; /* required for infobox positioning */
} }
#code_blame_mainarea_result_pre { #code_blame_mainarea_result_code_container {
border: none;
line-height: 1.4em; line-height: 1.4em;
} }
#code_blame_mainarea_result_code_author {
background: #FEF8F8;
}
#code_blame_mainarea_result_code ol {
/* pre-wrap can't be used for the actual line number in the blame view.
* because the revision span and the author span floating on the left
* doesn't wrap lines when the code part wraps. so reset it to 'pre' */
white-space: pre;
}
/*----------------------------------------------- /*-----------------------------------------------
* project source history view * project source history view
*-----------------------------------------------*/ *-----------------------------------------------*/
@ -78,9 +91,7 @@
background-color: inherit; background-color: inherit;
padding: 0; padding: 0;
margin: 0; margin: 0;
white-space: -moz-pre-wrap; color: #333333;
white-space: -o-pre-wrap;
white-space: pre-wrap;
} }
#code_history_mainarea_result_table .title { #code_history_mainarea_result_table .title {
@ -109,7 +120,6 @@
#code_revision_mainarea_result_msg_text { #code_revision_mainarea_result_msg_text {
padding: 0.5em 0.5em 0.5em 0.5em; padding: 0.5em 0.5em 0.5em 0.5em;
white-space: pre-wrap;
line-height: 1.2em; line-height: 1.2em;
background-color: #F8F8FA; background-color: #F8F8FA;

View File

@ -52,17 +52,25 @@ body {
color: #4665A2; color: #4665A2;
} }
.content pre { .content pre,
.content code {
font-family: consolas, "Andale Mono", monospace; font-family: consolas, "Andale Mono", monospace;
overflow: auto; overflow: auto;
width: inherit;
border: none; border: none;
white-space: pre;
tab-size: 5; tab-size: 5;
-moz-tab-size: 5; -moz-tab-size: 5;
-o-tab-size: 5; -o-tab-size: 5;
} }
.content pre.pre-wrapped,
.content code.pre-wrapped {
white-space: -moz-pre-wrap !important;
white-space: -o-pre-wrap !important;
white-space: pre-wrap !important;
}
.content textarea { .content textarea {
font-family: consolas, "Andale Mono", monospace; font-family: consolas, "Andale Mono", monospace;
@ -202,7 +210,7 @@ body {
.content .projectbar .fixedmenu a:hover { .content .projectbar .fixedmenu a:hover {
padding: 6px; padding: 6px;
background-color: #6482A9; background-color: #6482A9;
color: #FFFFFFF; color: #FFFFFF;
-moz-border-radius: 3px; -moz-border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
@ -231,7 +239,7 @@ body {
.content .projectbar .ctxmenu a:hover { .content .projectbar .ctxmenu a:hover {
padding: 6px; padding: 6px;
background-color: #6482A9; background-color: #6482A9;
color: #FFFFFFF; color: #FFFFFF;
-moz-border-radius: 3px; -moz-border-radius: 3px;
-webkit-border-radius: 3px; -webkit-border-radius: 3px;
border-radius: 3px; border-radius: 3px;
@ -256,10 +264,6 @@ body {
padding: 0.3em 0.5em 0.3em 0.5em; padding: 0.3em 0.5em 0.3em 0.5em;
} }
.content .sidebar .collapsible-box {
margin-bottom: 1em;
}
.content .mainarea .title { .content .mainarea .title {
font-size: 120%; font-size: 120%;
margin-top: 0.2em; margin-top: 0.2em;
@ -424,17 +428,13 @@ body {
.content .mainarea pre { .content .mainarea pre {
border: none; border: none;
/*
background-color: #F8F8FA;
*/
/*
overflow: auto;
width: inherit;
*/
} }
.content .mainarea pre.wiki { .content .mainarea pre.wiki {
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap; white-space: pre-wrap;
padding: 0.3em; padding: 0.3em;
line-height: 1.2em; line-height: 1.2em;
@ -533,13 +533,59 @@ body {
margin-top: 0; margin-top: 0;
} }
/* this is used for line numbering. */ .content .mainarea pre.line-numbered span.line-number-block {
.content .mainarea pre.prettyprint ol { color:black;
white-space: pre-wrap; display:block;
float:left;
border-right:1px solid;
text-align:right;
/* the following properties must match .content .mainarea pre.line-numbered code.line-numbered-code */
overflow: auto;
margin: 0;
padding: 0.2em;
line-height: 1.4em;
}
.content .mainarea pre.line-numbered span.line-number-block span {
display: block;
padding: 0 0.2em 0 0.5em;
}
.content .mainarea pre.line-numbered span.line-number-block span.line-number-empty {
} }
.content .mainarea pre.prettyprint { .content .mainarea pre.line-numbered code.line-numbered-code {
/* this should override some properties of .content .mainarea .prettyprint */
color:black;
display:block;
/* the following properties must match .content .mainarea pre.line-numbered span.line-number-block */
overflow: auto;
margin: 0;
padding: 0.2em;
line-height: 1.4em;
}
.content .mainarea pre.line-numbered code.line-numbered-code span.line-numbered-code-line-empty {
display: inline-block;
width: 100%;
background: linear-gradient(0deg, transparent 48%, #CCCCCC 52%, transparent 54%);
}
.content .mainarea pre.line-numbered span.line-number-clear {
display:block;
clear:both;
}
.content .mainarea .prettyprint ol {
/* this is used for line numbering when numbering is sequential. */
white-space: pre-wrap;
}
.content .mainarea .prettyprint {
/* anything that make prettyprint area different from other pres? */ /* anything that make prettyprint area different from other pres? */
/*background-color: #FFFFFF;*/ /*background-color: #FFFFFF;*/
/*border: 1px solid #ccc;*/ /*border: 1px solid #ccc;*/
@ -558,24 +604,24 @@ body {
} }
pre.prettyprint .pln { color: #222222; } .content .prettyprint .pln { color: #222222; }
pre.prettyprint .str { color: #AA1111; } .content .prettyprint .str { color: #AA1111; }
pre.prettyprint .kwd { color: #2222ff; } .content .prettyprint .kwd { color: #2222ff; }
pre.prettyprint .com { color: #888a88; font-style: italic; } .content .prettyprint .com { color: #888a88; font-style: italic; }
pre.prettyprint .typ { color: #4271ae; } .content .prettyprint .typ { color: #4271ae; }
pre.prettyprint .lit { color: #f5871f; } .content .prettyprint .lit { color: #f5871f; }
pre.prettyprint .pun { color: #4d4d4c; } .content .prettyprint .pun { color: #4d4d4c; }
pre.prettyprint .opn { color: #4d4d4c; } .content .prettyprint .opn { color: #4d4d4c; }
pre.prettyprint .clo { color: #4d4d4c; } .content .prettyprint .clo { color: #4d4d4c; }
pre.prettyprint .tag { color: #c82829; } .content .prettyprint .tag { color: #c82829; }
pre.prettyprint .atn { color: #f5871f; } .content .prettyprint .atn { color: #f5871f; }
pre.prettyprint .atv { color: #3e999f; } .content .prettyprint .atv { color: #3e999f; }
pre.prettyprint .dec { color: #f5871f; } .content .prettyprint .dec { color: #f5871f; }
pre.prettyprint .var { color: #c82829; } .content .prettyprint .var { color: #c82829; }
pre.prettyprint .fun { color: #4271ae; } .content .prettyprint .fun { color: #4271ae; }
/* Specify class=linenums on a pre to get line numbering */ /* Specify class=linenums on a pre to get line numbering */
pre.prettyprint ol.linenums { .content .prettyprint ol.linenums {
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
margin-left: 1em; margin-left: 1em;
@ -584,40 +630,40 @@ pre.prettyprint ol.linenums {
} /* IE indents via margin-left */ } /* IE indents via margin-left */
/* /*
pre.prettyprint li.L0, .content .prettyprint li.L0,
pre.prettyprint li.L1, .content .prettyprint li.L1,
pre.prettyprint li.L2, .content .prettyprint li.L2,
pre.prettyprint li.L3, .content .prettyprint li.L3,
pre.prettyprint li.L5, .content .prettyprint li.L5,
pre.prettyprint li.L6, .content .prettyprint li.L6,
pre.prettyprint li.L7, .content .prettyprint li.L7,
pre.prettyprint li.L8 { list-style-type: none } .content .prettyprint li.L8 { list-style-type: none }
*/ */
/* Alternate shading for lines */ /* Alternate shading for lines */
/* /*
pre.prettyprint li.L1, .content .prettyprint li.L1,
pre.prettyprint li.L3, .content .prettyprint li.L3,
pre.prettyprint li.L5, .content .prettyprint li.L5,
pre.prettyprint li.L7, .content .prettyprint li.L7,
pre.prettyprint li.L9 { background: #eee } .content .prettyprint li.L9 { background: #eee }
*/ */
@media print { @media print {
pre.prettyprint .pln { color: #222222; } .content .prettyprint .pln { color: #222222; }
pre.prettyprint .str { color: #AA1111; } .content .prettyprint .str { color: #AA1111; }
pre.prettyprint .kwd { color: #2222ff; font-weight: bold; } .content .prettyprint .kwd { color: #2222ff; font-weight: bold; }
pre.prettyprint .com { color: #888a88; font-style: italic; } .content .prettyprint .com { color: #888a88; font-style: italic; }
pre.prettyprint .typ { color: #4271ae; font-weight: bold; } .content .prettyprint .typ { color: #4271ae; font-weight: bold; }
pre.prettyprint .lit { color: #f5871f; } .content .prettyprint .lit { color: #f5871f; }
pre.prettyprint .pun { color: #4d4d4c; } .content .prettyprint .pun { color: #4d4d4c; }
pre.prettyprint .opn { color: #4d4d4c; } .content .prettyprint .opn { color: #4d4d4c; }
pre.prettyprint .clo { color: #4d4d4c; } .content .prettyprint .clo { color: #4d4d4c; }
pre.prettyprint .tag { color: #c82829; font-weight: bold; } .content .prettyprint .tag { color: #c82829; font-weight: bold; }
pre.prettyprint .atn { color: #f5871f; } .content .prettyprint .atn { color: #f5871f; }
pre.prettyprint .atv { color: #3e999f; } .content .prettyprint .atv { color: #3e999f; }
pre.prettyprint .dec { color: #f5871f; } .content .prettyprint .dec { color: #f5871f; }
pre.prettyprint .var { color: #c82829; } .content .prettyprint .var { color: #c82829; }
pre.prettyprint .fun { color: #4271ae; } .content .prettyprint .fun { color: #4271ae; }
} }
.content .infostrip { .content .infostrip {
@ -648,10 +694,10 @@ pre.prettyprint li.L9 { background: #eee }
} }
.content .sidebar .collapsible-box { .content .sidebar .collapsible-box {
/* extra margin-bottom for collapsible located on the sidebar */
margin-bottom: 0.5em; margin-bottom: 0.5em;
} }
.content .sidebar .user_icon_img { .content .sidebar .user_icon_img {
height: 2em; height: 2em;
width: 2em; width: 2em;
@ -727,7 +773,6 @@ pre.prettyprint li.L9 { background: #eee }
} }
.content .infobox pre { .content .infobox pre {
white-space: pre-wrap;
margin: 0; margin: 0;
padding: 0.5em 0.2em 0.5em 0.2em; padding: 0.5em 0.2em 0.5em 0.2em;
} }

View File

@ -174,11 +174,20 @@
padding-bottom: 0.3em; padding-bottom: 0.3em;
} }
#issue_show_mainarea_changes_table .issue_changes_comment .prettyprint {
/* special pre-wrap rule to make the pretty-printed text to wrap
* in the issue comment listing. i didn't manage to get oveflow: auto
* or overflow: scroll to make make a scroll bar show up. */
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
}
#issue_change_form { #issue_change_form {
font-size: 1em; font-size: 1em;
} }
/* all these elements inside the form requires a lot of refinement. /* all these elements inside the form requires a lot of refinement.
* many of these are duplicates of elemenents in common.css */ * many of these are duplicates of elemenents in common.css */
#issue_change_form .form_input_preview { #issue_change_form .form_input_preview {

View File

@ -59,9 +59,6 @@
border: 0; border: 0;
margin: 1px; margin: 1px;
background-color: inherit; background-color: inherit;
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
color: #333333; color: #333333;
} }

View File

@ -41,9 +41,6 @@
border: 0; border: 0;
margin: 1px; margin: 1px;
background-color: inherit; background-color: inherit;
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
} }
/*----------------------------------------------- /*-----------------------------------------------

View File

@ -45,9 +45,6 @@
border: 0; border: 0;
margin: 1px; margin: 1px;
background-color: inherit; background-color: inherit;
white-space: -moz-pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
} }
/*----------------------------------------------- /*-----------------------------------------------