index.html (view raw)
1<!DOCTYPE html>
2<html lang="en">
3 <head>
4 <meta charset="UTF-8" />
5 <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
6 <meta http-equiv="X-UA-Compatible" content="ie=edge" />
7
8 <title>NoPaste - No-database paste service</title>
9 <link rel="stylesheet" href="style/bootstrap-grid.css" />
10 <link rel="stylesheet" href="style/slimselect.css" />
11 <link rel="stylesheet" href="style/codemirror.css" />
12 <link rel="stylesheet" href="style/simplescrollbars.css" />
13 <link rel="stylesheet" href="style/dracula.css" />
14 <link rel="stylesheet" href="style/microtip.css" />
15 <link rel="stylesheet" href="style/style.css" />
16 <link href="favicon.ico" rel="icon" type="image/x-icon" />
17 <link rel="canonical" href="https://nopaste.ml/" />
18 <meta
19 name="description"
20 property="og:description"
21 content="NoPaste is a client-side paste service which works with no database, and no back-end code. The data is stored entirely in the links and nowhere else"
22 />
23 <meta property="og:title" content="NoPaste - No-database paste service" />
24 <meta property="og:image" content="images/logo.png" />
25 <meta property="og:url" content="https://nopaste.ml/" />
26 <meta property="og:type" content="website" />
27 </head>
28 <body class="m-0">
29 <script>
30 const readOnly = window.location !== window.parent.location || new URLSearchParams(window.location.search).has('readonly');
31 if (readOnly) {
32 document.body.classList.add('readonly');
33 }
34 </script>
35 <div id="copy" class="container-fluid hidden shadow-bottom hide-readonly">
36 <div class="row my-1">
37 <div class="col my-1">
38 <input type="text" value="copy me" id="copy-link" class="px-2" onclick="this.setSelectionRange(0, this.value.length)" />
39 </div>
40 <div class="col-auto my-1">
41 <button class="clipboard py-1 px-2 mx-1" id="copy-btn" data-clipboard-target="#copy-link" type="button">
42 Copy
43 </button>
44 <button class="py-1 px-2 mx-1" onclick="hideCopyBar(false)" type="button">Cancel</button>
45 </div>
46 </div>
47 </div>
48 <div id="controls" class="container-fluid shadow-bottom hide-readonly">
49 <div class="row align-items-center justify-content-end my-1">
50 <div class="col-auto mb-1">
51 <h1 class="my-0"><span>{</span> NoPaste <span>}</span></h1>
52 </div>
53 <div class="col-auto">
54 <a
55 href="javascript:void(0)"
56 class="mx-3"
57 aria-label="Click to know more about NoPaste"
58 data-microtip-position="bottom"
59 role="tooltip"
60 data-micromodal-trigger="description-modal"
61 >About</a
62 >
63 <a href="https://github.com/bokub/nopaste" rel="noopener" target="_blank" class="mx-3">Source</a>
64 </div>
65 <div class="col"></div>
66 <div class="col-auto my-1">
67 <select id="language"></select>
68 </div>
69 <div class="col-auto">
70 <button
71 onclick="enableLineWrapping()"
72 type="button"
73 id="enable-line-wrapping"
74 aria-label="Enable line wrapping"
75 data-microtip-position="bottom"
76 role="tooltip"
77 >
78 <span class="icon-notes"></span>
79 </button>
80 <button
81 onclick="disableLineWrapping()"
82 type="button"
83 id="disable-line-wrapping"
84 aria-label="Disable line wrapping"
85 data-microtip-position="bottom"
86 role="tooltip"
87 class="hidden"
88 >
89 <span class="icon-wrap-text"></span>
90 </button>
91 </div>
92 <div class="col-auto">
93 <button class="py-1 px-2 mx-0 my-1" onclick="generateLink('url')" type="button">
94 Generate link
95 </button>
96 <button class="py-1 px-2 mx-1 my-1" onclick="generateLink('markdown')" type="button">
97 Generate markdown
98 </button>
99 <button class="py-1 px-2 mx-0 my-1" onclick="generateLink('iframe')" type="button">Embed</button>
100 </div>
101 </div>
102 </div>
103 <div id="progress"></div>
104 <div id="editor"></div>
105 <footer id="footer" class="shadow-top container-fluid">
106 <div class="row my-1">
107 <div class="col mono hide-readonly" id="stats">Length: 0 | Lines: 1</div>
108 <div class="col mono show-readonly">Powered by NoPaste</div>
109 <div class="col-auto mono show-readonly">
110 <a href="javascript:void(0)" onclick="openInNewTab()">
111 <span class="icon-edit"></span>
112 Edit
113 </a>
114 </div>
115 </div>
116 </footer>
117 <div id="description-modal" class="modal">
118 <div tabindex="-1" data-micromodal-close class="modal-overlay">
119 <div role="dialog" class="modal-content shadow-bottom p-3 m-3" data-micromodal-close>
120 <h2 class="mt-0">What is NoPaste?</h2>
121
122 <span class="pink">NoPaste</span> is an open-source website similar to Pastebin where you can store any piece of code,
123 and generate links for easy sharing<br /><br />
124
125 However, what makes NoPaste special is that it works with <span class="pink">no database</span>, and
126 <span class="pink">no back-end code</span>.<br />
127 Instead, the data is compressed and <span class="pink">stored entirely in the link</span> that you share, nowhere else!
128
129 <h3>Because of this design:</h3>
130 🗑️ Your data <span class="pink">cannot be deleted</span> from NoPaste<br />
131 🔞 Your data <span class="pink">cannot be censored</span><br />
132 👁️ The server hosting NoPaste (or any clone of it) <span class="pink">cannot read or access</span> your data<br />
133 ⏳ Your data will be accessible <span class="pink">forever</span> (as long as you have the link)<br />
134 🔀 You can access your data on <span class="pink">every NoPaste clone</span>, including
135 <a href="https://github.com/bokub/nopaste/wiki/Deploy-your-own-version-of-NoPaste" rel="noopener" target="_blank"
136 >your own</a
137 ><br />
138 🔍 Google <span class="pink">will not index</span> your data, even if your link is public<br />
139 <br />
140 If you want to know more, you can find more information on
141 <a href="https://github.com/bokub/nopaste" rel="noopener" target="_blank" class="pink">Github</a>
142 <div class="additional-info">
143 Note: NoPaste is an improved version of Topaz's
144 <a href="https://topaz.github.io/paste" rel="noopener" target="_blank">Paste</a>
145 </div>
146 </div>
147 </div>
148 </div>
149 <div id="error-modal" class="modal">
150 <div tabindex="-1" data-micromodal-close class="modal-overlay">
151 <div role="dialog" class="modal-content shadow-bottom p-3 m-3" data-micromodal-close>
152 NoPaste cannot decompress the URL<br /><br />
153 It's possible that you clicked on an invalid link<br /><br />
154 Sorry about that
155 </div>
156 </div>
157 </div>
158
159 <script src="scripts/lzma.js"></script>
160 <script src="scripts/slimselect.js"></script>
161 <script src="scripts/clipboard.js"></script>
162 <script src="scripts/micromodal.js"></script>
163 <script src="scripts/codemirror.js"></script>
164 <script src="scripts/loadmode.js"></script>
165 <script src="scripts/overlay.js"></script>
166 <script src="scripts/multiplex.js"></script>
167 <script src="scripts/simple.js"></script>
168 <script src="scripts/simplescrollbars.js"></script>
169 <script src="scripts/meta.js"></script>
170 <script src="scripts/script.js"></script>
171 </body>
172</html>