index.html (view raw)
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <meta charset="UTF-8" />
5 <meta
6 name="viewport"
7 content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
8 />
9 <meta http-equiv="X-UA-Compatible" content="ie=edge" />
10 <title>NoPaste - No-database paste service</title>
11 <link
12 rel="stylesheet"
13 type="text/css"
14 href="https://cdn.jsdelivr.net/combine/
15npm/bootstrap@4.4.1/dist/css/bootstrap-grid.min.css,
16npm/slim-select@1.25.0/dist/slimselect.min.css,
17npm/codemirror@5.52.0/lib/codemirror.min.css,
18npm/codemirror@5.52.0/addon/scroll/simplescrollbars.css,
19npm/codemirror@5.52.0/theme/dracula.min.css
20"
21 />
22 <link rel="stylesheet" href="style.css" />
23 <link href="favicon.ico" rel="icon" type="image/x-icon" />
24 <meta
25 name="description"
26 content="NoPaste is a client-side paste service which works with no database, and no back-end code. The whole data is stored in shareable links and nowhere else!"
27 />
28 </head>
29 <body class="m-0">
30 <div id="copy" class="container-fluid hidden shadow-bottom hide-readonly">
31 <div class="row my-1">
32 <div class="col my-1">
33 <input
34 type="text"
35 value="copy me"
36 id="copy-link"
37 class="px-2"
38 onclick="this.setSelectionRange(0, this.value.length)"
39 />
40 </div>
41 <div class="col-auto my-1">
42 <button
43 class="clipboard py-1 px-2 mx-1"
44 id="copy-btn"
45 data-clipboard-target="#copy-link"
46 type="button"
47 >
48 Copy
49 </button>
50 <button class="py-1 px-2 mx-1" onclick="hideCopyBar(false)" type="button">Cancel</button>
51 </div>
52 </div>
53 </div>
54 <div id="controls" class="container-fluid shadow-bottom hide-readonly">
55 <div class="row align-items-center justify-content-end my-1">
56 <div class="col mb-1">
57 <h1 class="title my-0">{ NoPaste }</h1>
58 </div>
59 <div class="col-auto my-1">
60 <select id="language"></select>
61 </div>
62 <div class="col-auto my-1">
63 <button class="py-1 px-2 mx-0" onclick="generateLink('url')" type="button">Generate link</button>
64 <button class="py-1 px-2 mx-1" onclick="generateLink('markdown')" type="button">
65 Generate markdown
66 </button>
67 <button class="py-1 px-2 mx-0" onclick="generateLink('iframe')" type="button">Embed</button>
68 </div>
69 </div>
70 </div>
71 <div id="progress"></div>
72 <div id="editor"></div>
73 <footer class="shadow-top container-fluid">
74 <div class="row my-1">
75 <div class="col mono" id="stats"></div>
76 <div class="col-auto">
77 <a href="javascript:void(0)" class="description-trigger">What is NoPaste?</a>
78 <div id="description" class="hidden shadow-bottom p-3">
79 NoPaste is a client-side paste service which works with <b>no database</b>, and
80 <b>no back-end code</b>.<br /><br />
81 Instead, the data is <b>compressed</b> then <b>stored</b> into a unique URL that can be decoded
82 later.<br /><br />
83 As a result, there is no risk of data being lost, censored or deleted. The whole data is stored
84 <b>in the link</b> and nowhere else!
85 </div>
86 <div class="overlay hidden"></div>
87 </div>
88 <div class="col-auto">
89 <a href="https://github.com/bokub/nopaste" rel="noopener" target="_blank">Github</a>
90 </div>
91 </div>
92 </footer>
93 </body>
94 <script src="https://cdn.jsdelivr.net/combine/
95npm/lzma@2.3.2/src/lzma.min.js,
96npm/slim-select@1.25.0/dist/slimselect.min.js,
97npm/clipboard@2/dist/clipboard.min.js,
98npm/codemirror@5.52.0,
99npm/codemirror@5.52.0/addon/mode/loadmode.min.js,
100npm/codemirror@5.52.0/addon/mode/overlay.min.js,
101npm/codemirror@5.52.0/addon/mode/multiplex.min.js,
102npm/codemirror@5.52.0/addon/mode/simple.min.js,
103npm/codemirror@5.52.0/addon/scroll/simplescrollbars.js,
104npm/codemirror@5.52.0/mode/meta.min.js
105"></script>
106 <script src="index.js"></script>
107</html>