Merge pull request #9 from patchon/master
Initial commit of Pastebin fork
This commit is contained in:
commit
c8af94296e
|
@ -1,2 +1,2 @@
|
|||
pastebin
|
||||
config.json
|
||||
*.db
|
||||
|
|
15
Makefile
15
Makefile
|
@ -2,18 +2,26 @@
|
|||
.PHONY: all test clean build install
|
||||
|
||||
GOFLAGS ?= $(GOFLAGS:)
|
||||
dbtype=$(shell grep dbtype config.json | cut -d \" -f 4)
|
||||
dbname=$(shell grep dbname config.json | cut -d \" -f 4)
|
||||
dbtable=$(shell grep dbtable config.json | cut -d \" -f 4)
|
||||
|
||||
all: clean install build
|
||||
|
||||
build:
|
||||
gofmt -w pastebin.go
|
||||
go build $(GOFLAGS) ./...
|
||||
ifeq ($(dbtype),sqlite3)
|
||||
cat database.sql | sed 's/pastebin/$(dbtable)/' | sqlite3 $(dbname)
|
||||
endif
|
||||
|
||||
install:
|
||||
go get github.com/dchest/uniuri
|
||||
go get github.com/ewhal/pygments
|
||||
go get github.com/go-sql-driver/mysql
|
||||
go get github.com/mattn/go-sqlite3
|
||||
go get github.com/gorilla/mux
|
||||
go get github.com/ChannelMeter/iso8601duration
|
||||
go get github.com/go-sql-driver/mysql
|
||||
go get github.com/lib/pq
|
||||
|
||||
test: install
|
||||
go install $(GOFLAGS) ./...
|
||||
|
@ -24,5 +32,4 @@ bench: install
|
|||
clean:
|
||||
go clean $(GOFLAGS) -i ./...
|
||||
rm -rf ./build
|
||||
|
||||
|
||||
rm -rf pastebin.db
|
||||
|
|
|
@ -1,505 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
||||
<title>{{.Title}}</title>
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/bootstrap-material-design.min.css" integrity="sha256-j3CLSRG31GkOu6kaeLh7XsRgL2YNvRl9aOtXoAYt320=" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/ripples.min.css" integrity="sha256-+Og2qJI9qzvKYwhGo/LYXg0FzE1BhEQfDsUSjKXQ3Bg=" crossorigin="anonymous">
|
||||
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>{{.Title}}</h1>
|
||||
</div>
|
||||
<form action="/api/redirect" method="post" class="form-horizontal">
|
||||
<fieldset>
|
||||
<div class="well" style="padding-top: 10px;">
|
||||
<div class="form-group is-empty" style="margin-top: 0px;">
|
||||
<textarea class="form-control" rows="1" id="textArea" name="title">{{.Title}}</textarea>
|
||||
<span class="help-block">Paste Title</span>
|
||||
</div>
|
||||
|
||||
<div class="form-group is-empty" style="margin-top: 0px;">
|
||||
<textarea class="form-control" rows="20" id="textArea" name="p" data-autoresize>{{printf "%s" .Body}}</textarea>
|
||||
<span class="help-block">Paste your text here</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-12">
|
||||
<div class="form-inline">
|
||||
<label for="syntax" class="col-sm-1 control-label">Language</label>
|
||||
<select id="lang" name="lang" class="form-control">
|
||||
<option value="" selected="selected">[Raw paste]</option>
|
||||
<option label=" " value=""> </option>
|
||||
<option value="abap">ABAP</option>
|
||||
<option value="abnf">ABNF</option>
|
||||
<option value="as">ActionScript</option>
|
||||
<option value="as3">ActionScript 3</option>
|
||||
<option value="ada">Ada</option>
|
||||
<option value="adl">ADL</option>
|
||||
<option value="agda">Agda</option>
|
||||
<option value="alloy">Alloy</option>
|
||||
<option value="at">AmbientTalk</option>
|
||||
<option value="antlr">ANTLR</option>
|
||||
<option value="antlr-as">ANTLR With ActionScript Target</option>
|
||||
<option value="antlr-csharp">ANTLR With C# Target</option>
|
||||
<option value="antlr-cpp">ANTLR With CPP Target</option>
|
||||
<option value="antlr-java">ANTLR With Java Target</option>
|
||||
<option value="antlr-objc">ANTLR With ObjectiveC Target</option>
|
||||
<option value="antlr-perl">ANTLR With Perl Target</option>
|
||||
<option value="antlr-python">ANTLR With Python Target</option>
|
||||
<option value="antlr-rb">ANTLR With Ruby Target</option>
|
||||
<option value="aconf">ApacheConf</option>
|
||||
<option value="apl">APL</option>
|
||||
<option value="applescript">AppleScript</option>
|
||||
<option value="arduino">Arduino</option>
|
||||
<option value="aspectj">AspectJ</option>
|
||||
<option value="aspx-cs">aspx-cs</option>
|
||||
<option value="aspx-vb">aspx-vb</option>
|
||||
<option value="asy">Asymptote</option>
|
||||
<option value="ahk">autohotkey</option>
|
||||
<option value="autoit">AutoIt</option>
|
||||
<option value="awk">Awk</option>
|
||||
<option value="basemake">Base Makefile</option>
|
||||
<option value="sh">Bash</option>
|
||||
<option value="console">Bash Session</option>
|
||||
<option value="bat">Batchfile</option>
|
||||
<option value="bbcode">BBCode</option>
|
||||
<option value="bc">BC</option>
|
||||
<option value="befunge">Befunge</option>
|
||||
<option value="b3d">BlitzBasic</option>
|
||||
<option value="bmax">BlitzMax</option>
|
||||
<option value="bnf">BNF</option>
|
||||
<option value="boo">Boo</option>
|
||||
<option value="boogie">Boogie</option>
|
||||
<option value="bf">Brainfuck</option>
|
||||
<option value="bro">Bro</option>
|
||||
<option value="bugs">BUGS</option>
|
||||
<option value="c">C</option>
|
||||
<option value="csharp">C#</option>
|
||||
<option value="cpp">C++</option>
|
||||
<option value="c-objdump">c-objdump</option>
|
||||
<option value="ca65">ca65 assembler</option>
|
||||
<option value="cadl">cADL</option>
|
||||
<option value="idl4">CAmkES</option>
|
||||
<option value="cbmbas">CBM BASIC V2</option>
|
||||
<option value="ceylon">Ceylon</option>
|
||||
<option value="cf3">CFEngine3</option>
|
||||
<option value="cfs">cfstatement</option>
|
||||
<option value="chai">ChaiScript</option>
|
||||
<option value="chpl">Chapel</option>
|
||||
<option value="cheetah">Cheetah</option>
|
||||
<option value="cirru">Cirru</option>
|
||||
<option value="clay">Clay</option>
|
||||
<option value="clj">Clojure</option>
|
||||
<option value="cljs">ClojureScript</option>
|
||||
<option value="cmake">CMake</option>
|
||||
<option value="cobol">COBOL</option>
|
||||
<option value="cobolfree">COBOLFree</option>
|
||||
<option value="coffee">CoffeeScript</option>
|
||||
<option value="cfc">Coldfusion CFC</option>
|
||||
<option value="cfm">Coldfusion HTML</option>
|
||||
<option value="cl">Common Lisp</option>
|
||||
<option value="cp">Component Pascal</option>
|
||||
<option value="coq">Coq</option>
|
||||
<option value="cpp-objdump">cpp-objdump</option>
|
||||
<option value="cpsa">CPSA</option>
|
||||
<option value="pcmk">Crmsh</option>
|
||||
<option value="croc">Croc</option>
|
||||
<option value="cry">Cryptol</option>
|
||||
<option value="csound-csd">Csound Document</option>
|
||||
<option value="csound">Csound Orchestra</option>
|
||||
<option value="csound-sco">Csound Score</option>
|
||||
<option value="css">CSS</option>
|
||||
<option value="css+jinja">CSS+Django/Jinja</option>
|
||||
<option value="css+genshi">CSS+Genshi Text</option>
|
||||
<option value="css+lasso">CSS+Lasso</option>
|
||||
<option value="css+mako">CSS+Mako</option>
|
||||
<option value="css+mozpreproc">CSS+mozpreproc</option>
|
||||
<option value="css+myghty">CSS+Myghty</option>
|
||||
<option value="css+php">CSS+PHP</option>
|
||||
<option value="css+erb">CSS+Ruby</option>
|
||||
<option value="css+smarty">CSS+Smarty</option>
|
||||
<option value="cu">CUDA</option>
|
||||
<option value="cypher">Cypher</option>
|
||||
<option value="pyx">Cython</option>
|
||||
<option value="d">D</option>
|
||||
<option value="d-objdump">d-objdump</option>
|
||||
<option value="dpatch">Darcs Patch</option>
|
||||
<option value="dart">Dart</option>
|
||||
<option value="control">Debian Control file</option>
|
||||
<option value="debsources">Debian Sourcelist</option>
|
||||
<option value="pas">Delphi</option>
|
||||
<option value="dg">dg</option>
|
||||
<option value="diff">Diff</option>
|
||||
<option value="jinja">Django/Jinja</option>
|
||||
<option value="docker">Docker</option>
|
||||
<option value="dtd">DTD</option>
|
||||
<option value="duel">Duel</option>
|
||||
<option value="dylan">Dylan</option>
|
||||
<option value="dylan-repl">Dylan session</option>
|
||||
<option value="lid">DylanLID</option>
|
||||
<option value="eg">Earl Grey</option>
|
||||
<option value="easytrieve">Easytrieve</option>
|
||||
<option value="ebnf">EBNF</option>
|
||||
<option value="ec">eC</option>
|
||||
<option value="ecl">ECL</option>
|
||||
<option value="eiffel">Eiffel</option>
|
||||
<option value="ex">Elixir</option>
|
||||
<option value="iex">Elixir iex session</option>
|
||||
<option value="elm">Elm</option>
|
||||
<option value="emacs">EmacsLisp</option>
|
||||
<option value="ragel-em">Embedded Ragel</option>
|
||||
<option value="erb">ERB</option>
|
||||
<option value="erlang">Erlang</option>
|
||||
<option value="erl">Erlang erl session</option>
|
||||
<option value="evoque">Evoque</option>
|
||||
<option value="ezhil">Ezhil</option>
|
||||
<option value="factor">Factor</option>
|
||||
<option value="fy">Fancy</option>
|
||||
<option value="fan">Fantom</option>
|
||||
<option value="flx">Felix</option>
|
||||
<option value="fish">Fish</option>
|
||||
<option value="fortran">Fortran</option>
|
||||
<option value="fortranfixed">FortranFixed</option>
|
||||
<option value="vfp">FoxPro</option>
|
||||
<option value="fsharp">FSharp</option>
|
||||
<option value="gap">GAP</option>
|
||||
<option value="gas">GAS</option>
|
||||
<option value="kid">Genshi</option>
|
||||
<option value="genshitext">Genshi Text</option>
|
||||
<option value="po">Gettext Catalog</option>
|
||||
<option value="gherkin">Gherkin</option>
|
||||
<option value="glsl">GLSL</option>
|
||||
<option value="gnuplot">Gnuplot</option>
|
||||
<option value="go">Go</option>
|
||||
<option value="golo">Golo</option>
|
||||
<option value="gooddata-cl">GoodData-CL</option>
|
||||
<option value="gosu">Gosu</option>
|
||||
<option value="gst">Gosu Template</option>
|
||||
<option value="man">Groff</option>
|
||||
<option value="groovy">Groovy</option>
|
||||
<option value="haml">Haml</option>
|
||||
<option value="handlebars">Handlebars</option>
|
||||
<option value="hs">Haskell</option>
|
||||
<option value="hx">Haxe</option>
|
||||
<option value="hexdump">Hexdump</option>
|
||||
<option value="html">HTML</option>
|
||||
<option value="htmlcheetah">HTML+Cheetah</option>
|
||||
<option value="html+jinja">HTML+Django/Jinja</option>
|
||||
<option value="html+evoque">HTML+Evoque</option>
|
||||
<option value="html+kid">HTML+Genshi</option>
|
||||
<option value="html+handlebars">HTML+Handlebars</option>
|
||||
<option value="html+lasso">HTML+Lasso</option>
|
||||
<option value="html+mako">HTML+Mako</option>
|
||||
<option value="html+myghty">HTML+Myghty</option>
|
||||
<option value="html+php">HTML+PHP</option>
|
||||
<option value="html+smarty">HTML+Smarty</option>
|
||||
<option value="html+twig">HTML+Twig</option>
|
||||
<option value="html+velocity">HTML+Velocity</option>
|
||||
<option value="http">HTTP</option>
|
||||
<option value="hxml">Hxml</option>
|
||||
<option value="hylang">Hy</option>
|
||||
<option value="hy">Hybris</option>
|
||||
<option value="idl">IDL</option>
|
||||
<option value="idr">Idris</option>
|
||||
<option value="igor">Igor</option>
|
||||
<option value="i6">Inform 6</option>
|
||||
<option value="i6t">Inform 6 template</option>
|
||||
<option value="i7">Inform 7</option>
|
||||
<option value="ini">INI</option>
|
||||
<option value="io">Io</option>
|
||||
<option value="ik">Ioke</option>
|
||||
<option value="irc">IRC logs</option>
|
||||
<option value="isabelle">Isabelle</option>
|
||||
<option value="j">J</option>
|
||||
<option value="jade">Jade</option>
|
||||
<option value="jags">JAGS</option>
|
||||
<option value="jasmin">Jasmin</option>
|
||||
<option value="java">Java</option>
|
||||
<option value="jsp">Java Server Page</option>
|
||||
<option value="js">JavaScript</option>
|
||||
<option value="js+cheetah">JavaScript+Cheetah</option>
|
||||
<option value="js+jinja">JavaScript+Django/Jinja</option>
|
||||
<option value="js+genshi">JavaScript+Genshi Text</option>
|
||||
<option value="js+lasso">JavaScript+Lasso</option>
|
||||
<option value="js+mako">JavaScript+Mako</option>
|
||||
<option value="javascript+mozpreproc">Javascript+mozpreproc</option>
|
||||
<option value="js+myghty">JavaScript+Myghty</option>
|
||||
<option value="js+php">JavaScript+PHP</option>
|
||||
<option value="js+erb">JavaScript+Ruby</option>
|
||||
<option value="js+smarty">JavaScript+Smarty</option>
|
||||
<option value="jcl">JCL</option>
|
||||
<option value="json">JSON</option>
|
||||
<option value="jsonld">JSON-LD</option>
|
||||
<option value="jl">Julia</option>
|
||||
<option value="jlcon">Julia console</option>
|
||||
<option value="kal">Kal</option>
|
||||
<option value="kconfig">Kconfig</option>
|
||||
<option value="koka">Koka</option>
|
||||
<option value="kotlin">Kotlin</option>
|
||||
<option value="lasso">Lasso</option>
|
||||
<option value="lean">Lean</option>
|
||||
<option value="less">LessCss</option>
|
||||
<option value="lighty">Lighttpd configuration file</option>
|
||||
<option value="limbo">Limbo</option>
|
||||
<option value="liquid">liquid</option>
|
||||
<option value="lagda">Literate Agda</option>
|
||||
<option value="lcry">Literate Cryptol</option>
|
||||
<option value="lhs">Literate Haskell</option>
|
||||
<option value="lidr">Literate Idris</option>
|
||||
<option value="livescript">LiveScript</option>
|
||||
<option value="llvm">LLVM</option>
|
||||
<option value="logos">Logos</option>
|
||||
<option value="logtalk">Logtalk</option>
|
||||
<option value="lsl">LSL</option>
|
||||
<option value="lua">Lua</option>
|
||||
<option value="mf">Makefile</option>
|
||||
<option value="mako">Mako</option>
|
||||
<option value="maql">MAQL</option>
|
||||
<option value="mask">Mask</option>
|
||||
<option value="mason">Mason</option>
|
||||
<option value="nb">Mathematica</option>
|
||||
<option value="matlab">Matlab</option>
|
||||
<option value="matlabsession">Matlab session</option>
|
||||
<option value="minid">MiniD</option>
|
||||
<option value="modelica">Modelica</option>
|
||||
<option value="m2">Modula-2</option>
|
||||
<option value="moin">MoinMoin/Trac Wiki markup</option>
|
||||
<option value="monkey">Monkey</option>
|
||||
<option value="moo">MOOCode</option>
|
||||
<option value="moon">MoonScript</option>
|
||||
<option value="mozhashpreproc">mozhashpreproc</option>
|
||||
<option value="mozpercentpreproc">mozpercentpreproc</option>
|
||||
<option value="mql">MQL</option>
|
||||
<option value="msc">Mscgen</option>
|
||||
<option value="doscon">MSDOS Session</option>
|
||||
<option value="mupad">MuPAD</option>
|
||||
<option value="mxml">MXML</option>
|
||||
<option value="myghty">Myghty</option>
|
||||
<option value="mysql">MySQL</option>
|
||||
<option value="nasm">NASM</option>
|
||||
<option value="nemerle">Nemerle</option>
|
||||
<option value="nesc">nesC</option>
|
||||
<option value="newlisp">NewLisp</option>
|
||||
<option value="newspeak">Newspeak</option>
|
||||
<option value="nginx">Nginx configuration file</option>
|
||||
<option value="nim">Nimrod</option>
|
||||
<option value="nit">Nit</option>
|
||||
<option value="nix">Nix</option>
|
||||
<option value="nsi">NSIS</option>
|
||||
<option value="numpy">NumPy</option>
|
||||
<option value="objdump">objdump</option>
|
||||
<option value="objdump-nasm">objdump-nasm</option>
|
||||
<option value="objc">Objective-C</option>
|
||||
<option value="objc++">Objective-C++</option>
|
||||
<option value="objj">Objective-J</option>
|
||||
<option value="ocaml">OCaml</option>
|
||||
<option value="octave">Octave</option>
|
||||
<option value="odin">ODIN</option>
|
||||
<option value="ooc">Ooc</option>
|
||||
<option value="opa">Opa</option>
|
||||
<option value="abl">OpenEdge ABL</option>
|
||||
<option value="pacmanconf">PacmanConf</option>
|
||||
<option value="pan">Pan</option>
|
||||
<option value="parasail">ParaSail</option>
|
||||
<option value="pawn">Pawn</option>
|
||||
<option value="pl">Perl</option>
|
||||
<option value="pl6">Perl6</option>
|
||||
<option value="php">PHP</option>
|
||||
<option value="pig">Pig</option>
|
||||
<option value="pike">Pike</option>
|
||||
<option value="pkgconfig">PkgConfig</option>
|
||||
<option value="plpgsql">PL/pgSQL</option>
|
||||
<option value="psql">PostgreSQL console (psql)</option>
|
||||
<option value="postgres">PostgreSQL SQL dialect</option>
|
||||
<option value="postscr">PostScript</option>
|
||||
<option value="pov">POVRay</option>
|
||||
<option value="ps1">PowerShell</option>
|
||||
<option value="ps1con">PowerShell Session</option>
|
||||
<option value="praat">Praat</option>
|
||||
<option value="prolog">Prolog</option>
|
||||
<option value="properties">Properties</option>
|
||||
<option value="proto">Protocol Buffer</option>
|
||||
<option value="puppet">Puppet</option>
|
||||
<option value="pypy">PyPy Log</option>
|
||||
<option value="py">Python</option>
|
||||
<option value="py3">Python 3</option>
|
||||
<option value="py3tb">Python 3.0 Traceback</option>
|
||||
<option value="pycon">Python console session</option>
|
||||
<option value="pytb">Python Traceback</option>
|
||||
<option value="basic">QBasic</option>
|
||||
<option value="qml">QML</option>
|
||||
<option value="qvt">QVTO</option>
|
||||
<option value="rkt">Racket</option>
|
||||
<option value="ragel">Ragel</option>
|
||||
<option value="ragel-c">Ragel in C Host</option>
|
||||
<option value="ragel-cpp">Ragel in CPP Host</option>
|
||||
<option value="ragel-d">Ragel in D Host</option>
|
||||
<option value="ragel-java">Ragel in Java Host</option>
|
||||
<option value="ragel-objc">Ragel in Objective C Host</option>
|
||||
<option value="ragel-rb">Ragel in Ruby Host</option>
|
||||
<option value="raw">Raw token data</option>
|
||||
<option value="rout">RConsole</option>
|
||||
<option value="rd">Rd</option>
|
||||
<option value="rebol">REBOL</option>
|
||||
<option value="red">Red</option>
|
||||
<option value="redcode">Redcode</option>
|
||||
<option value="registry">reg</option>
|
||||
<option value="resource">ResourceBundle</option>
|
||||
<option value="rst">reStructuredText</option>
|
||||
<option value="rexx">Rexx</option>
|
||||
<option value="rhtml">RHTML</option>
|
||||
<option value="roboconf-graph">Roboconf Graph</option>
|
||||
<option value="roboconf-instances">Roboconf Instances</option>
|
||||
<option value="robotframework">RobotFramework</option>
|
||||
<option value="spec">RPMSpec</option>
|
||||
<option value="rql">RQL</option>
|
||||
<option value="rsl">RSL</option>
|
||||
<option value="rb">Ruby</option>
|
||||
<option value="irb">Ruby irb session</option>
|
||||
<option value="rust">Rust</option>
|
||||
<option value="s">S</option>
|
||||
<option value="sass">Sass</option>
|
||||
<option value="scala">Scala</option>
|
||||
<option value="ssp">Scalate Server Page</option>
|
||||
<option value="scaml">Scaml</option>
|
||||
<option value="scm">Scheme</option>
|
||||
<option value="scilab">Scilab</option>
|
||||
<option value="scss">SCSS</option>
|
||||
<option value="shen">Shen</option>
|
||||
<option value="slim">Slim</option>
|
||||
<option value="smali">Smali</option>
|
||||
<option value="st">Smalltalk</option>
|
||||
<option value="smarty">Smarty</option>
|
||||
<option value="snobol">Snobol</option>
|
||||
<option value="sp">SourcePawn</option>
|
||||
<option value="sparql">SPARQL</option>
|
||||
<option value="sql">SQL</option>
|
||||
<option value="sqlite3">sqlite3con</option>
|
||||
<option value="squid">SquidConf</option>
|
||||
<option value="stan">Stan</option>
|
||||
<option value="sml">Standard ML</option>
|
||||
<option value="sc">SuperCollider</option>
|
||||
<option value="swift">Swift</option>
|
||||
<option value="swig">SWIG</option>
|
||||
<option value="sv">systemverilog</option>
|
||||
<option value="tads3">TADS 3</option>
|
||||
<option value="tap">TAP</option>
|
||||
<option value="tcl">Tcl</option>
|
||||
<option value="csh">Tcsh</option>
|
||||
<option value="tcshcon">Tcsh Session</option>
|
||||
<option value="tea">Tea</option>
|
||||
<option value="termcap">Termcap</option>
|
||||
<option value="terminfo">Terminfo</option>
|
||||
<option value="tf">Terraform</option>
|
||||
<option value="tex">TeX</option>
|
||||
<option value="text">Text only</option>
|
||||
<option value="thrift">Thrift</option>
|
||||
<option value="todotxt">Todotxt</option>
|
||||
<option value="rts">TrafficScript</option>
|
||||
<option value="treetop">Treetop</option>
|
||||
<option value="turtle">Turtle</option>
|
||||
<option value="twig">Twig</option>
|
||||
<option value="ts">TypeScript</option>
|
||||
<option value="urbiscript">UrbiScript</option>
|
||||
<option value="vala">Vala</option>
|
||||
<option value="vbnet">VB.net</option>
|
||||
<option value="vctreestatus">VCTreeStatus</option>
|
||||
<option value="velocity">Velocity</option>
|
||||
<option value="v">verilog</option>
|
||||
<option value="vgl">VGL</option>
|
||||
<option value="vhdl">vhdl</option>
|
||||
<option value="vim">VimL</option>
|
||||
<option value="x10">X10</option>
|
||||
<option value="xml">XML</option>
|
||||
<option value="xml+cheetah">XML+Cheetah</option>
|
||||
<option value="xml+jinja">XML+Django/Jinja</option>
|
||||
<option value="xml+evoque">XML+Evoque</option>
|
||||
<option value="xml+lasso">XML+Lasso</option>
|
||||
<option value="xml+mako">XML+Mako</option>
|
||||
<option value="xml+myghty">XML+Myghty</option>
|
||||
<option value="xml+php">XML+PHP</option>
|
||||
<option value="xml+erb">XML+Ruby</option>
|
||||
<option value="xml+smarty">XML+Smarty</option>
|
||||
<option value="xml+velocity">XML+Velocity</option>
|
||||
<option value="xq">XQuery</option>
|
||||
<option value="xslt">XSLT</option>
|
||||
<option value="xtend">Xtend</option>
|
||||
<option value="xul+mozpreproc">XUL+mozpreproc</option>
|
||||
<option value="yaml">YAML</option>
|
||||
<option value="sls">YAML+Jinja</option>
|
||||
<option value="zephir">Zephir</option>
|
||||
</select>
|
||||
|
||||
<select id="expiry" name="expiry" class="form-control">
|
||||
<option value="PT5M">5 minutes</option>
|
||||
<option value="PT1H">1 hour</option>
|
||||
<option value="P1D">1 day</option>
|
||||
<option value="P7D">1 week</option>
|
||||
<option value="P30D">1 month</option>
|
||||
<option value="P1Y">1 year</option>
|
||||
<option value="P20Y" selected>Forever</option>
|
||||
</select>
|
||||
|
||||
<button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button>
|
||||
<a href="{{.Home}}" class="btn btn-raised btn-primary">Home</a>
|
||||
<a href="{{.Download}}" class="btn btn-raised btn-primary">Download</a>
|
||||
<a href="{{.Raw}}" class="btn btn-raised btn-primary">Raw</a>
|
||||
<a href="{{.Clone}}" class="btn btn-raised btn-primary">Clone</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="well">
|
||||
<code>$ <command> | curl -X POST -F 'p=<-' https://p.pantsu.cat/api</code><br/>
|
||||
<code>POST https://p.pantsu.cat/api </code><br/>
|
||||
<code>GET https://p.pantsu.cat/api/{PASTE} </code><br/>
|
||||
<code>GET: https://p.pantsu.cat/p/(PASTE)/(lang)</code><br/>
|
||||
<code>$ curl -X DEL -F 'delkey=' https://p.pantsu.cat/api</code><br/>
|
||||
<p>Source: <a href="https://github.com/ewhal/Pastebin">Github</a></p>
|
||||
<p>Tools: <a href="https://github.com/ewhal/scripts/blob/master/paste.sh">Paste.sh</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/material.min.js" integrity="sha256-uZbIqasulk7Y9yEwknbeQ0FpF3aUhtPwuggbpvQaI8Y=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/ripples.min.js" integrity="sha256-TY/EO/++Ug/P+fSBjaqlmtuphCBKwlP7TOnS+SGnN8g=" crossorigin="anonymous"></script>
|
||||
<script>
|
||||
$.material.init();
|
||||
jQuery.each(jQuery('textarea[data-autoresize]'), function() {
|
||||
var offset = this.offsetHeight - this.clientHeight;
|
||||
|
||||
var resizeTextarea = function(el) {
|
||||
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
|
||||
};
|
||||
jQuery(this).on('keyup input', function() { resizeTextarea(this); });
|
||||
resizeTextarea(this);
|
||||
});
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -2,497 +2,183 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
||||
<title>Pantsu Paste</title>
|
||||
|
||||
<title>{{ .Title }}</title>
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/bootstrap-material-design.min.css" integrity="sha256-j3CLSRG31GkOu6kaeLh7XsRgL2YNvRl9aOtXoAYt320=" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/ripples.min.css" integrity="sha256-+Og2qJI9qzvKYwhGo/LYXg0FzE1BhEQfDsUSjKXQ3Bg=" crossorigin="anonymous">
|
||||
|
||||
<!-- Sweetalert css -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css">
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- pastebin stylesheet -->
|
||||
<link rel="stylesheet" type="text/css" href="/assets/pastebin.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>Pantsu Paste</h1>
|
||||
<h1 id="page-title">{{ .Title }}</h1>
|
||||
</div>
|
||||
<form action="/api/redirect" method="post" class="form-horizontal">
|
||||
<fieldset>
|
||||
<div class="well" style="padding-top: 10px; resize: both;">
|
||||
<div class="form-group is-empty" style="margin-top: 0px;">
|
||||
<textarea class="form-control" rows="1" id="textArea" name="title" placeholder="Title"></textarea>
|
||||
|
||||
<div class="well">
|
||||
<div class="form-group is-empty form-no-margin">
|
||||
<textarea class="form-control" rows="1" id="title" name="title" placeholder="Title" maxlength="50">{{ .PasteTitle }}</textarea>
|
||||
<span class="help-block">Paste Title</span>
|
||||
</div>
|
||||
<div class="form-group is-empty" style="margin-top: 0px;">
|
||||
<textarea class="form-control" rows="20" id="textArea" name="p" placeholder="Paste" style="resize: both;" data-autoresize></textarea>
|
||||
|
||||
<div class="form-group is-empty form-no-margin" >
|
||||
<textarea class="form-control" rows="20" id="paste" name="paste" placeholder="Paste" data-autoresize>{{printf "%s" .Body}}</textarea>
|
||||
<span class="help-block">Paste your text here</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-md-12">
|
||||
<div class="form-inline">
|
||||
<label for="syntax" class="col-sm-1 control-label">Language</label>
|
||||
<select id="lang" name="lang" class="form-control">
|
||||
<option value="" selected="selected">[Raw paste]</option>
|
||||
<option label=" " value=""> </option>
|
||||
<option value="abap">ABAP</option>
|
||||
<option value="abnf">ABNF</option>
|
||||
<option value="as">ActionScript</option>
|
||||
<option value="as3">ActionScript 3</option>
|
||||
<option value="ada">Ada</option>
|
||||
<option value="adl">ADL</option>
|
||||
<option value="agda">Agda</option>
|
||||
<option value="alloy">Alloy</option>
|
||||
<option value="at">AmbientTalk</option>
|
||||
<option value="antlr">ANTLR</option>
|
||||
<option value="antlr-as">ANTLR With ActionScript Target</option>
|
||||
<option value="antlr-csharp">ANTLR With C# Target</option>
|
||||
<option value="antlr-cpp">ANTLR With CPP Target</option>
|
||||
<option value="antlr-java">ANTLR With Java Target</option>
|
||||
<option value="antlr-objc">ANTLR With ObjectiveC Target</option>
|
||||
<option value="antlr-perl">ANTLR With Perl Target</option>
|
||||
<option value="antlr-python">ANTLR With Python Target</option>
|
||||
<option value="antlr-rb">ANTLR With Ruby Target</option>
|
||||
<option value="aconf">ApacheConf</option>
|
||||
<option value="apl">APL</option>
|
||||
<option value="applescript">AppleScript</option>
|
||||
<option value="arduino">Arduino</option>
|
||||
<option value="aspectj">AspectJ</option>
|
||||
<option value="aspx-cs">aspx-cs</option>
|
||||
<option value="aspx-vb">aspx-vb</option>
|
||||
<option value="asy">Asymptote</option>
|
||||
<option value="ahk">autohotkey</option>
|
||||
<option value="autoit">AutoIt</option>
|
||||
<option value="awk">Awk</option>
|
||||
<option value="basemake">Base Makefile</option>
|
||||
<option value="sh">Bash</option>
|
||||
<option value="console">Bash Session</option>
|
||||
<option value="bat">Batchfile</option>
|
||||
<option value="bbcode">BBCode</option>
|
||||
<option value="bc">BC</option>
|
||||
<option value="befunge">Befunge</option>
|
||||
<option value="b3d">BlitzBasic</option>
|
||||
<option value="bmax">BlitzMax</option>
|
||||
<option value="bnf">BNF</option>
|
||||
<option value="boo">Boo</option>
|
||||
<option value="boogie">Boogie</option>
|
||||
<option value="bf">Brainfuck</option>
|
||||
<option value="bro">Bro</option>
|
||||
<option value="bugs">BUGS</option>
|
||||
<option value="c">C</option>
|
||||
<option value="csharp">C#</option>
|
||||
<option value="cpp">C++</option>
|
||||
<option value="c-objdump">c-objdump</option>
|
||||
<option value="ca65">ca65 assembler</option>
|
||||
<option value="cadl">cADL</option>
|
||||
<option value="idl4">CAmkES</option>
|
||||
<option value="cbmbas">CBM BASIC V2</option>
|
||||
<option value="ceylon">Ceylon</option>
|
||||
<option value="cf3">CFEngine3</option>
|
||||
<option value="cfs">cfstatement</option>
|
||||
<option value="chai">ChaiScript</option>
|
||||
<option value="chpl">Chapel</option>
|
||||
<option value="cheetah">Cheetah</option>
|
||||
<option value="cirru">Cirru</option>
|
||||
<option value="clay">Clay</option>
|
||||
<option value="clj">Clojure</option>
|
||||
<option value="cljs">ClojureScript</option>
|
||||
<option value="cmake">CMake</option>
|
||||
<option value="cobol">COBOL</option>
|
||||
<option value="cobolfree">COBOLFree</option>
|
||||
<option value="coffee">CoffeeScript</option>
|
||||
<option value="cfc">Coldfusion CFC</option>
|
||||
<option value="cfm">Coldfusion HTML</option>
|
||||
<option value="cl">Common Lisp</option>
|
||||
<option value="cp">Component Pascal</option>
|
||||
<option value="coq">Coq</option>
|
||||
<option value="cpp-objdump">cpp-objdump</option>
|
||||
<option value="cpsa">CPSA</option>
|
||||
<option value="pcmk">Crmsh</option>
|
||||
<option value="croc">Croc</option>
|
||||
<option value="cry">Cryptol</option>
|
||||
<option value="csound-csd">Csound Document</option>
|
||||
<option value="csound">Csound Orchestra</option>
|
||||
<option value="csound-sco">Csound Score</option>
|
||||
<option value="css">CSS</option>
|
||||
<option value="css+jinja">CSS+Django/Jinja</option>
|
||||
<option value="css+genshi">CSS+Genshi Text</option>
|
||||
<option value="css+lasso">CSS+Lasso</option>
|
||||
<option value="css+mako">CSS+Mako</option>
|
||||
<option value="css+mozpreproc">CSS+mozpreproc</option>
|
||||
<option value="css+myghty">CSS+Myghty</option>
|
||||
<option value="css+php">CSS+PHP</option>
|
||||
<option value="css+erb">CSS+Ruby</option>
|
||||
<option value="css+smarty">CSS+Smarty</option>
|
||||
<option value="cu">CUDA</option>
|
||||
<option value="cypher">Cypher</option>
|
||||
<option value="pyx">Cython</option>
|
||||
<option value="d">D</option>
|
||||
<option value="d-objdump">d-objdump</option>
|
||||
<option value="dpatch">Darcs Patch</option>
|
||||
<option value="dart">Dart</option>
|
||||
<option value="control">Debian Control file</option>
|
||||
<option value="debsources">Debian Sourcelist</option>
|
||||
<option value="pas">Delphi</option>
|
||||
<option value="dg">dg</option>
|
||||
<option value="diff">Diff</option>
|
||||
<option value="jinja">Django/Jinja</option>
|
||||
<option value="docker">Docker</option>
|
||||
<option value="dtd">DTD</option>
|
||||
<option value="duel">Duel</option>
|
||||
<option value="dylan">Dylan</option>
|
||||
<option value="dylan-repl">Dylan session</option>
|
||||
<option value="lid">DylanLID</option>
|
||||
<option value="eg">Earl Grey</option>
|
||||
<option value="easytrieve">Easytrieve</option>
|
||||
<option value="ebnf">EBNF</option>
|
||||
<option value="ec">eC</option>
|
||||
<option value="ecl">ECL</option>
|
||||
<option value="eiffel">Eiffel</option>
|
||||
<option value="ex">Elixir</option>
|
||||
<option value="iex">Elixir iex session</option>
|
||||
<option value="elm">Elm</option>
|
||||
<option value="emacs">EmacsLisp</option>
|
||||
<option value="ragel-em">Embedded Ragel</option>
|
||||
<option value="erb">ERB</option>
|
||||
<option value="erlang">Erlang</option>
|
||||
<option value="erl">Erlang erl session</option>
|
||||
<option value="evoque">Evoque</option>
|
||||
<option value="ezhil">Ezhil</option>
|
||||
<option value="factor">Factor</option>
|
||||
<option value="fy">Fancy</option>
|
||||
<option value="fan">Fantom</option>
|
||||
<option value="flx">Felix</option>
|
||||
<option value="fish">Fish</option>
|
||||
<option value="fortran">Fortran</option>
|
||||
<option value="fortranfixed">FortranFixed</option>
|
||||
<option value="vfp">FoxPro</option>
|
||||
<option value="fsharp">FSharp</option>
|
||||
<option value="gap">GAP</option>
|
||||
<option value="gas">GAS</option>
|
||||
<option value="kid">Genshi</option>
|
||||
<option value="genshitext">Genshi Text</option>
|
||||
<option value="po">Gettext Catalog</option>
|
||||
<option value="gherkin">Gherkin</option>
|
||||
<option value="glsl">GLSL</option>
|
||||
<option value="gnuplot">Gnuplot</option>
|
||||
<option value="go">Go</option>
|
||||
<option value="golo">Golo</option>
|
||||
<option value="gooddata-cl">GoodData-CL</option>
|
||||
<option value="gosu">Gosu</option>
|
||||
<option value="gst">Gosu Template</option>
|
||||
<option value="man">Groff</option>
|
||||
<option value="groovy">Groovy</option>
|
||||
<option value="haml">Haml</option>
|
||||
<option value="handlebars">Handlebars</option>
|
||||
<option value="hs">Haskell</option>
|
||||
<option value="hx">Haxe</option>
|
||||
<option value="hexdump">Hexdump</option>
|
||||
<option value="html">HTML</option>
|
||||
<option value="htmlcheetah">HTML+Cheetah</option>
|
||||
<option value="html+jinja">HTML+Django/Jinja</option>
|
||||
<option value="html+evoque">HTML+Evoque</option>
|
||||
<option value="html+kid">HTML+Genshi</option>
|
||||
<option value="html+handlebars">HTML+Handlebars</option>
|
||||
<option value="html+lasso">HTML+Lasso</option>
|
||||
<option value="html+mako">HTML+Mako</option>
|
||||
<option value="html+myghty">HTML+Myghty</option>
|
||||
<option value="html+php">HTML+PHP</option>
|
||||
<option value="html+smarty">HTML+Smarty</option>
|
||||
<option value="html+twig">HTML+Twig</option>
|
||||
<option value="html+velocity">HTML+Velocity</option>
|
||||
<option value="http">HTTP</option>
|
||||
<option value="hxml">Hxml</option>
|
||||
<option value="hylang">Hy</option>
|
||||
<option value="hy">Hybris</option>
|
||||
<option value="idl">IDL</option>
|
||||
<option value="idr">Idris</option>
|
||||
<option value="igor">Igor</option>
|
||||
<option value="i6">Inform 6</option>
|
||||
<option value="i6t">Inform 6 template</option>
|
||||
<option value="i7">Inform 7</option>
|
||||
<option value="ini">INI</option>
|
||||
<option value="io">Io</option>
|
||||
<option value="ik">Ioke</option>
|
||||
<option value="irc">IRC logs</option>
|
||||
<option value="isabelle">Isabelle</option>
|
||||
<option value="j">J</option>
|
||||
<option value="jade">Jade</option>
|
||||
<option value="jags">JAGS</option>
|
||||
<option value="jasmin">Jasmin</option>
|
||||
<option value="java">Java</option>
|
||||
<option value="jsp">Java Server Page</option>
|
||||
<option value="js">JavaScript</option>
|
||||
<option value="js+cheetah">JavaScript+Cheetah</option>
|
||||
<option value="js+jinja">JavaScript+Django/Jinja</option>
|
||||
<option value="js+genshi">JavaScript+Genshi Text</option>
|
||||
<option value="js+lasso">JavaScript+Lasso</option>
|
||||
<option value="js+mako">JavaScript+Mako</option>
|
||||
<option value="javascript+mozpreproc">Javascript+mozpreproc</option>
|
||||
<option value="js+myghty">JavaScript+Myghty</option>
|
||||
<option value="js+php">JavaScript+PHP</option>
|
||||
<option value="js+erb">JavaScript+Ruby</option>
|
||||
<option value="js+smarty">JavaScript+Smarty</option>
|
||||
<option value="jcl">JCL</option>
|
||||
<option value="json">JSON</option>
|
||||
<option value="jsonld">JSON-LD</option>
|
||||
<option value="jl">Julia</option>
|
||||
<option value="jlcon">Julia console</option>
|
||||
<option value="kal">Kal</option>
|
||||
<option value="kconfig">Kconfig</option>
|
||||
<option value="koka">Koka</option>
|
||||
<option value="kotlin">Kotlin</option>
|
||||
<option value="lasso">Lasso</option>
|
||||
<option value="lean">Lean</option>
|
||||
<option value="less">LessCss</option>
|
||||
<option value="lighty">Lighttpd configuration file</option>
|
||||
<option value="limbo">Limbo</option>
|
||||
<option value="liquid">liquid</option>
|
||||
<option value="lagda">Literate Agda</option>
|
||||
<option value="lcry">Literate Cryptol</option>
|
||||
<option value="lhs">Literate Haskell</option>
|
||||
<option value="lidr">Literate Idris</option>
|
||||
<option value="livescript">LiveScript</option>
|
||||
<option value="llvm">LLVM</option>
|
||||
<option value="logos">Logos</option>
|
||||
<option value="logtalk">Logtalk</option>
|
||||
<option value="lsl">LSL</option>
|
||||
<option value="lua">Lua</option>
|
||||
<option value="mf">Makefile</option>
|
||||
<option value="mako">Mako</option>
|
||||
<option value="maql">MAQL</option>
|
||||
<option value="mask">Mask</option>
|
||||
<option value="mason">Mason</option>
|
||||
<option value="nb">Mathematica</option>
|
||||
<option value="matlab">Matlab</option>
|
||||
<option value="matlabsession">Matlab session</option>
|
||||
<option value="minid">MiniD</option>
|
||||
<option value="modelica">Modelica</option>
|
||||
<option value="m2">Modula-2</option>
|
||||
<option value="moin">MoinMoin/Trac Wiki markup</option>
|
||||
<option value="monkey">Monkey</option>
|
||||
<option value="moo">MOOCode</option>
|
||||
<option value="moon">MoonScript</option>
|
||||
<option value="mozhashpreproc">mozhashpreproc</option>
|
||||
<option value="mozpercentpreproc">mozpercentpreproc</option>
|
||||
<option value="mql">MQL</option>
|
||||
<option value="msc">Mscgen</option>
|
||||
<option value="doscon">MSDOS Session</option>
|
||||
<option value="mupad">MuPAD</option>
|
||||
<option value="mxml">MXML</option>
|
||||
<option value="myghty">Myghty</option>
|
||||
<option value="mysql">MySQL</option>
|
||||
<option value="nasm">NASM</option>
|
||||
<option value="nemerle">Nemerle</option>
|
||||
<option value="nesc">nesC</option>
|
||||
<option value="newlisp">NewLisp</option>
|
||||
<option value="newspeak">Newspeak</option>
|
||||
<option value="nginx">Nginx configuration file</option>
|
||||
<option value="nim">Nimrod</option>
|
||||
<option value="nit">Nit</option>
|
||||
<option value="nix">Nix</option>
|
||||
<option value="nsi">NSIS</option>
|
||||
<option value="numpy">NumPy</option>
|
||||
<option value="objdump">objdump</option>
|
||||
<option value="objdump-nasm">objdump-nasm</option>
|
||||
<option value="objc">Objective-C</option>
|
||||
<option value="objc++">Objective-C++</option>
|
||||
<option value="objj">Objective-J</option>
|
||||
<option value="ocaml">OCaml</option>
|
||||
<option value="octave">Octave</option>
|
||||
<option value="odin">ODIN</option>
|
||||
<option value="ooc">Ooc</option>
|
||||
<option value="opa">Opa</option>
|
||||
<option value="abl">OpenEdge ABL</option>
|
||||
<option value="pacmanconf">PacmanConf</option>
|
||||
<option value="pan">Pan</option>
|
||||
<option value="parasail">ParaSail</option>
|
||||
<option value="pawn">Pawn</option>
|
||||
<option value="pl">Perl</option>
|
||||
<option value="pl6">Perl6</option>
|
||||
<option value="php">PHP</option>
|
||||
<option value="pig">Pig</option>
|
||||
<option value="pike">Pike</option>
|
||||
<option value="pkgconfig">PkgConfig</option>
|
||||
<option value="plpgsql">PL/pgSQL</option>
|
||||
<option value="psql">PostgreSQL console (psql)</option>
|
||||
<option value="postgres">PostgreSQL SQL dialect</option>
|
||||
<option value="postscr">PostScript</option>
|
||||
<option value="pov">POVRay</option>
|
||||
<option value="ps1">PowerShell</option>
|
||||
<option value="ps1con">PowerShell Session</option>
|
||||
<option value="praat">Praat</option>
|
||||
<option value="prolog">Prolog</option>
|
||||
<option value="properties">Properties</option>
|
||||
<option value="proto">Protocol Buffer</option>
|
||||
<option value="puppet">Puppet</option>
|
||||
<option value="pypy">PyPy Log</option>
|
||||
<option value="py">Python</option>
|
||||
<option value="py3">Python 3</option>
|
||||
<option value="py3tb">Python 3.0 Traceback</option>
|
||||
<option value="pycon">Python console session</option>
|
||||
<option value="pytb">Python Traceback</option>
|
||||
<option value="basic">QBasic</option>
|
||||
<option value="qml">QML</option>
|
||||
<option value="qvt">QVTO</option>
|
||||
<option value="rkt">Racket</option>
|
||||
<option value="ragel">Ragel</option>
|
||||
<option value="ragel-c">Ragel in C Host</option>
|
||||
<option value="ragel-cpp">Ragel in CPP Host</option>
|
||||
<option value="ragel-d">Ragel in D Host</option>
|
||||
<option value="ragel-java">Ragel in Java Host</option>
|
||||
<option value="ragel-objc">Ragel in Objective C Host</option>
|
||||
<option value="ragel-rb">Ragel in Ruby Host</option>
|
||||
<option value="raw">Raw token data</option>
|
||||
<option value="rout">RConsole</option>
|
||||
<option value="rd">Rd</option>
|
||||
<option value="rebol">REBOL</option>
|
||||
<option value="red">Red</option>
|
||||
<option value="redcode">Redcode</option>
|
||||
<option value="registry">reg</option>
|
||||
<option value="resource">ResourceBundle</option>
|
||||
<option value="rst">reStructuredText</option>
|
||||
<option value="rexx">Rexx</option>
|
||||
<option value="rhtml">RHTML</option>
|
||||
<option value="roboconf-graph">Roboconf Graph</option>
|
||||
<option value="roboconf-instances">Roboconf Instances</option>
|
||||
<option value="robotframework">RobotFramework</option>
|
||||
<option value="spec">RPMSpec</option>
|
||||
<option value="rql">RQL</option>
|
||||
<option value="rsl">RSL</option>
|
||||
<option value="rb">Ruby</option>
|
||||
<option value="irb">Ruby irb session</option>
|
||||
<option value="rust">Rust</option>
|
||||
<option value="s">S</option>
|
||||
<option value="sass">Sass</option>
|
||||
<option value="scala">Scala</option>
|
||||
<option value="ssp">Scalate Server Page</option>
|
||||
<option value="scaml">Scaml</option>
|
||||
<option value="scm">Scheme</option>
|
||||
<option value="scilab">Scilab</option>
|
||||
<option value="scss">SCSS</option>
|
||||
<option value="shen">Shen</option>
|
||||
<option value="slim">Slim</option>
|
||||
<option value="smali">Smali</option>
|
||||
<option value="st">Smalltalk</option>
|
||||
<option value="smarty">Smarty</option>
|
||||
<option value="snobol">Snobol</option>
|
||||
<option value="sp">SourcePawn</option>
|
||||
<option value="sparql">SPARQL</option>
|
||||
<option value="sql">SQL</option>
|
||||
<option value="sqlite3">sqlite3con</option>
|
||||
<option value="squid">SquidConf</option>
|
||||
<option value="stan">Stan</option>
|
||||
<option value="sml">Standard ML</option>
|
||||
<option value="sc">SuperCollider</option>
|
||||
<option value="swift">Swift</option>
|
||||
<option value="swig">SWIG</option>
|
||||
<option value="sv">systemverilog</option>
|
||||
<option value="tads3">TADS 3</option>
|
||||
<option value="tap">TAP</option>
|
||||
<option value="tcl">Tcl</option>
|
||||
<option value="csh">Tcsh</option>
|
||||
<option value="tcshcon">Tcsh Session</option>
|
||||
<option value="tea">Tea</option>
|
||||
<option value="termcap">Termcap</option>
|
||||
<option value="terminfo">Terminfo</option>
|
||||
<option value="tf">Terraform</option>
|
||||
<option value="tex">TeX</option>
|
||||
<option value="text">Text only</option>
|
||||
<option value="thrift">Thrift</option>
|
||||
<option value="todotxt">Todotxt</option>
|
||||
<option value="rts">TrafficScript</option>
|
||||
<option value="treetop">Treetop</option>
|
||||
<option value="turtle">Turtle</option>
|
||||
<option value="twig">Twig</option>
|
||||
<option value="ts">TypeScript</option>
|
||||
<option value="urbiscript">UrbiScript</option>
|
||||
<option value="vala">Vala</option>
|
||||
<option value="vbnet">VB.net</option>
|
||||
<option value="vctreestatus">VCTreeStatus</option>
|
||||
<option value="velocity">Velocity</option>
|
||||
<option value="v">verilog</option>
|
||||
<option value="vgl">VGL</option>
|
||||
<option value="vhdl">vhdl</option>
|
||||
<option value="vim">VimL</option>
|
||||
<option value="x10">X10</option>
|
||||
<option value="xml">XML</option>
|
||||
<option value="xml+cheetah">XML+Cheetah</option>
|
||||
<option value="xml+jinja">XML+Django/Jinja</option>
|
||||
<option value="xml+evoque">XML+Evoque</option>
|
||||
<option value="xml+lasso">XML+Lasso</option>
|
||||
<option value="xml+mako">XML+Mako</option>
|
||||
<option value="xml+myghty">XML+Myghty</option>
|
||||
<option value="xml+php">XML+PHP</option>
|
||||
<option value="xml+erb">XML+Ruby</option>
|
||||
<option value="xml+smarty">XML+Smarty</option>
|
||||
<option value="xml+velocity">XML+Velocity</option>
|
||||
<option value="xq">XQuery</option>
|
||||
<option value="xslt">XSLT</option>
|
||||
<option value="xtend">Xtend</option>
|
||||
<option value="xul+mozpreproc">XUL+mozpreproc</option>
|
||||
<option value="yaml">YAML</option>
|
||||
<option value="sls">YAML+Jinja</option>
|
||||
<option value="zephir">Zephir</option>
|
||||
</select>
|
||||
|
||||
<select id="expiry" name="expiry" class="form-control">
|
||||
<option value="PT5M">5 minutes</option>
|
||||
<option value="PT1H">1 hour</option>
|
||||
<option value="P1D">1 day</option>
|
||||
<option value="P7D">1 week</option>
|
||||
<option value="P30D">1 month</option>
|
||||
<option value="P1Y">1 year</option>
|
||||
<option value="P20Y" selected>Forever</option>
|
||||
</select>
|
||||
<button type="submit" class="btn btn-raised btn-primary">Submit<div class="ripple-container"></div></button>
|
||||
<div class="row paste-actions">
|
||||
<div class="group col-sm-3" style="margin-right:-30px">
|
||||
<label class="control-label ">Language</label>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" id="button-language" class="btn btn-primary btn-raised dropdown-toggle" data-toggle="dropdown" value="autodetect">Autodetect</a>
|
||||
<ul class="dropdown-menu dropdown-scrollbar" id="dropdown-language">
|
||||
|
||||
<li class="dropdown-item" value="language_autodetect" selected><a> Autodetect </a></li>
|
||||
<li class="dropdown-item" value="language_text"><a> Text </a></li>
|
||||
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-label">Commonly used </li>
|
||||
{{ range $key, $value := .LangsFirst }}
|
||||
<li class="dropdown-item" value="language_{{ $value }}" ><a> {{ $key }}</a></li>
|
||||
{{ end }}
|
||||
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-label">The rest </li>
|
||||
{{ range $key, $value := .LangsLast }}
|
||||
<li class="dropdown-item" value="language_{{ $value }}"><a> {{ $key }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group col-sm-2">
|
||||
<label class="control-label">Expiry</label>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" id="button-expiry" class="btn btn-primary btn-raised dropdown-toggle" data-toggle="dropdown" >Forever</a>
|
||||
<ul class="dropdown-menu scrollbar" id="dropdown-expiry">
|
||||
<li class="dropdown-item" value="expiry_300"><a>5 minutes</a></li>
|
||||
<li class="dropdown-item" value="expiry_3600"><a>1 hour</a></li>
|
||||
<li class="dropdown-item" value="expiry_86400"><a>1 day</a></li>
|
||||
<li class="dropdown-item" value="expiry_604800"><a>1 week</a></li>
|
||||
<li class="dropdown-item" value="expiry_2592000"><a>1 month</a></li>
|
||||
<li class="dropdown-item" value="expiry_31556952"><a>1 year</a></li>
|
||||
<li class="dropdown-item" value="expiry_0" selected><a>Forever</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group col-sm-2">
|
||||
<label class="control-label">Help</label>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" id="button-help" class="btn btn-primary btn-raised dropdown-toggle" data-toggle="dropdown" >Help</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<label class="control-label "> </label>
|
||||
<div class="row">
|
||||
<button class="btn btn-raised btn-primary" id="button-save">Submit<div class="ripple-container"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="well">
|
||||
<code>$ <command> | curl -X POST -F 'p=<-' https://p.pantsu.cat/api</code><br/>
|
||||
<code>POST https://p.pantsu.cat/api </code><br/>
|
||||
<code>GET https://p.pantsu.cat/api/{PASTE} </code><br/>
|
||||
<code>GET: https://p.pantsu.cat/p/(PASTE)/(lang)</code><br/>
|
||||
<code>$ curl -X DEL -F 'delkey=' https://p.pantsu.cat/api</code><br/>
|
||||
<p>Source: <a href="https://github.com/ewhal/Pastebin">Github</a></p>
|
||||
<p>Tools: <a href="https://github.com/ewhal/scripts/blob/master/paste.sh">Paste.sh</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
|
||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/material.min.js" integrity="sha256-uZbIqasulk7Y9yEwknbeQ0FpF3aUhtPwuggbpvQaI8Y=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/ripples.min.js" integrity="sha256-TY/EO/++Ug/P+fSBjaqlmtuphCBKwlP7TOnS+SGnN8g=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-material-design/0.5.10/js/material.min.js"></script>
|
||||
|
||||
<!-- Sweetalert js -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
|
||||
|
||||
<script>
|
||||
$.material.init();
|
||||
jQuery.each(jQuery('textarea[data-autoresize]'), function() {
|
||||
var offset = this.offsetHeight - this.clientHeight;
|
||||
|
||||
var resizeTextarea = function(el) {
|
||||
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
|
||||
};
|
||||
jQuery(this).on('keyup input', function() { resizeTextarea(this); });
|
||||
$(document).ready(function(){
|
||||
$.material.init();
|
||||
|
||||
$("#button-help").click(function(){
|
||||
|
||||
swal({
|
||||
title: "Help ",
|
||||
customClass: 'swal-wide',
|
||||
text: "\
|
||||
<span class='swal-bold'> Create Paste</span> \
|
||||
<span class='swal-code'>echo '{"paste": "Hello FooBar"}' | curl -H 'Content-Type: application/json' -d @- {{ .UrlAddress }}/api </span> \
|
||||
\
|
||||
<span class='swal-bold'> Delete Paste </span> \
|
||||
<span class='swal-code'> curl -X DELETE -F 'delkey=insert-your-delete-key-here' {{ .UrlAddress }}/api/{pasteid} </span> \
|
||||
\
|
||||
<span class='swal-bold'> Show Paste </span> \
|
||||
<span class='swal-code'> {{ .UrlAddress }}/p/{passte-id} </span> \
|
||||
\
|
||||
<span class='swal-bold'> Show Paste with a specific language </span> \
|
||||
<span class='swal-code'> {{ .UrlAddress }}/p/{passte-id}/{language} </span> \
|
||||
\
|
||||
<span class='swal-bold'> Show Paste with a specific language and style </span> \
|
||||
<span class='swal-code'> {{ .UrlAddress }}/p/{passte-id}/{language}/{style} </span> \
|
||||
<span class='swal-bold'> Notes, </span> \
|
||||
<span class='swal-code'> * Languages and Styles are standard components of the Python Syntax Highlighter (pygments)</span><br>\
|
||||
\
|
||||
<span class='swal-code'>Source: <a href='https://github.com/ewhal/Pastebin'>Github</a></span>\
|
||||
<span class='swal-code'>Tools: <a href='https://github.com/ewhal/scripts/blob/master/paste.sh'>Paste.sh</a></span>",
|
||||
html: true
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
// Bind dropdowns,
|
||||
$(".dropdown-item").click(function(){
|
||||
var action = $(this).attr("value").match(/(language|expiry)_(.*)/);
|
||||
|
||||
if (action.length != 3){
|
||||
return
|
||||
}
|
||||
$("#button-"+action[1]).text($(this).text());
|
||||
$("#button-"+action[1]).attr("value",action[2]);
|
||||
});
|
||||
|
||||
$( "#button-save" ).click(function() {
|
||||
|
||||
// Construct the data,
|
||||
var data_lang = $("#button-language").attr("value");
|
||||
var data_expiry = $("#button-expiry").attr("value");
|
||||
var data_title = $("#title").val();
|
||||
var data_paste = $("#paste").val();
|
||||
|
||||
var json_data = { expiry : data_expiry,
|
||||
title : data_title,
|
||||
paste : data_paste,
|
||||
lang : data_lang,
|
||||
webreq : true };
|
||||
|
||||
$.ajax({
|
||||
url: "http://localhost:9999/api",
|
||||
type: 'POST',
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data: JSON.stringify(json_data),
|
||||
dataType: "json",
|
||||
success: function(json){
|
||||
window.location = json.url+"/"+data_lang
|
||||
},
|
||||
error: function(json){
|
||||
sweetAlert("", json.responseText, "error");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
||||
<title>{{.Title}}</title>
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/bootstrap-material-design.min.css" integrity="sha256-j3CLSRG31GkOu6kaeLh7XsRgL2YNvRl9aOtXoAYt320=" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/ripples.min.css" integrity="sha256-+Og2qJI9qzvKYwhGo/LYXg0FzE1BhEQfDsUSjKXQ3Bg=" crossorigin="anonymous">
|
||||
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>{{.Title}}</h1>
|
||||
</div>
|
||||
|
||||
<div class="well" style="padding-top: 10px;">
|
||||
<textarea class="form-control" rows="20" id="textArea" data-autoresize>{{printf "%s" .Body}}</textarea>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<div class="row" style="margin-right: 0px">
|
||||
<a href="{{.Home}}" class="btn btn-raised btn-primary">Home</a>
|
||||
<a href="{{.Download}}" class="btn btn-raised btn-primary">Download</a>
|
||||
<a href="{{.Raw}}" class="btn btn-raised btn-primary">Raw</a>
|
||||
<a href="{{.Clone}}" class="btn btn-raised btn-primary">Clone</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/material.min.js" integrity="sha256-uZbIqasulk7Y9yEwknbeQ0FpF3aUhtPwuggbpvQaI8Y=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/ripples.min.js" integrity="sha256-TY/EO/++Ug/P+fSBjaqlmtuphCBKwlP7TOnS+SGnN8g=" crossorigin="anonymous"></script>
|
||||
<script>
|
||||
$.material.init();
|
||||
|
||||
|
||||
jQuery.each(jQuery('textarea[data-autoresize]'), function() {
|
||||
var offset = this.offsetHeight - this.clientHeight;
|
||||
|
||||
var resizeTextarea = function(el) {
|
||||
jQuery(el).css('height', 'auto').css('height', el.scrollHeight + offset);
|
||||
};
|
||||
resizeTextarea(this);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,218 @@
|
|||
|
||||
|
||||
/* * *
|
||||
/* The labels around the paste-box */
|
||||
|
||||
#title{
|
||||
margin-bottom: -3px;
|
||||
}
|
||||
|
||||
.urlshortener, .expiry_label{
|
||||
font-size : 11px;
|
||||
}
|
||||
|
||||
.expiry_label{
|
||||
float : right;
|
||||
}
|
||||
|
||||
.expiry_date{
|
||||
font-weight : bold
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* * *
|
||||
/* The actual paste-box */
|
||||
|
||||
pre {
|
||||
background : none;
|
||||
border : none;
|
||||
border-radius : 0px;
|
||||
font-family : 'Courier New', Courier, monospace;
|
||||
font-size : 12px;
|
||||
font-weight : normal;
|
||||
letter-spacing : 0.015em;
|
||||
line-height : 14px;
|
||||
margin : 5px 5px 5px 5px;
|
||||
min-height : 250px;
|
||||
}
|
||||
|
||||
.code-row {
|
||||
display : block;
|
||||
font-size : 14px;
|
||||
font-weight : lighter;
|
||||
}
|
||||
|
||||
.codenum-row {
|
||||
display : block;
|
||||
font-size : 14px;
|
||||
font-weight : lighter;
|
||||
}
|
||||
|
||||
.code{
|
||||
width : 10000px;
|
||||
}
|
||||
|
||||
.highlight{
|
||||
border : solid 1px #ccc;
|
||||
border-radius : 6px;
|
||||
}
|
||||
|
||||
.highlighttable{
|
||||
margin-bottom : 8px;
|
||||
}
|
||||
|
||||
.form-no-margin{
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.linenodiv {
|
||||
background : none;
|
||||
border : solid 1px #ccc;
|
||||
border-radius : 6px;
|
||||
display : none;
|
||||
padding-right : 0px!important;
|
||||
}
|
||||
|
||||
.toggles{
|
||||
width : 100px;
|
||||
}
|
||||
|
||||
label.togglerows{
|
||||
text-align : left!important;
|
||||
cursor : default!important;
|
||||
}
|
||||
|
||||
.text{
|
||||
background : #f0f3f3;
|
||||
font-size : 10px;
|
||||
line-height : 150%;
|
||||
margin-bottom : 10px;
|
||||
padding-left : 14px;
|
||||
padding-top : 7px;
|
||||
}
|
||||
|
||||
.well{
|
||||
font-size : 11px;
|
||||
padding-top : 25px!important;
|
||||
/*padding-top: 10px; resize: both;"*/
|
||||
}
|
||||
|
||||
div#paste.well{
|
||||
border-radius : 6px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/* * *
|
||||
/* Button row under paste box */
|
||||
|
||||
label {
|
||||
font-weight: bold!important;
|
||||
}
|
||||
|
||||
.btn {
|
||||
font-size : 12px;
|
||||
}
|
||||
|
||||
.paste-actions{
|
||||
margin-bottom : 20px;
|
||||
margin-right : 0px;
|
||||
}
|
||||
|
||||
.paste-actions .control-label{
|
||||
display : inline-block;
|
||||
padding-right : 10px;
|
||||
vertical-align : -webkit-baseline-middle;
|
||||
}
|
||||
|
||||
.paste-actions .btn{
|
||||
width : 230px;
|
||||
}
|
||||
|
||||
.paste-actions .pull-right .btn{
|
||||
width : 120px;
|
||||
}
|
||||
|
||||
#button-language{
|
||||
text-align : left;
|
||||
}
|
||||
|
||||
#dropdown-language, #dropdown-style, #dropdown-expiry{
|
||||
bottom : 100% !important;
|
||||
top : auto !important;
|
||||
}
|
||||
|
||||
#dropdown-language{
|
||||
width : 230px;
|
||||
}
|
||||
|
||||
#button-style, #button-expiry{
|
||||
width : 160px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#button-help{
|
||||
width : 140px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#dropdown-style{
|
||||
width : 110px;
|
||||
}
|
||||
|
||||
#toggle-numbers, #toggle-hover-rows{
|
||||
margin-top : 25px;
|
||||
}
|
||||
|
||||
div.row {
|
||||
margin-right : 0px;
|
||||
}
|
||||
|
||||
.dropdown-scrollbar {
|
||||
height : auto;
|
||||
max-height : 450px;
|
||||
overflow-x : hidden;
|
||||
overflow-y : auto;
|
||||
}
|
||||
|
||||
.dropdown-scrollbar::-webkit-scrollbar { width : 10px; background-color : #f7f7f7;}
|
||||
.dropdown-scrollbar::-webkit-scrollbar-thumb { background-color : #ccc; border-radius : 4px;}
|
||||
.dropdown-scrollbar::-webkit-scrollbar-thumb:hover { background-color : #aaa;}
|
||||
|
||||
.dropdown-item:hover{
|
||||
background-color : #f7f7f7;
|
||||
}
|
||||
|
||||
.dropdown-item{
|
||||
cursor : pointer;
|
||||
}
|
||||
|
||||
.dropdown-label{
|
||||
font-size : 12px;
|
||||
font-weight : bold;
|
||||
padding-left : 10px;
|
||||
}
|
||||
|
||||
.swal-wide{
|
||||
width:850px !important;
|
||||
margin-left: -400px;
|
||||
}
|
||||
|
||||
.swal-code {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
margin-left: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.swal-bold {
|
||||
font-weight: bold;
|
||||
margin-bottom: 5px;
|
||||
margin-top: 10px;
|
||||
text-align: left;
|
||||
display: block;
|
||||
margin-left: 8px;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
Bash
|
||||
C
|
||||
C#
|
||||
C++
|
||||
CMake
|
||||
CSS
|
||||
Clojure
|
||||
CoffeeScript
|
||||
Diff
|
||||
ERB
|
||||
EmacsLisp
|
||||
Go
|
||||
HTML
|
||||
HTTP
|
||||
Java
|
||||
JavaScript
|
||||
Makefile
|
||||
MySQL
|
||||
PHP
|
||||
Perl
|
||||
Python
|
||||
Python 3
|
||||
Ruby
|
||||
XML
|
||||
YAML
|
|
@ -2,59 +2,254 @@
|
|||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
|
||||
<title>%s</title>
|
||||
|
||||
<title>{{.Title}}</title>
|
||||
|
||||
<!-- Material Design fonts -->
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family=Roboto:300,400,500,700">
|
||||
<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/icon?family=Material+Icons">
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/bootstrap-material-design.min.css" integrity="sha256-j3CLSRG31GkOu6kaeLh7XsRgL2YNvRl9aOtXoAYt320=" crossorigin="anonymous">
|
||||
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/css/ripples.min.css" integrity="sha256-+Og2qJI9qzvKYwhGo/LYXg0FzE1BhEQfDsUSjKXQ3Bg=" crossorigin="anonymous">
|
||||
|
||||
|
||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<!-- pastebin stylesheet -->
|
||||
<link rel="stylesheet" type="text/css" href="/assets/pastebin.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>%s</h1>
|
||||
<h1 id="title">{{.Title}}</h1>
|
||||
<div class="urlshortener">
|
||||
<a id="urlshortener"> </a>
|
||||
</div>
|
||||
<div class="col-md-13">
|
||||
<div class="well" style="padding-top: 10px;">
|
||||
%s
|
||||
</div>
|
||||
|
||||
<span class="expiry_label">This paste expires :
|
||||
<span class="expiry_date" id="expiry_date">{{.Expiry}}</span>
|
||||
</span>
|
||||
<br>
|
||||
|
||||
<div class="well" id="paste">{{ .Body }}
|
||||
<span id="wrapper-err">{{.WrapperErr}}</span>
|
||||
</div>
|
||||
|
||||
<div class="row paste-actions">
|
||||
<div class="group col-sm-3" style="margin-right:-30px">
|
||||
<label class="control-label ">Language</label>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" id="button-language" class="btn btn-primary btn-raised dropdown-toggle" data-toggle="dropdown">{{.Lang}}</a>
|
||||
<ul class="dropdown-menu dropdown-scrollbar" id="dropdown-language">
|
||||
|
||||
<li class="dropdown-item" value="lang_autodetect"><a> Autodetect </a></li>
|
||||
<li class="dropdown-item" value="lang_text"><a> Text </a></li>
|
||||
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-label">Commonly used </li>
|
||||
{{ range $key, $value := .LangsFirst }}
|
||||
<li class="dropdown-item" value="lang_{{ $value }}" ><a> {{ $key }}</a></li>
|
||||
{{ end }}
|
||||
|
||||
<li class="divider"></li>
|
||||
<li class="dropdown-label">The rest </li>
|
||||
{{ range $key, $value := .LangsLast }}
|
||||
<li class="dropdown-item" value="lang_{{ $value }}"><a> {{ $key }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group col-sm-2">
|
||||
<label class="control-label">Style</label>
|
||||
<div class="btn-group">
|
||||
<a href="javascript:void(0)" id="button-style" class="btn btn-primary btn-raised dropdown-toggle" data-toggle="dropdown">{{.Style}}</a>
|
||||
<ul class="dropdown-menu dropdown-scrollbar" id="dropdown-style">
|
||||
{{ range $key, $value := .SupportedStyles }}
|
||||
<li class="dropdown-item" value="style_{{ $key }}"><a>{{ $value }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group col-sm-2 toggles">
|
||||
<div class="togglebutton">
|
||||
<label class="control-label togglerows">Row Numbers</label><br>
|
||||
<label><input type="checkbox" id="toggle-numbers"></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="group col-sm-2 toggles">
|
||||
<div class="togglebutton">
|
||||
<label class="control-label togglerows">Row Highlightning</label><br>
|
||||
<label><input type="checkbox" id="toggle-hover-rows" checked></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pull-right">
|
||||
<div class="row" style="margin-right: 0px;">
|
||||
<a href="%s" class="btn btn-raised btn-primary">Home</a>
|
||||
<a href="%s" class="btn btn-raised btn-primary">Download</a>
|
||||
<a href="%s" class="btn btn-raised btn-primary">Raw</a>
|
||||
<a href="%s" class="btn btn-raised btn-primary">Clone</a>
|
||||
<label class="control-label "> </label>
|
||||
<div class="row">
|
||||
<a href="{{.UrlHome}}" class="btn btn-raised btn-primary">Home</a>
|
||||
<a href="{{.UrlDownload}}" class="btn btn-raised btn-primary">Download</a>
|
||||
<a href="{{.UrlRaw}}" class="btn btn-raised btn-primary">Raw</a>
|
||||
<a href="{{.UrlClone}}" class="btn btn-raised btn-primary">Clone</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||||
|
||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/material.min.js" integrity="sha256-uZbIqasulk7Y9yEwknbeQ0FpF3aUhtPwuggbpvQaI8Y=" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/bootstrap.material-design/0.5.10/js/ripples.min.js" integrity="sha256-TY/EO/++Ug/P+fSBjaqlmtuphCBKwlP7TOnS+SGnN8g=" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
$.material.init();
|
||||
</script>
|
||||
|
||||
$(document).ready(function(){
|
||||
|
||||
// First, create our rows and toggle them,
|
||||
create_hover_rows();
|
||||
toggle_hover_rows();
|
||||
|
||||
// Bind toggles,
|
||||
$( "#toggle-numbers" ).click(function() {
|
||||
toggle_rows();
|
||||
});
|
||||
|
||||
$( "#toggle-hover-rows" ).click(function() {
|
||||
toggle_hover_rows();
|
||||
});
|
||||
|
||||
// Bind dropdowns,
|
||||
$(".dropdown-item").click(function(){
|
||||
var action = $(this).attr("value").match(/(lang|style)_(.*)/);
|
||||
|
||||
if (action.length != 3){
|
||||
return
|
||||
}
|
||||
|
||||
var todo = action[1]
|
||||
var value = action[2]
|
||||
var pasteid = window.location.pathname.split('/')[2];
|
||||
|
||||
if (todo == "lang"){
|
||||
$("#button-language").text(value);
|
||||
}else{
|
||||
$("#button-style").text(value);
|
||||
}
|
||||
|
||||
// Construct the data,
|
||||
var sel_lang = $("#button-language").text();
|
||||
var sel_style = $("#button-style").text();
|
||||
var json_data = { style: sel_style, lang:sel_lang, webreq: true};
|
||||
|
||||
$.ajax({
|
||||
url: "http://localhost:9999/api/"+pasteid,
|
||||
type: 'POST',
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data: JSON.stringify(json_data),
|
||||
dataType: "json",
|
||||
success: function(json){
|
||||
$(".well").replaceWith("<div class='well' id=\"paste\">"+json.paste+"<span id=\"wrapper-err\">"+json.extra+"</span></div>");
|
||||
create_hover_rows();
|
||||
if ($("#toggle-hover-rows").is(':checked')){
|
||||
toggle_hover_rows();
|
||||
}
|
||||
if ($("#toggle-numbers").is(':checked')){
|
||||
toggle_rows();
|
||||
}
|
||||
},
|
||||
error: function(json){
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url: "https://www.googleapis.com/urlshortener/v1/url?key={{.GoogleAPIKey}}",
|
||||
type: 'POST',
|
||||
contentType: "application/json; charset=utf-8",
|
||||
data : JSON.stringify({longUrl:window.location.href}),
|
||||
dataType: "json",
|
||||
success: function(json){
|
||||
$('#urlshortener').text(json.id)
|
||||
$('#urlshortener').attr("href",json.id)
|
||||
},
|
||||
error: function(json){
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function toggle_rows(){
|
||||
$(".linenodiv").toggle();
|
||||
if ($("#toggle-numbers").is(':checked')){
|
||||
$(".highlight").css("border-left", "0px");
|
||||
$(".highlight").css("border-bottom-left-radius", "0px");
|
||||
$(".highlight").css("border-top-left-radius", "0px");
|
||||
$(".linenodiv").css("border-bottom-right-radius", "0px");
|
||||
$(".linenodiv").css("border-top-right-radius", "0px");
|
||||
}else{
|
||||
$(".highlight").css("border-left", "1px solid #ccc");
|
||||
$(".highlight").css("border-bottom-left-radius", "6px");
|
||||
$(".highlight").css("border-top-left-radius", "6px");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function create_hover_rows(){
|
||||
|
||||
var rownum_data = $('pre').html().split(/\n/);
|
||||
var code_data = $('pre:eq(1)').html().split(/[\n\r]/);
|
||||
var rownum_data_new = "";
|
||||
var code_data_new = "";
|
||||
|
||||
// Loop each row and add span and class,
|
||||
for(var x=0;x<rownum_data.length;x++) {
|
||||
if (code_data[x] == ""){
|
||||
code_data[x] = "\n";
|
||||
}
|
||||
|
||||
rownum_data_new += "<span class='codenum-row'>"+rownum_data[x]+"</span>"
|
||||
code_data_new += "<span class='code-row'>"+code_data[x]+"</span>"
|
||||
}
|
||||
|
||||
// Replace with new data,
|
||||
$('pre:eq(0)').html(rownum_data_new);
|
||||
$('pre:eq(1)').html(code_data_new);
|
||||
}
|
||||
|
||||
|
||||
function toggle_hover_rows(){
|
||||
|
||||
if ($("#toggle-hover-rows").is(':checked')){
|
||||
$(".code-row").hover(
|
||||
function() {
|
||||
$(this).css("background-color", "rgba(196,196,196,0.5)");
|
||||
},
|
||||
function() {
|
||||
var bg = $(".highlight").css("background-color");
|
||||
$(this).css("background-color", bg);
|
||||
});
|
||||
}else{
|
||||
$(".code-row").unbind('mouseenter').unbind('mouseleave')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function get_lang(){
|
||||
var str = $('#wrapper-err').text();
|
||||
var arr = str.match(/Lexer guessed :: (.*)$/);
|
||||
|
||||
// If we fail for some reason to parse the output, set it to autodetect
|
||||
if (arr.length != 2){
|
||||
return "autodetect";
|
||||
}
|
||||
|
||||
return arr[1];
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"Port": ":8080",
|
||||
"Length": 6,
|
||||
"Username": "",
|
||||
"Password": "",
|
||||
"Name": "",
|
||||
"Address": "https://p.pantsu.cat"
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"address": "http://localhost:9999",
|
||||
"dbhost": "",
|
||||
"dbname": "pastebin.db",
|
||||
"dbtable": "pastebin",
|
||||
"dbtype": "sqlite3",
|
||||
"dbport": "",
|
||||
"dbuser":"",
|
||||
"dbpassword":"",
|
||||
"displayname": "MyCompany",
|
||||
"listenaddress": "localhost",
|
||||
"listenport": "9999",
|
||||
"shorturllength": "5",
|
||||
"highlighter":"./highlighter-wrapper.py",
|
||||
"googleAPIKey":"insert-if-you-want-goo.gl/addr"
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
CREATE TABLE `pastebin` (
|
||||
`id` varchar(30) NOT NULL,
|
||||
`title` char(20) default NULL,
|
||||
`title` varchar(50) default NULL,
|
||||
`hash` char(40) default NULL,
|
||||
`data` longtext,
|
||||
`delkey` char(40) default NULL,
|
||||
`expiry` DATETIME,
|
||||
`expiry` int,
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
import pygments
|
||||
from pygments import highlight
|
||||
from pygments.lexers import get_lexer_by_name, guess_lexer
|
||||
from pygments.formatters import HtmlFormatter
|
||||
import sys
|
||||
|
||||
def render(code, lang, theme):
|
||||
|
||||
guess = ""
|
||||
lang_org = lang
|
||||
|
||||
try:
|
||||
lexer = get_lexer_by_name(lang)
|
||||
except:
|
||||
try:
|
||||
guess = 1
|
||||
lexer = guess_lexer(code)
|
||||
lang = lexer.aliases[0]
|
||||
except:
|
||||
if lang == "autodetect":
|
||||
out = "Could not autodetect language (returning plain text).\n"
|
||||
else:
|
||||
out = "Given language was not found :: '"+lang+"' (returning plain text).\n"
|
||||
|
||||
lexer = get_lexer_by_name("text")
|
||||
html_format = HtmlFormatter(style=theme, noclasses="true", linenos="true", encoding="utf-8")
|
||||
return highlight(code, lexer, html_format),out
|
||||
|
||||
if guess:
|
||||
out = "Lexer guessed :: "+lang
|
||||
if lang != lang_org and lang_org != "autodetect":
|
||||
out += " (although given language was "+lang_org+") "
|
||||
else:
|
||||
out = "Successfully used lexer for given language :: "+lang
|
||||
|
||||
try:
|
||||
html_format = HtmlFormatter(style=theme, noclasses="true", linenos="true", encoding="utf-8")
|
||||
except:
|
||||
html_format = HtmlFormatter(noclasses="true", linenos="true", encoding="utf-8")
|
||||
|
||||
return highlight(code, lexer, html_format),out
|
||||
|
||||
|
||||
|
||||
def usage(err=0):
|
||||
print("\n Description, \n")
|
||||
print(" - This is a small wrapper for the pygments html-formatter.")
|
||||
print(" It will read data on stdin and simply print it on stdout")
|
||||
|
||||
print("\n Usage, \n")
|
||||
print(" - %s [lang] [style] < FILE" % sys.argv[0])
|
||||
print(" - %s getlexers" % sys.argv[0])
|
||||
print(" - %s getstyles" % sys.argv[0])
|
||||
|
||||
print("\n Where, \n")
|
||||
print(" - lang is the language of your code")
|
||||
print(" - style is the 'theme' for the formatter")
|
||||
print(" - getlexers will print available lexers (displayname;lexer-name)")
|
||||
print(" - getstyles will print available styles \n")
|
||||
|
||||
sys.exit(err)
|
||||
|
||||
def get_styles():
|
||||
item = pygments.styles.get_all_styles()
|
||||
for items in item:
|
||||
print items
|
||||
sys.exit(0)
|
||||
|
||||
def get_lexers():
|
||||
item = pygments.lexers.get_all_lexers()
|
||||
for items in item:
|
||||
print items[0]+";"+items[1][0]
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
# " Main "
|
||||
|
||||
code = ""
|
||||
|
||||
if len(sys.argv) >= 2:
|
||||
for arg in sys.argv:
|
||||
if arg == '--help' or arg == '-h':
|
||||
usage()
|
||||
if arg == 'getlexers':
|
||||
get_lexers()
|
||||
if arg == 'getstyles':
|
||||
get_styles()
|
||||
|
||||
if len(sys.argv) == 3:
|
||||
lang = sys.argv[1]
|
||||
theme = sys.argv[2]
|
||||
else:
|
||||
usage(1);
|
||||
|
||||
if not sys.stdin.isatty():
|
||||
for line in sys.stdin:
|
||||
code += line
|
||||
|
||||
out, stderr = render(code, lang, theme)
|
||||
print(out)
|
||||
sys.stderr.write(stderr)
|
||||
else:
|
||||
print("err : No data on stdin.")
|
||||
sys.exit(1)
|
999
pastebin.go
999
pastebin.go
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue