mirror of
https://github.com/DarrenOfficial/dpaste.git
synced 2024-11-15 08:02:54 +11:00
Wordwrap support.
This commit is contained in:
parent
973a7b825e
commit
c61f134bb3
5 changed files with 116 additions and 90 deletions
|
@ -142,11 +142,12 @@ h1, h2, h3, h4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
.snippet-rendered {
|
.snippet-rendered {
|
||||||
color: #555;
|
color: #666;
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 1.5em;
|
line-height: 24px;
|
||||||
max-width: 700px;
|
max-width: 620px;
|
||||||
font-family: Georgia, Palatino, "Palatino Linotype", FreeSerif, serif;
|
font-family: Helvetica, FreeSerif, serif;
|
||||||
|
font-weight: 300;
|
||||||
}
|
}
|
||||||
|
|
||||||
div.tree{
|
div.tree{
|
||||||
|
@ -195,27 +196,114 @@ div.tree div.submit input{
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------------
|
/* ----------------------------------------------------------------------------
|
||||||
Pre
|
.code
|
||||||
---------------------------------------------------------------------------- */
|
---------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
.code {
|
||||||
|
background: #232829;
|
||||||
|
color: #f8f8f2;
|
||||||
|
padding: 20px 30px !important;
|
||||||
|
border-radius: 0;
|
||||||
|
padding: 20px 30px;
|
||||||
|
font-family: Monaco,Menlo,Consolas,"Courier New",monospace;
|
||||||
|
}
|
||||||
|
|
||||||
ol.linenums {
|
.code.wordwrap {
|
||||||
|
overflow: auto;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code ol {
|
||||||
margin: 0 0 0 45px;
|
margin: 0 0 0 45px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ol.linenums li {
|
.code ol li {
|
||||||
color: #aaa;
|
color: #aaa;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
line-height: 20px;
|
line-height: 21px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
ol.linenums li.marked {
|
.code ol li.marked {
|
||||||
color: #f4e009;
|
color: #f4e009;
|
||||||
background-color: #4f4800;
|
background-color: #4f4800;
|
||||||
|
margin-right: -30px;
|
||||||
|
padding-right: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------------
|
||||||
|
Pygments
|
||||||
|
---------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
.code .gd { background-color: rgba(226, 12, 19, .3); color: #fff; display: block; }
|
||||||
|
.code .gi { background-color: rgba(23, 189, 10, .2); color: #fff; display: block; }
|
||||||
|
|
||||||
|
.code .hll { background-color: #49483e }
|
||||||
|
.code .c { color: #75715e } /* Comment */
|
||||||
|
.code .err { color: #960050; background-color: #1e0010 } /* Error */
|
||||||
|
.code .k { color: #66d9ef } /* Keyword */
|
||||||
|
.code .l { color: #ae81ff } /* Literal */
|
||||||
|
.code .n { color: #f8f8f2 } /* Name */
|
||||||
|
.code .o { color: #f92672 } /* Operator */
|
||||||
|
.code .p { color: #f8f8f2 } /* Punctuation */
|
||||||
|
.code .cm { color: #75715e } /* Comment.Multiline */
|
||||||
|
.code .cp { color: #75715e } /* Comment..codeproc */
|
||||||
|
.code .c1 { color: #75715e } /* Comment.Single */
|
||||||
|
.code .cs { color: #75715e } /* Comment.Special */
|
||||||
|
.code .ge { font-style: italic } /* Generic.Emph */
|
||||||
|
.code .gs { font-weight: bold } /* Generic.Strong */
|
||||||
|
.code .kc { color: #66d9ef } /* Keyword.Constant */
|
||||||
|
.code .kd { color: #66d9ef } /* Keyword.Declaration */
|
||||||
|
.code .kn { color: #f92672 } /* Keyword.Namespace */
|
||||||
|
.code .kp { color: #66d9ef } /* Keyword.Pseudo */
|
||||||
|
.code .kr { color: #66d9ef } /* Keyword.Reserved */
|
||||||
|
.code .kt { color: #66d9ef } /* Keyword.Type */
|
||||||
|
.code .ld { color: #e6db74 } /* Literal.Date */
|
||||||
|
.code .m { color: #ae81ff } /* Literal.Number */
|
||||||
|
.code .s { color: #e6db74 } /* Literal.String */
|
||||||
|
.code .na { color: #a6e22e } /* Name.Attribute */
|
||||||
|
.code .nb { color: #f8f8f2 } /* Name.Builtin */
|
||||||
|
.code .nc { color: #a6e22e } /* Name.Class */
|
||||||
|
.code .no { color: #66d9ef } /* Name.Constant */
|
||||||
|
.code .nd { color: #a6e22e } /* Name.Decorator */
|
||||||
|
.code .ni { color: #f8f8f2 } /* Name.Entity */
|
||||||
|
.code .ne { color: #a6e22e } /* Name.Exception */
|
||||||
|
.code .nf { color: #a6e22e } /* Name.Function */
|
||||||
|
.code .nl { color: #f8f8f2 } /* Name.Label */
|
||||||
|
.code .nn { color: #f8f8f2 } /* Name.Namespace */
|
||||||
|
.code .nx { color: #a6e22e } /* Name.Other */
|
||||||
|
.code .py { color: #f8f8f2 } /* Name.Property */
|
||||||
|
.code .nt { color: #f92672 } /* Name.Tag */
|
||||||
|
.code .nv { color: #f8f8f2 } /* Name.Variable */
|
||||||
|
.code .ow { color: #f92672 } /* Operator.Word */
|
||||||
|
.code .w { color: #f8f8f2 } /* Text.Whitespace */
|
||||||
|
.code .mf { color: #ae81ff } /* Literal.Number.Float */
|
||||||
|
.code .mh { color: #ae81ff } /* Literal.Number.Hex */
|
||||||
|
.code .mi { color: #ae81ff } /* Literal.Number.Integer */
|
||||||
|
.code .mo { color: #ae81ff } /* Literal.Number.Oct */
|
||||||
|
.code .sb { color: #e6db74 } /* Literal.String.Backtick */
|
||||||
|
.code .sc { color: #e6db74 } /* Literal.String.Char */
|
||||||
|
.code .sd { color: #e6db74 } /* Literal.String.Doc */
|
||||||
|
.code .s2 { color: #e6db74 } /* Literal.String.Double */
|
||||||
|
.code .se { color: #ae81ff } /* Literal.String.Escape */
|
||||||
|
.code .sh { color: #e6db74 } /* Literal.String.Heredoc */
|
||||||
|
.code .si { color: #e6db74 } /* Literal.String.Interpol */
|
||||||
|
.code .sx { color: #e6db74 } /* Literal.String.Other */
|
||||||
|
.code .sr { color: #e6db74 } /* Literal.String.Regex */
|
||||||
|
.code .s1 { color: #e6db74 } /* Literal.String.Single */
|
||||||
|
.code .ss { color: #e6db74 } /* Literal.String.Symbol */
|
||||||
|
.code .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
|
||||||
|
.code .vc { color: #f8f8f2 } /* Name.Variable.Class */
|
||||||
|
.code .vg { color: #f8f8f2 } /* Name.Variable.Global */
|
||||||
|
.code .vi { color: #f8f8f2 } /* Name.Variable.Instance */
|
||||||
|
.code .il { color: #ae81ff } /* Literal.Number.Integer.Long */
|
||||||
|
|
||||||
|
|
||||||
|
/* ----------------------------------------------------------------------------
|
||||||
|
Mobile
|
||||||
|
---------------------------------------------------------------------------- */
|
||||||
|
|
||||||
@media (max-width: 580px) {
|
@media (max-width: 580px) {
|
||||||
.form-options-expire {
|
.form-options-expire {
|
||||||
float: left;
|
float: left;
|
||||||
|
@ -223,78 +311,3 @@ ol.linenums li.marked {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ----------------------------------------------------------------------------
|
|
||||||
Pygments
|
|
||||||
---------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
pre {
|
|
||||||
background: #232829;
|
|
||||||
color: #f8f8f2;
|
|
||||||
padding: 10px 15px 10px 0;
|
|
||||||
border-radius: 0;
|
|
||||||
padding: 20px 30px;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre .gd { background-color: rgba(226, 12, 19, .3); color: #fff; display: block; }
|
|
||||||
pre .gi { background-color: rgba(23, 189, 10, .2); color: #fff; display: block; }
|
|
||||||
|
|
||||||
pre .hll { background-color: #49483e }
|
|
||||||
pre .c { color: #75715e } /* Comment */
|
|
||||||
pre .err { color: #960050; background-color: #1e0010 } /* Error */
|
|
||||||
pre .k { color: #66d9ef } /* Keyword */
|
|
||||||
pre .l { color: #ae81ff } /* Literal */
|
|
||||||
pre .n { color: #f8f8f2 } /* Name */
|
|
||||||
pre .o { color: #f92672 } /* Operator */
|
|
||||||
pre .p { color: #f8f8f2 } /* Punctuation */
|
|
||||||
pre .cm { color: #75715e } /* Comment.Multiline */
|
|
||||||
pre .cp { color: #75715e } /* Comment.Preproc */
|
|
||||||
pre .c1 { color: #75715e } /* Comment.Single */
|
|
||||||
pre .cs { color: #75715e } /* Comment.Special */
|
|
||||||
pre .ge { font-style: italic } /* Generic.Emph */
|
|
||||||
pre .gs { font-weight: bold } /* Generic.Strong */
|
|
||||||
pre .kc { color: #66d9ef } /* Keyword.Constant */
|
|
||||||
pre .kd { color: #66d9ef } /* Keyword.Declaration */
|
|
||||||
pre .kn { color: #f92672 } /* Keyword.Namespace */
|
|
||||||
pre .kp { color: #66d9ef } /* Keyword.Pseudo */
|
|
||||||
pre .kr { color: #66d9ef } /* Keyword.Reserved */
|
|
||||||
pre .kt { color: #66d9ef } /* Keyword.Type */
|
|
||||||
pre .ld { color: #e6db74 } /* Literal.Date */
|
|
||||||
pre .m { color: #ae81ff } /* Literal.Number */
|
|
||||||
pre .s { color: #e6db74 } /* Literal.String */
|
|
||||||
pre .na { color: #a6e22e } /* Name.Attribute */
|
|
||||||
pre .nb { color: #f8f8f2 } /* Name.Builtin */
|
|
||||||
pre .nc { color: #a6e22e } /* Name.Class */
|
|
||||||
pre .no { color: #66d9ef } /* Name.Constant */
|
|
||||||
pre .nd { color: #a6e22e } /* Name.Decorator */
|
|
||||||
pre .ni { color: #f8f8f2 } /* Name.Entity */
|
|
||||||
pre .ne { color: #a6e22e } /* Name.Exception */
|
|
||||||
pre .nf { color: #a6e22e } /* Name.Function */
|
|
||||||
pre .nl { color: #f8f8f2 } /* Name.Label */
|
|
||||||
pre .nn { color: #f8f8f2 } /* Name.Namespace */
|
|
||||||
pre .nx { color: #a6e22e } /* Name.Other */
|
|
||||||
pre .py { color: #f8f8f2 } /* Name.Property */
|
|
||||||
pre .nt { color: #f92672 } /* Name.Tag */
|
|
||||||
pre .nv { color: #f8f8f2 } /* Name.Variable */
|
|
||||||
pre .ow { color: #f92672 } /* Operator.Word */
|
|
||||||
pre .w { color: #f8f8f2 } /* Text.Whitespace */
|
|
||||||
pre .mf { color: #ae81ff } /* Literal.Number.Float */
|
|
||||||
pre .mh { color: #ae81ff } /* Literal.Number.Hex */
|
|
||||||
pre .mi { color: #ae81ff } /* Literal.Number.Integer */
|
|
||||||
pre .mo { color: #ae81ff } /* Literal.Number.Oct */
|
|
||||||
pre .sb { color: #e6db74 } /* Literal.String.Backtick */
|
|
||||||
pre .sc { color: #e6db74 } /* Literal.String.Char */
|
|
||||||
pre .sd { color: #e6db74 } /* Literal.String.Doc */
|
|
||||||
pre .s2 { color: #e6db74 } /* Literal.String.Double */
|
|
||||||
pre .se { color: #ae81ff } /* Literal.String.Escape */
|
|
||||||
pre .sh { color: #e6db74 } /* Literal.String.Heredoc */
|
|
||||||
pre .si { color: #e6db74 } /* Literal.String.Interpol */
|
|
||||||
pre .sx { color: #e6db74 } /* Literal.String.Other */
|
|
||||||
pre .sr { color: #e6db74 } /* Literal.String.Regex */
|
|
||||||
pre .s1 { color: #e6db74 } /* Literal.String.Single */
|
|
||||||
pre .ss { color: #e6db74 } /* Literal.String.Symbol */
|
|
||||||
pre .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
|
|
||||||
pre .vc { color: #f8f8f2 } /* Name.Variable.Class */
|
|
||||||
pre .vg { color: #f8f8f2 } /* Name.Variable.Global */
|
|
||||||
pre .vi { color: #f8f8f2 } /* Name.Variable.Instance */
|
|
||||||
pre .il { color: #ae81ff } /* Literal.Number.Integer.Long */
|
|
||||||
|
|
|
@ -19,8 +19,9 @@
|
||||||
<h3>API</h3>
|
<h3>API</h3>
|
||||||
|
|
||||||
{# Just put the script in dpaste and copy the source node #}
|
{# Just put the script in dpaste and copy the source node #}
|
||||||
<pre class="prettyprint linenums"><ol class="linenums"><li id="1"><span class="c">#!/usr/bin/env python</span></li><li id="2"> </li><li id="3"><span class="kn">import</span> <span class="nn">urllib</span></li><li id="4"><span class="kn">import</span> <span class="nn">urllib2</span></li><li id="5"><span class="kn">import</span> <span class="nn">sys</span></li><li id="6"> </li><li id="7"><span class="k">def</span> <span class="nf">paste_code</span><span class="p">():</span></li><li id="8"> <span class="n">request</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">Request</span><span class="p">(</span></li><li id="9"> <span class="s">'https://dpaste.de/api/'</span><span class="p">,</span></li><li id="10"> <span class="n">urllib</span><span class="o">.</span><span class="n">urlencode</span><span class="p">([(</span><span class="s">'content'</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="o">.</span><span class="n">read</span><span class="p">())]),</span></li><li id="11"> <span class="p">)</span></li><li id="12"> <span class="n">response</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">request</span><span class="p">)</span></li><li id="13"> <span class="c"># Strip surrounding quotes (NB: response has no trailing newline)</span></li><li id="14"> <span class="k">print</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span></li><li id="15"> </li><li id="16"><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span></li><li id="17"> <span class="n">paste_code</span><span class="p">()</span></li></ol></pre>
|
<div class="code"><ol class="linenums"><li id="1"><span class="c">#!/usr/bin/env python</span></li><li id="2"> </li><li id="3"><span class="kn">import</span> <span class="nn">urllib</span></li><li id="4"><span class="kn">import</span> <span class="nn">urllib2</span></li><li id="5"><span class="kn">import</span> <span class="nn">sys</span></li><li id="6"> </li><li id="7"><span class="k">def</span> <span class="nf">paste_code</span><span class="p">():</span></li><li id="8"> <span class="n">request</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">Request</span><span class="p">(</span></li><li id="9"> <span class="s">'https://dpaste.de/api/'</span><span class="p">,</span></li><li id="10"> <span class="n">urllib</span><span class="o">.</span><span class="n">urlencode</span><span class="p">([(</span><span class="s">'content'</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span class="o">.</span><span class="n">read</span><span class="p">())]),</span></li><li id="11"> <span class="p">)</span></li><li id="12"> <span class="n">response</span> <span class="o">=</span> <span class="n">urllib2</span><span class="o">.</span><span class="n">urlopen</span><span class="p">(</span><span class="n">request</span><span class="p">)</span></li><li id="13"> <span class="c"># Strip surrounding quotes (NB: response has no trailing newline)</span></li><li id="14"> <span class="k">print</span> <span class="n">response</span><span class="o">.</span><span class="n">read</span><span class="p">()[</span><span class="mi">1</span><span class="p">:</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span></li><li id="15"> </li><li id="16"><span class="k">if</span> <span class="n">__name__</span> <span class="o">==</span> <span class="s">'__main__'</span><span class="p">:</span></li><li id="17"> <span class="n">paste_code</span><span class="p">()</span></li></ol></div>
|
||||||
|
|
||||||
|
<br/>
|
||||||
<p>Save this script in <code>/usr/local/bin/dpaste</code> and <code>chmod +x ..filepath</code>.</p>
|
<p>Save this script in <code>/usr/local/bin/dpaste</code> and <code>chmod +x ..filepath</code>.</p>
|
||||||
<p>Usage: <code>cat foo.txt | dpaste</code></p>
|
<p>Usage: <code>cat foo.txt | dpaste</code></p>
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,9 @@
|
||||||
<a class="btn" href="{% url "snippet_details_raw" snippet.secret_id %}"><i class="icon-align-left"></i> {% trans "View Raw" %}</a>
|
<a class="btn" href="{% url "snippet_details_raw" snippet.secret_id %}"><i class="icon-align-left"></i> {% trans "View Raw" %}</a>
|
||||||
<a class="btn" href="{% url "snippet_gist" snippet.secret_id %}"
|
<a class="btn" href="{% url "snippet_gist" snippet.secret_id %}"
|
||||||
rel="nofollow" title="Create a secret Gist"><i class="icon-share"></i> {% trans "Gist" %}</a>
|
rel="nofollow" title="Create a secret Gist"><i class="icon-share"></i> {% trans "Gist" %}</a>
|
||||||
|
{% if snippet.lexer != 'text' %}
|
||||||
|
<a class="btn" href="#" id="toggleWordwrap">Wordwrap</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if snippet.expire_type == 3 %}
|
{% if snippet.expire_type == 3 %}
|
||||||
|
@ -88,7 +91,7 @@
|
||||||
======================================================================= -->
|
======================================================================= -->
|
||||||
{% if snippet.lexer == 'text' %}
|
{% if snippet.lexer == 'text' %}
|
||||||
<div class="snippet-rendered">
|
<div class="snippet-rendered">
|
||||||
{{ snippet.content|linebreaks }}
|
{{ snippet.content|linebreaksbr }}
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% include "dpaste/snippet_pre.html" %}
|
{% include "dpaste/snippet_pre.html" %}
|
||||||
|
@ -168,24 +171,32 @@ jQuery(function($) {
|
||||||
hashlist = curLine.substring(2).split(',');
|
hashlist = curLine.substring(2).split(',');
|
||||||
if (hashlist.length > 0 && hashlist[0] !== '') {
|
if (hashlist.length > 0 && hashlist[0] !== '') {
|
||||||
$.each(hashlist, function(index, elem){
|
$.each(hashlist, function(index, elem){
|
||||||
$('.linenums li#' + elem).addClass('marked');
|
$('.code li#' + elem).addClass('marked');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$('.linenums li').click(function(e) {
|
$('.code li').click(function(e) {
|
||||||
var line = $(this),
|
var line = $(this),
|
||||||
hash = 'L';
|
hash = 'L';
|
||||||
|
|
||||||
line.toggleClass('marked');
|
line.toggleClass('marked');
|
||||||
|
|
||||||
$('.linenums li.marked').each(function (index, elem) {
|
$('.code li.marked').each(function (index, elem) {
|
||||||
if (hash !== 'L') hash += ',';
|
if (hash !== 'L') hash += ',';
|
||||||
hash += $(elem).attr('id');
|
hash += $(elem).attr('id');
|
||||||
});
|
});
|
||||||
|
|
||||||
window.location.hash = hash;
|
window.location.hash = hash;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------
|
||||||
|
Line Highlighting
|
||||||
|
------------------------------------------------------------------------ */
|
||||||
|
$('#toggleWordwrap').click(function(e){
|
||||||
|
e.preventDefault();
|
||||||
|
$('.code').toggleClass('wordwrap');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{% load dpaste_tags %}<pre><ol class="linenums">{% for line in snippet|highlight %}<li id="{{ forloop.counter }}">{{ line|safe|default:" " }}</li>{% endfor %}</ol></pre>
|
{% load dpaste_tags %}<div class="code"><ol>{% for line in snippet|highlight %}<li id="{{ forloop.counter }}">{{ line|safe|default:" " }}</li>{% endfor %}</ol></div>
|
||||||
|
|
|
@ -10,4 +10,5 @@ def in_list(value, arg):
|
||||||
@register.filter
|
@register.filter
|
||||||
def highlight(snippet):
|
def highlight(snippet):
|
||||||
h = pygmentize(snippet.content, snippet.lexer)
|
h = pygmentize(snippet.content, snippet.lexer)
|
||||||
|
h = h.replace(u' ', u' ')
|
||||||
return h.splitlines()
|
return h.splitlines()
|
||||||
|
|
Loading…
Reference in a new issue