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