App-mojopaste

 view release on metacpan or  search on metacpan

script/mojopaste  view on Meta::CPAN

  % end
  <script type="text/javascript">
  window.onkeydown = function(e) {
    var el;
    if (!e.ctrlKey && !e.metaKey) return; // ctrl or cmd
    if (e.keyCode != 65 && e.keyCode != 97) return; // A or a
    if (el = document.querySelector(".prettyprint")) {
      var range = document.createRange();
      range.selectNodeContents(el);
      var selection = window.getSelection();
      selection.removeAllRanges();
      selection.addRange(range);
      e.preventDefault();
    }
    else if(el = document.querySelector(".editor")) {
      el.select();
      e.preventDefault();
    }
  };
  window.onload = function(e) {
    var form = document.querySelector('form');
    var pre = document.querySelector('pre');

    if (form) {
      document.querySelector('.editor').focus();
      document.querySelector('.save.btn').onclick = function(e) { form.action = '<%= url_for 'index' %>' };
    }
    if (pre && pre.firstChild.nodeValue.length < 50000) {
      prettyPrint();
    }
  };
  /* prettify from google */
  !function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
  (function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(...
  b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a<f;++a){var h=b[a];if(/\\[bdsw]/i.test(h))c.push(h);else{var h=d(h),l;a+2<f&&"-"===b[a+1]?(l=d(b[a+2]),a+=2):l=h;e.push([h,l]);l<65||h>122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.mi...
  h[1]>h[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0...
  (a[f]="\\"+d[l]);for(f=0;f<c;++f)"^"===a[f]&&"^"!==a[f+1]&&(a[f]="");if(e.ignoreCase&&m)for(f=0;f<c;++f)l=a[f],e=l.charAt(0),l.length>=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCha...
  f:12,r:13},n=[],k=0,c=a.length;k<c;++k){i=a[k];if(i.global||i.multiline)throw Error(""+i);n.push("(?:"+s(i)+")")}return RegExp(n.join("|"),j?"gi":"g")}function T(a,d){function g(a){var c=a.nodeType;if(c==1){if(!b.test(a.className)){for(c=a.firstChi...
  a)}var b=/(?:^|\s)nocode(?:\s|$)/,s=[],x=0,m=[],j=0;g(a);return{a:s.join("").replace(/\n$/,""),d:m}}function H(a,d,g,b){d&&(a={a:d,e:a},g(a),b.push.apply(b,a.g))}function U(a){for(var d=void 0,g=a.firstChild;g;g=g.nextSibling)var b=g.nodeType,d=b==...
  if(h)t=z.match(h[1]),w=h[0];else{for(f=0;f<x;++f)if(h=d[f],t=z.match(h[1])){w=h[0];break}t||(w="pln")}if((f=w.length>=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf...
  g[c],n=r[3];if(n)for(var e=n.length;--e>=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]...
  q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?...
  /^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|\%=?|&&?=...
  s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.re...
  q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c...
  c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.n...
  r.className="linenums";for(var d=Math.max(0,d-1|0)||0,i=0,n=c.length;i<n;++i)k=c[i],k.className="L"+(i+d)%10,k.firstChild||k.appendChild(j.createTextNode("\u00a0")),r.appendChild(k);a.appendChild(r)}function p(a,d){for(var g=d.length;--g>=0;){var b...
  a.a=b;a.d=g.d;a.e=0;I(d,b)(a);var s=/\bMSIE\s(\d+)/.exec(navigator.userAgent),s=s&&+s[1]<=8,d=/\n/g,x=a.a,m=x.length,g=0,j=a.d,k=j.length,b=0,c=a.g,i=c.length,r=0;c[i]=m;var n,e;for(e=n=0;e<i;)c[e]!==c[e+2]?(c[n++]=c[e++],c[n++]=c[e++]):e+=2;i=n;fo...
  t))){s&&(G=G.replace(d,"\r"));A.nodeValue=G;var L=A.ownerDocument,o=L.createElement("span");o.className=c[r+1];var v=A.parentNode;v.replaceChild(o,A);o.appendChild(A);g<l&&(j[b+1]=A=L.createTextNode(x.substring(t,l)),v.insertBefore(A,o.nextSibling)...
  "catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late...
  O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,uns...
  Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,lo...
  V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments:!0,mu...
  /^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml...
  ["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"])...
  ["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:...
  hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,...
  p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR...
  return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i<p.length&&c.now()<b;i++){for(var d=p[i],j=h,k=d;k=k.previousSibling;){var m=k.nodeType,o=(m===7||m===8)&&k.nodeVa...
  o.className&&e.test(o.className)){m=!0;break}if(!m){d.className+=" prettyprinted";m=j.lang;if(!m){var m=k.match(n),y;if(!m&&(y=U(d))&&t.test(y.tagName))m=y.className.match(n);m&&(m=m[1])}if(w.test(d.tagName))o=1;else var o=d.currentStyle,u=s.defaul...
  {h:m,c:d,j:u,i:o};K(r)}}}i<p.length?setTimeout(g,250):"function"===typeof a&&a()}for(var b=d||document.body,s=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],p=[],m=0;m<b.leng...
  h={};g()}};typeof define==="function"&&define.amd&&define("google-code-prettify",[],function(){return Y})})();}()
  </script>
</head>

<body class="<%= $embed =~ /nav/ ? 'has-nav' : '' %>">
  %= content
</body>
</html>
@@ layouts/mojopaste.txt.ep
%= content
@@ index.html.ep
%= form_for 'invalid', method => 'post', begin
%= include 'nav'
%= text_area 'paste', placeholder => $placeholder, tabindex => 1, class => 'editor'
% end
@@ chart.html.ep
%= include 'nav' if $embed =~ /nav/;
% if ($heading and $embed =~ /heading/) {
<h2><%= $heading %></h2>
% }
% if ($description and $embed =~ /description/) {
<p><%= $description %></p>
% }
% if ($embed =~ /graph/) {
<div id="chart"><%= $error %></div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
  % unless ($error) {
<script>
try {
  var chart = document.getElementById('chart');
  var tid, resize = function() { chart.style.height = (window.innerHeight - chart.offsetTop) + 'px' };
  resize();
  window.onresize = function() { if (tid) clearTimeout(tid); var tid = setTimeout(resize, 10); }
  new Morris.Line(<%== Mojo::JSON::encode_json(stash 'chart') %>);
} catch(e) {
  document.getElementById('chart').innerHTML = 'Invalid chart data. ' + e;
}
</script>
  % }
% }
@@ show.html.ep
%= include 'nav' if $embed =~ /nav/;
<pre class="prettyprint linenums"><%= $error || $paste %></pre>
@@ nav.html.ep
% my $paste_id = stash 'paste_id';
<nav>
  %= link_to $brand_link, class => 'brand', begin
    % if ($brand_logo) {
      %= image $brand_logo, alt => ''
    % }
    % if ($brand_name) {
      <span><%= $brand_name %></span>
    % }
  % end

  % if ($paste_id) {
    %= link_to 'New', 'index', class => 'btn'
    %= link_to 'Edit', url_for('index')->query(edit => $paste_id), class => 'btn'

    % if (exists stash->{chart}) {
      %= link_to 'Data', url_for('show', paste_id => $paste_id), class => 'btn'
    % } else {
      %= link_to 'Raw', url_for('show', paste_id => $paste_id, format => 'txt'), class => 'btn'
      %= link_to 'Graph', url_for('chart'), class => 'btn' if $enable_charts
    % }

  % } else {
    <button class="btn save" tabindex="2">Save</button>
  % }
</nav>
@@ show.txt.ep
Paste not found: <%= $paste_id %>
@@ images/logo.png (base64)
iVBORw0KGgoAAAANSUhEUgAAADkAAAA8CAYAAADc1RI2AAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QA/wD/AP+gvaeTAAAA
B3RJTUUH4wgIFSMADYS2WAAADbZJREFUaN7lmmuMHWd5x3/PzJw5t7141xvba8frux3HcVnZLSSB
kATRC6WlQi1VpUq0DfCh7YfSVGlBKW1EhRqpQuonhEQviEtRCaQUgcoHhGirEERCUzfGJDZ2HNvZ
zdq73t2zu+c68z79MLd3zjnePWu7KFInis/szHt5/s/9ed6B/weX3OoC79WPIkAbQ4jZ1FwHFygQ
0uRb8jdvTJC/po/hUcLFd5o0qy1apY4GG28q0daC23HYsuL9wfNheUHAFb76padvO0jvpmcqrLDM
Po7x2vnndtT/6dIfS1vvLVfK2jtU0zk5sC0NZK6z5q84Xy/g/2NIuDGHfqoggXuWf55XR1+qtp9d
+AVd7PzusTfdPXHgwD5EIjyqChpjU00BK4CBsNPhlZcv8voPr9wTdjrPhcJ/v+FAmu83aT2wONG5
XH9wZHR44sjRQ+wc20HFqyAoihBBlAikWH8DjaBBZahC4/LKVOOVlfe0neCNBvL3WeG70BiqaGDG
h4ar+L5PtVBl1B+JQeVnpDjjFwJUyxWGh4ecOrXtHff/RFtvBeSnMP40yDs8HFyRSFpza1eZry+k
o2zZqSVFgFBDjDFI+tZ5o4EEdT0QnIhyQYHABHQIMicjuZ8umNmdIhIQ/vRAvkf/lBbDjFw8y5G/
/Tr+cp0eB/l7RTrDPjNv/9WOiigSqWJKtliDLcC2BouAChhHMYJ5izzDg7/jR5BtZgI4DloqUDSC
GOUjn1m9SZAKL3/iRR7jKc7z5zJdeKRqVE+GxpxAcXObCrjLDT30xN/vPNeYOqDlCYIwQETy0lIL
b2yTmjBMQE1IR0KK3sLJIq0/MWpEtQ9IWMOYHznG+S/tBKuPf6jCzqU6f/jUJkEqyp99+F+YpeWc
+Pd3HS49e+YD1z3nt0bu3HGn57k5oWgMprUqmIZSLPqEYUg3QkUQ1ZQxgu2AQENwx3wWR+Te8/7U
vZNjAQVHcuuoQrvdDsO1tav+4tpXqqH+hRvI0sU7qsDa5kD+Io8xX71f9l2Y2V159sePl2vt39w3
fdLfe+AwhaKfC+YKnL20xIvPzTE2sZV9B6cIw4AwtOyxn2HaTIjv9x7ZTT1ocuVimW13jnLi2DbK
vhdJXDQC2Wq5Vy+/Onnte9//oHe99uJH7j/4mU8+c27z6lrAZ5S1glytHZfFtQcOHJ/2jxybjgK4
moj7Ao4IP764xHd/cI1dew/ycz97gkq5nM9sbCD0+ZvsuYwIO8YnOTV+mlOnTtNsX+Odb96J50Y+
TYBC1WfvkXsIaivl6z94/v1Pfuelz61WCy0GcFY5n20iMkVb7a2O69yxbXK3iiMY00Y1INSA0ASE

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.909 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )