atlas.engineer.atom.xml - sfeed_tests - sfeed tests and RSS and Atom files | |
git clone git://git.codemadness.org/sfeed_tests | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
atlas.engineer.atom.xml (200408B) | |
--- | |
1 <?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/200… | |
2 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
3 <head> | |
4 <meta charset="utf-8" /> | |
5 <meta name="generator" content="pandoc" /> | |
6 <meta name="viewport" content="width=device-width, i… | |
7 <title>Nyxt 2 Pre-release 3</title> | |
8 <style type="text/css"> | |
9 code{white-space: pre-wrap;} | |
10 span.smallcaps{font-variant: small-caps;} | |
11 span.underline{text-decoration: underline;} | |
12 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
13 </style> | |
14 <!--[if lt IE 9]> | |
15 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
16 <![endif]--> | |
17 </head> | |
18 <body> | |
19 <header> | |
20 <h1 class="title">Nyxt 2 Pre-release 3</h1> | |
21 </header> | |
22 <p>We are happy to announce the third pre-release of Nyxt version … | |
23 <p>Nyxt 2 is a massive overhaul of the Nyxt 1 series. A lot of eff… | |
24 <p>This is a test release for everyone to try out before the final… | |
25 <p>Notable highlights:</p> | |
26 <ul> | |
27 <li><p>New <code>import-bookmarks-from-html</code&g… | |
28 <li><p>New <code>reduce-tracking-mode</code>. Re… | |
29 <li><p>New <code>reduce-to-buffer</code> command… | |
30 <li><p>New <code>toggle-toolbars</code> command … | |
31 <li><p>New <code>execute-extended-command</code>… | |
32 <li><p><code>download-hint-url</code> now suppor… | |
33 <li><p>Quicklisp-based Lisp package manager. See the <cod… | |
34 <li><p>New <code>input-edit-mode</code>. You can… | |
35 <li><p>Added many bookmarklets (Javascripts utilities):</… | |
36 <ul> | |
37 <li><p>color-internal-external-links</p></li> | |
38 <li><p>urls-as-link-text</p></li> | |
39 <li><p>hide-visited-urls</p></li> | |
40 <li><p>toggle-checkboxes</p></li> | |
41 <li><p>view-password-field-contents</p></li> | |
42 <li><p>show-hidden-form-elements</p></li> | |
43 <li><p>enlarge-textareas</p></li> | |
44 <li><p>show-textbox-character-count</p></li> | |
45 <li><p>highlight-regexp</p></li> | |
46 <li><p>zoom-images-in</p></li> | |
47 <li><p>zoom-images-out</p></li> | |
48 <li><p>sort-table</p></li> | |
49 <li><p>number-table-rows</p></li> | |
50 <li><p>number-lines</p></li> | |
51 <li><p>transpose-tables</p></li> | |
52 <li><p>remove-color</p></li> | |
53 <li><p>remove-images</p></li> | |
54 <li><p>hue-shift-positive</p></li> | |
55 <li><p>hue-shift-negative</p></li> | |
56 <li><p>increase-brightness</p></li> | |
57 <li><p>decrease-brightness</p></li> | |
58 <li><p>invert-color</p></li> | |
59 </ul></li> | |
60 </ul> | |
61 <p>For the complete change list, please consult the <a href=&qu… | |
62 <p>We hope you enjoy these new features, and that they help make y… | |
63 <h1 id="screenshots">Screenshots</h1> | |
64 <h2 id="reduce-to-buffer">Reduce to Buffer</h2> | |
65 <p><img src="../static/image/article/reduce-to-buffer-sele… | |
66 <p><img src="../static/image/article/reduced-buffers.png&q… | |
67 <h2 id="bookmarklet-demonstration">Bookmarklet Demonstra… | |
68 <p>Below is a demonstration of a coloring internal / external link… | |
69 <p><img src="../static/image/article/color-internal-extern… | |
70 <h2 id="load-system">Load System</h2> | |
71 <p>Quicklisp is neatly integrated into Nyxt allowing you to load a… | |
72 <p><img src="../static/image/article/load-system.png"… | |
73 </body> | |
74 </html> | |
75 </content></entry><entry><id>urn:uuid:247f6507-f4eb-3728-a1ca-df77e2bb82… | |
76 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
77 <head> | |
78 <meta charset="utf-8" /> | |
79 <meta name="generator" content="pandoc" /> | |
80 <meta name="viewport" content="width=device-width, i… | |
81 <title>Bookmarklets for better browsing</title> | |
82 <style type="text/css"> | |
83 code{white-space: pre-wrap;} | |
84 span.smallcaps{font-variant: small-caps;} | |
85 span.underline{text-decoration: underline;} | |
86 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
87 </style> | |
88 <style type="text/css"> | |
89 a.sourceLine { display: inline-block; line-height: 1.25; } | |
90 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
91 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
92 .sourceCode { overflow: visible; } | |
93 code.sourceCode { white-space: pre; position: relative; } | |
94 div.sourceCode { margin: 1em 0; } | |
95 pre.sourceCode { margin: 0; } | |
96 @media screen { | |
97 div.sourceCode { overflow: auto; } | |
98 } | |
99 @media print { | |
100 code.sourceCode { white-space: pre-wrap; } | |
101 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
102 } | |
103 pre.numberSource a.sourceLine | |
104 { position: relative; } | |
105 pre.numberSource a.sourceLine:empty | |
106 { position: absolute; } | |
107 pre.numberSource a.sourceLine::before | |
108 { content: attr(data-line-number); | |
109 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
110 border: none; pointer-events: all; | |
111 -webkit-touch-callout: none; -webkit-user-select: none; | |
112 -khtml-user-select: none; -moz-user-select: none; | |
113 -ms-user-select: none; user-select: none; | |
114 padding: 0 4px; width: 4em; | |
115 color: #aaaaaa; | |
116 } | |
117 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
118 div.sourceCode | |
119 { } | |
120 @media screen { | |
121 a.sourceLine::before { text-decoration: underline; } | |
122 } | |
123 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
124 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
125 code span.at { color: #7d9029; } /* Attribute */ | |
126 code span.bn { color: #40a070; } /* BaseN */ | |
127 code span.bu { } /* BuiltIn */ | |
128 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
129 code span.ch { color: #4070a0; } /* Char */ | |
130 code span.cn { color: #880000; } /* Constant */ | |
131 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
132 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
133 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
134 code span.dt { color: #902000; } /* DataType */ | |
135 code span.dv { color: #40a070; } /* DecVal */ | |
136 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
137 code span.ex { } /* Extension */ | |
138 code span.fl { color: #40a070; } /* Float */ | |
139 code span.fu { color: #06287e; } /* Function */ | |
140 code span.im { } /* Import */ | |
141 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
142 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
143 code span.op { color: #666666; } /* Operator */ | |
144 code span.ot { color: #007020; } /* Other */ | |
145 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
146 code span.sc { color: #4070a0; } /* SpecialChar */ | |
147 code span.ss { color: #bb6688; } /* SpecialString */ | |
148 code span.st { color: #4070a0; } /* String */ | |
149 code span.va { color: #19177c; } /* Variable */ | |
150 code span.vs { color: #4070a0; } /* VerbatimString */ | |
151 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
152 </style> | |
153 <!--[if lt IE 9]> | |
154 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
155 <![endif]--> | |
156 </head> | |
157 <body> | |
158 <header> | |
159 <h1 class="title">Bookmarklets for better browsing</h… | |
160 </header> | |
161 <p>Bookmarklets are a feature in Nyxt that allow you to quickly cr… | |
162 <p>Wikipedia provides a succinct introduction and historical conte… | |
163 <blockquote> | |
164 <p>A bookmarklet is a bookmark stored in a web browser that contai… | |
165 </blockquote> | |
166 <p>Unlike in typical browsers, bookmarklets are not second-class c… | |
167 <ul> | |
168 <li>bind snippets of JavaScript to a hotkey</li> | |
169 <li>chain JavaScript snippets in your workflows/command invokation… | |
170 <li>save snippets of JavaScript for later use</li> | |
171 </ul> | |
172 <p>Defining bookmarklets in Nyxt is straightforward:</p> | |
173 <div class="sourceCode" id="bookmarklet example" … | |
174 <a class="sourceLine" id="bookmarklet example-2" … | |
175 <a class="sourceLine" id="bookmarklet example-3" … | |
176 <p>You provide:</p> | |
177 <ol> | |
178 <li>A name for your bookmarklet, this corresponds to its function/… | |
179 <li>A documentation string describing what the bookmarklet does<… | |
180 <li>Any JavaScript code you would like to run</li> | |
181 </ol> | |
182 <p>… and that's it!</p> | |
183 <p>We've included a collection of Bookmarklets we think would… | |
184 <ul> | |
185 <li><code>color-internal-external-links</code>: Color … | |
186 <li><code>urls-as-link-text</code>: Changes the text o… | |
187 <li><code>hide-visited-urls</code>: Hide visited URLs.… | |
188 <li><code>toggle-checkboxes</code>: Toggle all checkbo… | |
189 <li><code>view-password-field-contents</code>: View pa… | |
190 <li><code>show-hidden-form-elements</code>: Show hidde… | |
191 <li><code>enlarge-textareas</code>: Increase height of… | |
192 <li><code>show-textbox-character-count</code>: Display… | |
193 <li><code>highlight-regexp</code>: Highlights each mat… | |
194 <li><code>zoom-images-in</code>: Zoom images in.</l… | |
195 <li><code>zoom-images-out</code>: Zoom images out.<… | |
196 <li><code>sort-table</code>: Sort a table alphabetical… | |
197 <li><code>number-table-rows</code>: Add numbers to tab… | |
198 <li><code>number-lines</code>: Numberlines in plaintex… | |
199 <li><code>transpose-tables</code>: Transpose all table… | |
200 <li><code>remove-color</code>: Remove color from web p… | |
201 <li><code>remove-images</code>: Remove images from web… | |
202 <li><code>hue-shift-positive</code>: Shift the colors … | |
203 <li><code>hue-shift-negative</code>: Shift the colors … | |
204 <li><code>increase-brightness</code>: Increase the bri… | |
205 <li><code>decrease-brightness</code>: Decrease the bri… | |
206 <li><code>invert-color</code>: Invert the color of the… | |
207 </ul> | |
208 <p>The currently provided bookmarklets were sourced from <a hre… | |
209 <p>A great illustration of how useful bookmarklets can be is shown… | |
210 <p><img src="../static/image/article/sort-table-before.png… | |
211 <p>After executing our <code>sort-table</code> bookmar… | |
212 <p><img src="../static/image/article/sort-table-after.png&… | |
213 <p>We were then able to click and sort by &quot;Scientific Nam… | |
214 <p>We hope you enjoy using these bookmarklets and find many more t… | |
215 <p>Thanks for reading :-)</p> | |
216 </body> | |
217 </html> | |
218 </content></entry><entry><id>urn:uuid:6780ffb8-9047-310a-9441-50c296c7e6… | |
219 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
220 <head> | |
221 <meta charset="utf-8" /> | |
222 <meta name="generator" content="pandoc" /> | |
223 <meta name="viewport" content="width=device-width, i… | |
224 <title>Class-based, functional configuration</title> | |
225 <style type="text/css"> | |
226 code{white-space: pre-wrap;} | |
227 span.smallcaps{font-variant: small-caps;} | |
228 span.underline{text-decoration: underline;} | |
229 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
230 </style> | |
231 <style type="text/css"> | |
232 a.sourceLine { display: inline-block; line-height: 1.25; } | |
233 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
234 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
235 .sourceCode { overflow: visible; } | |
236 code.sourceCode { white-space: pre; position: relative; } | |
237 div.sourceCode { margin: 1em 0; } | |
238 pre.sourceCode { margin: 0; } | |
239 @media screen { | |
240 div.sourceCode { overflow: auto; } | |
241 } | |
242 @media print { | |
243 code.sourceCode { white-space: pre-wrap; } | |
244 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
245 } | |
246 pre.numberSource a.sourceLine | |
247 { position: relative; } | |
248 pre.numberSource a.sourceLine:empty | |
249 { position: absolute; } | |
250 pre.numberSource a.sourceLine::before | |
251 { content: attr(data-line-number); | |
252 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
253 border: none; pointer-events: all; | |
254 -webkit-touch-callout: none; -webkit-user-select: none; | |
255 -khtml-user-select: none; -moz-user-select: none; | |
256 -ms-user-select: none; user-select: none; | |
257 padding: 0 4px; width: 4em; | |
258 color: #aaaaaa; | |
259 } | |
260 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
261 div.sourceCode | |
262 { } | |
263 @media screen { | |
264 a.sourceLine::before { text-decoration: underline; } | |
265 } | |
266 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
267 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
268 code span.at { color: #7d9029; } /* Attribute */ | |
269 code span.bn { color: #40a070; } /* BaseN */ | |
270 code span.bu { } /* BuiltIn */ | |
271 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
272 code span.ch { color: #4070a0; } /* Char */ | |
273 code span.cn { color: #880000; } /* Constant */ | |
274 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
275 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
276 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
277 code span.dt { color: #902000; } /* DataType */ | |
278 code span.dv { color: #40a070; } /* DecVal */ | |
279 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
280 code span.ex { } /* Extension */ | |
281 code span.fl { color: #40a070; } /* Float */ | |
282 code span.fu { color: #06287e; } /* Function */ | |
283 code span.im { } /* Import */ | |
284 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
285 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
286 code span.op { color: #666666; } /* Operator */ | |
287 code span.ot { color: #007020; } /* Other */ | |
288 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
289 code span.sc { color: #4070a0; } /* SpecialChar */ | |
290 code span.ss { color: #bb6688; } /* SpecialString */ | |
291 code span.st { color: #4070a0; } /* String */ | |
292 code span.va { color: #19177c; } /* Variable */ | |
293 code span.vs { color: #4070a0; } /* VerbatimString */ | |
294 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
295 </style> | |
296 <!--[if lt IE 9]> | |
297 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
298 <![endif]--> | |
299 </head> | |
300 <body> | |
301 <header> | |
302 <h1 class="title">Class-based, functional configuration&… | |
303 </header> | |
304 <p>One of the strongest assets of Nyxt is its configurability: any… | |
305 <p>While technically possible, it proved practically difficult to … | |
306 <h1 id="case-study-emacs">Case study: Emacs</h1> | |
307 <p>The <a href="https://www.gnu.org/software/emacs/"&… | |
308 <p>Nyxt draws much from Emacs when it comes to extensibility, name… | |
309 <p>When Emacs was designed in the 1980s, it's likely that the… | |
310 <p>It isn't all perfect though. Emacs customizability comes w… | |
311 <p>A frequent source of Emacs bankruptcy is inherent to its archit… | |
312 <h1 id="what-we-need">What we need</h1> | |
313 <p>With Nyxt, we envision the growth of a community and, hopefully… | |
314 <p>Starting from a configurability similar to Emacs (also using a … | |
315 <ul> | |
316 <li><p>All configurable original values should be accessible… | |
317 <li><p>Default values should be configurable at any time (fr… | |
318 <li><p>Third-party packages should be able to offer customiz… | |
319 <li><p>Any option or set of options should be reversible to … | |
320 <li><p>Sets of options should be composable. In particular, … | |
321 </ul> | |
322 <h1 id="initial-attempts">Initial attempts</h1> | |
323 <p>Common Lisp comes with a very powerful object-orientated system… | |
324 <p>Almost all the data in Nyxt is structured into classes. Thus, c… | |
325 <p>The first obvious strategy that comes to mind is to make the sl… | |
326 <div class="sourceCode" id="cb1" data-org-languag… | |
327 <a class="sourceLine" id="cb1-2" data-line-number… | |
328 <a class="sourceLine" id="cb1-3" data-line-number… | |
329 <a class="sourceLine" id="cb1-4" data-line-number… | |
330 <a class="sourceLine" id="cb1-5" data-line-number… | |
331 <a class="sourceLine" id="cb1-6" data-line-number… | |
332 <a class="sourceLine" id="cb1-7" data-line-number… | |
333 <a class="sourceLine" id="cb1-8" data-line-number… | |
334 <a class="sourceLine" id="cb1-9" data-line-number… | |
335 <a class="sourceLine" id="cb1-10" data-line-numbe… | |
336 <p>The drawbacks are obvious:</p> | |
337 <ul> | |
338 <li>We need as many &quot;default&quot; variables as we ha… | |
339 <li>Being globals, replacing them means altering the global state,… | |
340 <li>Changes to variables are irreversible: there is no way to acce… | |
341 </ul> | |
342 <p>This approach is not sustainable. We need a better way. In part… | |
343 <p>CLOS is complex and powerful. Some parts are left unspecified. … | |
344 <ol> | |
345 <li><p>We first tried to set the slot default value directly… | |
346 <li><p>We tried to replace the class definition directly, fo… | |
347 <div class="sourceCode" id="cb2" data-org-languag… | |
348 <p>This hack works as long as there is no inheritance. The new def… | |
349 <li><p>Use <code>closer-mop:ensure-class</code> … | |
350 <div class="sourceCode" id="cb3" data-org-languag… | |
351 <a class="sourceLine" id="cb3-2" data-line-number… | |
352 <p>it would define a new <code>buffer</code> class wit… | |
353 </ol> | |
354 <h1 id="class-composition">Class composition</h1> | |
355 <p>In computer science, it can be considered good practice to use … | |
356 <div class="sourceCode" id="cb4" data-org-languag… | |
357 <a class="sourceLine" id="cb4-2" data-line-number… | |
358 <a class="sourceLine" id="cb4-3" data-line-number… | |
359 <a class="sourceLine" id="cb4-4" data-line-number… | |
360 <a class="sourceLine" id="cb4-5" data-line-number… | |
361 <a class="sourceLine" id="cb4-6" data-line-number… | |
362 <p>Whenever we want to instantiate a buffer, we call</p> | |
363 <div class="sourceCode" id="cb5" data-org-languag… | |
364 <p>Why is this interesting? Because now you can safely redefine th… | |
365 <div class="sourceCode" id="cb6" data-org-languag… | |
366 <a class="sourceLine" id="cb6-2" data-line-number… | |
367 <a class="sourceLine" id="cb6-3" data-line-number… | |
368 <a class="sourceLine" id="cb6-4" data-line-number… | |
369 <p>Our user-buffer override now inherits from <code>my-buffe… | |
370 <p>This resolves our problem statement: no globals (beside <cod… | |
371 <p>Even though the syntax is relatively light, we offer the <co… | |
372 <div class="sourceCode" id="cb7" data-org-languag… | |
373 <a class="sourceLine" id="cb7-2" data-line-number… | |
374 <a class="sourceLine" id="cb7-3" data-line-number… | |
375 <a class="sourceLine" id="cb7-4" data-line-number… | |
376 <p>This macro comes with some benefits:</p> | |
377 <ul> | |
378 <li><p>It's shorter and easier to write, the user class… | |
379 <li><p>It displays a warning when the slot name is unknown, … | |
380 <li><p>It binds <code>%slot-default</code> to th… | |
381 </ul> | |
382 <h1 id="conclusions-and-thoughts">Conclusions and though… | |
383 <p>Our approach is both powerful and flexible. The user has the ab… | |
384 <p>We would like to encourage other programs and programmers to em… | |
385 <p>A tool that works for the 80% is great when you are doing commo… | |
386 <p>Thanks for reading :-)</p> | |
387 </body> | |
388 </html> | |
389 </content></entry><entry><id>urn:uuid:1860537e-3dde-31ba-9488-05c1280415… | |
390 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
391 <head> | |
392 <meta charset="utf-8" /> | |
393 <meta name="generator" content="pandoc" /> | |
394 <meta name="viewport" content="width=device-width, i… | |
395 <title>Nyxt 2 Pre-release 2</title> | |
396 <style type="text/css"> | |
397 code{white-space: pre-wrap;} | |
398 span.smallcaps{font-variant: small-caps;} | |
399 span.underline{text-decoration: underline;} | |
400 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
401 </style> | |
402 <!--[if lt IE 9]> | |
403 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
404 <![endif]--> | |
405 </head> | |
406 <body> | |
407 <header> | |
408 <h1 class="title">Nyxt 2 Pre-release 2</h1> | |
409 </header> | |
410 <p>We are happy to announce the second pre-release of Nyxt version… | |
411 <p>Nyxt 2 is a massive overhaul of the Nyxt 1 series. A lot of eff… | |
412 <p>This is a test release for everyone to try out before the final… | |
413 <p>Notable highlights:</p> | |
414 <ul> | |
415 <li><p>New startup page.</p></li> | |
416 <li><p>New &quot;common settings&quot; page. A butto… | |
417 <li><p>New <code>nosound-mode</code> to mute ind… | |
418 <li><p>New <code>search-selection</code> command… | |
419 <p>It allows to query the highlighted text with a given search eng… | |
420 <li><p>Puny-encoded URLs are now human-readable.</p>&l… | |
421 <li><p>The <code>M-i</code> binding toggles the … | |
422 <li><p>New session dumping commands, namely <code>stor… | |
423 </ul> | |
424 <p>For the complete change list, please consult the <a href=&qu… | |
425 <p>We hope you enjoy these new features, and that they help make y… | |
426 <h1 id="screenshots">Screenshots</h1> | |
427 <h2 id="new-startup-page">New startup page</h2> | |
428 <p><img src="../static/image/article/help-page.png" /… | |
429 <h2 id="new-graphical-settings-page">New graphical setti… | |
430 <p><img src="../static/image/article/common-settings.png&q… | |
431 </body> | |
432 </html> | |
433 </content></entry><entry><id>urn:uuid:1be4caf5-78dc-39a6-b342-431bc5ce47… | |
434 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
435 <head> | |
436 <meta charset="utf-8" /> | |
437 <meta name="generator" content="pandoc" /> | |
438 <meta name="viewport" content="width=device-width, i… | |
439 <title>Common Settings and Easy Configuration</title> | |
440 <style type="text/css"> | |
441 code{white-space: pre-wrap;} | |
442 span.smallcaps{font-variant: small-caps;} | |
443 span.underline{text-decoration: underline;} | |
444 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
445 </style> | |
446 <style type="text/css"> | |
447 a.sourceLine { display: inline-block; line-height: 1.25; } | |
448 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
449 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
450 .sourceCode { overflow: visible; } | |
451 code.sourceCode { white-space: pre; position: relative; } | |
452 div.sourceCode { margin: 1em 0; } | |
453 pre.sourceCode { margin: 0; } | |
454 @media screen { | |
455 div.sourceCode { overflow: auto; } | |
456 } | |
457 @media print { | |
458 code.sourceCode { white-space: pre-wrap; } | |
459 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
460 } | |
461 pre.numberSource a.sourceLine | |
462 { position: relative; } | |
463 pre.numberSource a.sourceLine:empty | |
464 { position: absolute; } | |
465 pre.numberSource a.sourceLine::before | |
466 { content: attr(data-line-number); | |
467 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
468 border: none; pointer-events: all; | |
469 -webkit-touch-callout: none; -webkit-user-select: none; | |
470 -khtml-user-select: none; -moz-user-select: none; | |
471 -ms-user-select: none; user-select: none; | |
472 padding: 0 4px; width: 4em; | |
473 color: #aaaaaa; | |
474 } | |
475 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
476 div.sourceCode | |
477 { } | |
478 @media screen { | |
479 a.sourceLine::before { text-decoration: underline; } | |
480 } | |
481 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
482 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
483 code span.at { color: #7d9029; } /* Attribute */ | |
484 code span.bn { color: #40a070; } /* BaseN */ | |
485 code span.bu { } /* BuiltIn */ | |
486 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
487 code span.ch { color: #4070a0; } /* Char */ | |
488 code span.cn { color: #880000; } /* Constant */ | |
489 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
490 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
491 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
492 code span.dt { color: #902000; } /* DataType */ | |
493 code span.dv { color: #40a070; } /* DecVal */ | |
494 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
495 code span.ex { } /* Extension */ | |
496 code span.fl { color: #40a070; } /* Float */ | |
497 code span.fu { color: #06287e; } /* Function */ | |
498 code span.im { } /* Import */ | |
499 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
500 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
501 code span.op { color: #666666; } /* Operator */ | |
502 code span.ot { color: #007020; } /* Other */ | |
503 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
504 code span.sc { color: #4070a0; } /* SpecialChar */ | |
505 code span.ss { color: #bb6688; } /* SpecialString */ | |
506 code span.st { color: #4070a0; } /* String */ | |
507 code span.va { color: #19177c; } /* Variable */ | |
508 code span.vs { color: #4070a0; } /* VerbatimString */ | |
509 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
510 </style> | |
511 <!--[if lt IE 9]> | |
512 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
513 <![endif]--> | |
514 </head> | |
515 <body> | |
516 <header> | |
517 <h1 class="title">Common Settings and Easy Configuration… | |
518 </header> | |
519 <p>Common settings and easy configuration recently landed in Nyxt!… | |
520 <p>When you first start Nyxt, our new <code>*help*</code&… | |
521 <p><img src="../static/image/article/help-page.png" /… | |
522 <p>If you click on <code>Common settings</code>, you&#… | |
523 <p><img src="../static/image/article/common-settings.png&q… | |
524 <p>Your settings will automatically be saved and reloaded whenever… | |
525 <p>Don't worry about overwriting changes to your <code>… | |
526 <p>Here's what would be appended to your <code>auto-con… | |
527 <div class="sourceCode" id="configuration" data-o… | |
528 <a class="sourceLine" id="configuration-2" data-l… | |
529 <p>No magic. Transparent, straightforward Lisp.</p> | |
530 <p>Beyond customization of common settings, we've added the a… | |
531 <p>Below you can see an example of how we can customize a class:&l… | |
532 <p><img src="../static/image/article/describe-class.png&qu… | |
533 <p>Every single slot marked with <code>Configure</code>… | |
534 <p>Let's run through an example: let's change the height… | |
535 <p>First you would find the slot that you are interested in, in th… | |
536 <p><img src="../static/image/article/describe-slot-status-… | |
537 <p>Then you would view the current value, the default form, and th… | |
538 <p><img src="../static/image/article/configure-slot-value.… | |
539 <p>After you supply your new value, any new windows (even after re… | |
540 <p><img src="../static/image/article/configure-result.png&… | |
541 <p>Please note: configuration changes only affect new instances of… | |
542 <p>Thanks for reading :-)</p> | |
543 </body> | |
544 </html> | |
545 </content></entry><entry><id>urn:uuid:3066e4f1-b97c-3501-921d-88eb1c4107… | |
546 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
547 <head> | |
548 <meta charset="utf-8" /> | |
549 <meta name="generator" content="pandoc" /> | |
550 <meta name="viewport" content="width=device-width, i… | |
551 <title>FOSDEM Presentation</title> | |
552 <style type="text/css"> | |
553 code{white-space: pre-wrap;} | |
554 span.smallcaps{font-variant: small-caps;} | |
555 span.underline{text-decoration: underline;} | |
556 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
557 </style> | |
558 <!--[if lt IE 9]> | |
559 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
560 <![endif]--> | |
561 </head> | |
562 <body> | |
563 <header> | |
564 <h1 class="title">FOSDEM Presentation</h1> | |
565 </header> | |
566 <p>On February 2nd, 2020, we had the privilege of attending FOSDEM… | |
567 <p>Nyxt has progressed a lot since then, but we still find it very… | |
568 <p><a href="../static/video/fosdem-presentation.mp4"&… | |
569 <p>To see the FOSDEM URL for this presentation please click here: … | |
570 </body> | |
571 </html> | |
572 </content></entry><entry><id>urn:uuid:fe2e6b09-ab2f-382f-ba00-49856422b9… | |
573 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
574 <head> | |
575 <meta charset="utf-8" /> | |
576 <meta name="generator" content="pandoc" /> | |
577 <meta name="viewport" content="width=device-width, i… | |
578 <meta name="author" content="Artyom Bologov" /&… | |
579 <title>auto-mode will take care of your VPN when you forget!<… | |
580 <style type="text/css"> | |
581 code{white-space: pre-wrap;} | |
582 span.smallcaps{font-variant: small-caps;} | |
583 span.underline{text-decoration: underline;} | |
584 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
585 </style> | |
586 <style type="text/css"> | |
587 a.sourceLine { display: inline-block; line-height: 1.25; } | |
588 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
589 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
590 .sourceCode { overflow: visible; } | |
591 code.sourceCode { white-space: pre; position: relative; } | |
592 div.sourceCode { margin: 1em 0; } | |
593 pre.sourceCode { margin: 0; } | |
594 @media screen { | |
595 div.sourceCode { overflow: auto; } | |
596 } | |
597 @media print { | |
598 code.sourceCode { white-space: pre-wrap; } | |
599 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
600 } | |
601 pre.numberSource a.sourceLine | |
602 { position: relative; } | |
603 pre.numberSource a.sourceLine:empty | |
604 { position: absolute; } | |
605 pre.numberSource a.sourceLine::before | |
606 { content: attr(data-line-number); | |
607 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
608 border: none; pointer-events: all; | |
609 -webkit-touch-callout: none; -webkit-user-select: none; | |
610 -khtml-user-select: none; -moz-user-select: none; | |
611 -ms-user-select: none; user-select: none; | |
612 padding: 0 4px; width: 4em; | |
613 color: #aaaaaa; | |
614 } | |
615 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
616 div.sourceCode | |
617 { } | |
618 @media screen { | |
619 a.sourceLine::before { text-decoration: underline; } | |
620 } | |
621 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
622 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
623 code span.at { color: #7d9029; } /* Attribute */ | |
624 code span.bn { color: #40a070; } /* BaseN */ | |
625 code span.bu { } /* BuiltIn */ | |
626 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
627 code span.ch { color: #4070a0; } /* Char */ | |
628 code span.cn { color: #880000; } /* Constant */ | |
629 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
630 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
631 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
632 code span.dt { color: #902000; } /* DataType */ | |
633 code span.dv { color: #40a070; } /* DecVal */ | |
634 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
635 code span.ex { } /* Extension */ | |
636 code span.fl { color: #40a070; } /* Float */ | |
637 code span.fu { color: #06287e; } /* Function */ | |
638 code span.im { } /* Import */ | |
639 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
640 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
641 code span.op { color: #666666; } /* Operator */ | |
642 code span.ot { color: #007020; } /* Other */ | |
643 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
644 code span.sc { color: #4070a0; } /* SpecialChar */ | |
645 code span.ss { color: #bb6688; } /* SpecialString */ | |
646 code span.st { color: #4070a0; } /* String */ | |
647 code span.va { color: #19177c; } /* Variable */ | |
648 code span.vs { color: #4070a0; } /* VerbatimString */ | |
649 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
650 </style> | |
651 <!--[if lt IE 9]> | |
652 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
653 <![endif]--> | |
654 </head> | |
655 <body> | |
656 <header> | |
657 <h1 class="title">auto-mode will take care of your VPN w… | |
658 <p class="author">Artyom Bologov</p> | |
659 </header> | |
660 <p>Your Internet privacy routine can be simple or complicated, rit… | |
661 <p>While browsers and extensions offer some options- like blocklis… | |
662 <p>That's where Nyxt's new <code>auto-mode</cod… | |
663 <h1 id="how-to-use-it">How to use it?</h1> | |
664 <p>Just add <code>auto-mode</code> to your buffer <… | |
665 <div class="sourceCode" id="cb1" data-org-languag… | |
666 <a class="sourceLine" id="cb1-2" data-line-number… | |
667 <p>Now, if you navigate to a web page, enable <code>proxy-mo… | |
668 <p>If you get back to the page you saved <code>proxy-mode<… | |
669 <h1 id="this-command-is-hard-to-type-is-there-an-alternative&quo… | |
670 <p>If you don't want to type in the long <code>save-non… | |
671 <div class="sourceCode" id="cb2" data-org-languag… | |
672 <a class="sourceLine" id="cb2-2" data-line-number… | |
673 <p>It's simple and convenient. Say, you open some web page an… | |
674 <p><img src="../static/image/article/auto-mode-permanent.p… | |
675 <p>If you answer &quot;yes&quot;, you'll be prompted … | |
676 <h1 id="how-do-i-change-the-auto-mode-rules">How do I ch… | |
677 <p>There are two ways:</p> | |
678 <ul> | |
679 <li>you can browse your usual websites and use <code>auto-mo… | |
680 <li>you can edit the file that <code>auto-mode</code> … | |
681 </ul> | |
682 <p>The rules file is stored in <code>~/.local/share/nyxt/aut… | |
683 <p>When you open it, you'll be presented with a header explai… | |
684 <ul> | |
685 <li>Every rule is delimited by a newline.</li> | |
686 <li>Rules can have test, <code>:excluded</code> modes,… | |
687 <ul> | |
688 <li>Test is the first thing in the rule. It relies on <code>… | |
689 <li><code>:included</code> modes are the ones that wil… | |
690 <li><code>:excluded</code> modes will be always disabl… | |
691 <li><code>:exact-p</code> denotes whether you want <… | |
692 </ul></li> | |
693 </ul> | |
694 <p>That's almost everything you need to know to create new ru… | |
695 <h1 id="what-about-other-uses-of-auto-mode">What about o… | |
696 <p>Maybe you like <code>noscript-mode</code> and <c… | |
697 <p><code>auto-mode</code> is about toggling modes, so … | |
698 <p>Thanks for reading :-)</p> | |
699 </body> | |
700 </html> | |
701 </content></entry><entry><id>urn:uuid:d452421c-46dd-3132-a2f3-89fa0a4633… | |
702 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
703 <head> | |
704 <meta charset="utf-8" /> | |
705 <meta name="generator" content="pandoc" /> | |
706 <meta name="viewport" content="width=device-width, i… | |
707 <title>Nyxt 2 Pre-release 1</title> | |
708 <style type="text/css"> | |
709 code{white-space: pre-wrap;} | |
710 span.smallcaps{font-variant: small-caps;} | |
711 span.underline{text-decoration: underline;} | |
712 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
713 </style> | |
714 <!--[if lt IE 9]> | |
715 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
716 <![endif]--> | |
717 </head> | |
718 <body> | |
719 <header> | |
720 <h1 class="title">Nyxt 2 Pre-release 1</h1> | |
721 </header> | |
722 <p>If the above title was confusing, don't worry, you're… | |
723 <p>Nyxt 2 is a massive overhaul of the Nyxt 1 series. A lot of eff… | |
724 <p>This is a test release for everyone to try out before the final… | |
725 <p>Notable highlights:</p> | |
726 <ul> | |
727 <li>Use the new <code>auto-mode</code> to automaticall… | |
728 <li>Use the new <code>autofill</code> command to inser… | |
729 <li>Support for <code>data-profiles</code>. Data profi… | |
730 <li>New <code>--script</code> command line option that… | |
731 <li>New <code>lisp-repl</code> command to evaluate Lis… | |
732 <li>Built-in <code>tutorial</code> and <code>man… | |
733 <li>New documentation commands: <code>describe-function</… | |
734 <li>Improved macOS performance with support for Quartz renderer. N… | |
735 <li>No more D-Bus. We've moved to direct web renderer binding… | |
736 <li>Built-in spell checker/suggestions.</li> | |
737 </ul> | |
738 <p>For the complete change list, please consult the <a href=&qu… | |
739 <p>We hope you enjoy these new features, and that they help make y… | |
740 <h1 id="screenshots">Screenshots</h1> | |
741 <h2 id="autofills">Autofills</h2> | |
742 <p>Use Autofills to conveniently fill in data:</p> | |
743 <p><img src="../static/image/animation/auto-fill.gif"… | |
744 <h2 id="clipboard-history">Clipboard history</h2> | |
745 <p>Remember all of your clipboard history:</p> | |
746 <p><img src="../static/image/animation/paste-ring.gif"… | |
747 <h2 id="intelligent-bookmark-search">Intelligent bookmar… | |
748 <p>Use compound queries with <code>AND</code> and <… | |
749 <p><img src="../static/image/bookmark.png" /></… | |
750 <h2 id="built-in-repl">Built-in REPL</h2> | |
751 <p>Use the built-in REPL to program your browser on the fly.</p… | |
752 <p><img src="../static/image/animation/lisp-repl.gif"… | |
753 <h2 id="powerful-link-hinting">Powerful link hinting<… | |
754 <p>Use link hinting to quickly jump around. You can jump to a link… | |
755 <p><img src="../static/image/animation/link-hint.gif"… | |
756 </body> | |
757 </html> | |
758 </content></entry><entry><id>urn:uuid:7c15c026-c66c-3fb8-9964-3c01564b55… | |
759 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
760 <head> | |
761 <meta charset="utf-8" /> | |
762 <meta name="generator" content="pandoc" /> | |
763 <meta name="viewport" content="width=device-width, i… | |
764 <title>DebConf Presentation</title> | |
765 <style type="text/css"> | |
766 code{white-space: pre-wrap;} | |
767 span.smallcaps{font-variant: small-caps;} | |
768 span.underline{text-decoration: underline;} | |
769 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
770 </style> | |
771 <!--[if lt IE 9]> | |
772 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
773 <![endif]--> | |
774 </head> | |
775 <body> | |
776 <header> | |
777 <h1 class="title">DebConf Presentation</h1> | |
778 </header> | |
779 <p>This year we got to participate in the virtual Debconf lightnin… | |
780 <p><a href="../static/video/debconf-compressed.mp4"&g… | |
781 <p>Thanks for watching :-)</p> | |
782 </body> | |
783 </html> | |
784 </content></entry><entry><id>urn:uuid:5c0223a5-454b-3675-b412-1ad387e845… | |
785 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
786 <head> | |
787 <meta charset="utf-8" /> | |
788 <meta name="generator" content="pandoc" /> | |
789 <meta name="viewport" content="width=device-width, i… | |
790 <title>Nyxt release 1.3.3</title> | |
791 <style type="text/css"> | |
792 code{white-space: pre-wrap;} | |
793 span.smallcaps{font-variant: small-caps;} | |
794 span.underline{text-decoration: underline;} | |
795 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
796 </style> | |
797 <!--[if lt IE 9]> | |
798 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
799 <![endif]--> | |
800 </head> | |
801 <body> | |
802 <header> | |
803 <h1 class="title">Nyxt release 1.3.3</h1> | |
804 </header> | |
805 <p>After another short but intense development cycle, we are happy… | |
806 <p>This version brings outstanding and unique features (again!). I… | |
807 <h1 id="new-features">New features</h1> | |
808 <h2 id="multiple-input-selection">Multiple input selecti… | |
809 <p>Until now, Nyxt's prompt was able to ask the user for <… | |
810 <p>The default bindings are:</p> | |
811 <ul> | |
812 <li><p><code>C-SPACE</code> to toggle the mark o… | |
813 <li><p><code>M-a</code> to mark all visible entr… | |
814 <li><p><code>M-u</code> to unmark all visible en… | |
815 </ul> | |
816 <p>Furthermore, when the input is changed and the candidates are r… | |
817 <p>For example, if we have several Wikipedia and Stack Overflow pa… | |
818 <ul> | |
819 <li><p>Press <code>C-x k</code> (Emacs bindings)… | |
820 <li><p>In the list of current buffers, type &quot;wikip&… | |
821 <li><p>Erase the input and filter with <code>stack<… | |
822 <li><p>Press <code>Enter</code>.</p></l… | |
823 </ul> | |
824 <img src="/static/image/multiple-selection.gif" align="… | |
825 <p>How efficient is that!?</p> | |
826 <p>Of course should you wish, you always have the possibility to w… | |
827 <h2 id="bookmarks-tags-and-compound-queries">Bookmarks, … | |
828 <p>Now with Nyxt, you can <strong>tag your bookmarks</str… | |
829 <p>When you bookmark a new page (<code>C-m s</code> or… | |
830 bookmark-page</code>), you are asked for a list of space-separated… | |
831 <img src="/static/image/bookmark-sea-turtle.png" align=&quo… | |
832 <p>When about to open a bookmark (<code>C-m o</code>, … | |
833 <p>Examples:</p> | |
834 <pre class="example"><code>+lisp -blog | |
835 +blog (or lisp emacs) | |
836 +foo -bar (or (and john doe) (not (and tic tac))) | |
837 </code></pre> | |
838 <p>Additionally, the bookmarks are now <strong>saved in text… | |
839 <h2 id="password-manager">Password manager</h2> | |
840 <p>Nyxt 1.3.3 provides a password manager interface to <a href=… | |
841 <p>See the commands <code>save-new-password</code> and… | |
842 <p>Credits go to Solomon Bloch (<span class="citation"… | |
843 <h2 id="session-persistence">Session persistence</h2&… | |
844 <p>The user session is now automatically persisted. Close Nyxt, an… | |
845 <p>You can also quit without saving it with <code>M-x quit-a… | |
846 <h2 id="clone-git-repositories">Clone Git repositories&l… | |
847 <p>Nyxt 1.3.3 introduces the <code>vcs-clone</code> (a… | |
848 <p>We see this new command as a simple preview of what is possible… | |
849 <h2 id="download-videos">Download videos</h2> | |
850 <p>Another utility is the new <code>download-video</code&… | |
851 <p>After the download, you can open your video with the <code&g… | |
852 <p>See the manual for more documentation and configuration options… | |
853 <h2 id="reopen-closed-tabs">Reopen closed tabs</h2> | |
854 <p>The new command <code>reopen-buffer</code> (bound t… | |
855 <p>Credits go to <code>4t0m</code>.</p> | |
856 <h2 id="faster-and-improved-fuzzy-completion">Faster and… | |
857 <p>Our minibuffer can now match against typos and has much improve… | |
858 <p>The rules are as follows:</p> | |
859 <ul> | |
860 <li><p>When any of the input strings does not match any cand… | |
861 <li><p>When any of the input strings matches exactly</p&g… | |
862 </ul> | |
863 <p>Example in <code>execute-command</code> (<code&g… | |
864 <ul> | |
865 <li><p><code>buffer</code> would filter out all … | |
866 <li><p><code>swt buffer</code> would do as above… | |
867 </ul> | |
868 <h2 id="view-the-buffer-history-as-a-tree">View the buff… | |
869 <p>Early versions of Nyxt have supported tree based history. Howev… | |
870 <p>Nyxt 1.3.3 introduces the command <code>buffer-history-tr… | |
871 <img src="/static/image/history-tree.png" align="cente… | |
872 <p>The keys <code>C-b</code> and <code>C-f</c… | |
873 <p>There is also <code>history-all-query</code> (<c… | |
874 <h2 id="new-command-line-argument-no-init">New command l… | |
875 <p>The command line argument <code>--no-init</code> or… | |
876 <h1 id="changes-in-configuration-settings-alias-functional-confi… | |
877 <p>A new style of configuration is available allowing for a &q… | |
878 <h1 id="whats-next">What's next ?</h1> | |
879 <p>We have a ton of ideas, as you certainly will the second you tr… | |
880 <p><a href="https://www.indiegogo.com/projects/next-browse… | |
881 <p>If you'd like to become a sponsor, or if you need some hel… | |
882 <p>Find out more about Nyxt:</p> | |
883 <ul> | |
884 <li>The <a href="https://github.com/atlas-engineer/next/bl… | |
885 <li>Our <a href="https://github.com/atlas-engineer/next/wi… | |
886 <li>Our <a href="https://www.reddit.com/r/next_browser/&qu… | |
887 <li>#nyxt-browser on Freenode IRC.</li> | |
888 </ul> | |
889 </body> | |
890 </html> | |
891 </content></entry><entry><id>urn:uuid:a28b1781-1134-3bd4-9521-62518145d7… | |
892 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
893 <head> | |
894 <meta charset="utf-8" /> | |
895 <meta name="generator" content="pandoc" /> | |
896 <meta name="viewport" content="width=device-width, i… | |
897 <title>Autofills</title> | |
898 <style type="text/css"> | |
899 code{white-space: pre-wrap;} | |
900 span.smallcaps{font-variant: small-caps;} | |
901 span.underline{text-decoration: underline;} | |
902 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
903 </style> | |
904 <!--[if lt IE 9]> | |
905 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
906 <![endif]--> | |
907 </head> | |
908 <body> | |
909 <header> | |
910 <h1 class="title">Autofills</h1> | |
911 </header> | |
912 <p>Autofills are a feature in Nyxt that allow you to compose and f… | |
913 <p><img src="../static/image/article/typical-autofill.png&… | |
914 <p>In Nyxt, autofills are dynamic, and context sensitive. In addit… | |
915 <p>An example of a dynamic autofill can be a requirement to fill i… | |
916 <p><img src="../static/image/article/nyxt-autofill.png&quo… | |
917 <p>Beyond simple workflows of inputting a single element, autofill… | |
918 <pre id="template" class="language"><code&g… | |
919 | |
920 We&#39;ve received your information about problem X, and we are work… | |
921 a solution. We anticipate we&#39;ll have more information for you by… | |
922 Y. | |
923 | |
924 thank you for continued patience, | |
925 | |
926 signed, Z | |
927 </code></pre> | |
928 <p>Instead of writing this information out all the time, you could… | |
929 <p>To find out more about autofills and how to configure them in N… | |
930 <p>We hope you enjoy using Nyxt's autofills!</p> | |
931 <p>Thanks for reading :-)</p> | |
932 </body> | |
933 </html> | |
934 </content></entry><entry><id>urn:uuid:04aca7fd-0782-3bbc-ba3b-861032d80b… | |
935 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
936 <head> | |
937 <meta charset="utf-8" /> | |
938 <meta name="generator" content="pandoc" /> | |
939 <meta name="viewport" content="width=device-width, i… | |
940 <title>Element Hints</title> | |
941 <style type="text/css"> | |
942 code{white-space: pre-wrap;} | |
943 span.smallcaps{font-variant: small-caps;} | |
944 span.underline{text-decoration: underline;} | |
945 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
946 </style> | |
947 <!--[if lt IE 9]> | |
948 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
949 <![endif]--> | |
950 </head> | |
951 <body> | |
952 <header> | |
953 <h1 class="title">Element Hints</h1> | |
954 </header> | |
955 <p>Element hints are a feature in Nyxt that allow you to interact … | |
956 <p><img src="../static/image/article/element-hint.png"… | |
957 <p>Element hints work like this:</p> | |
958 <ol> | |
959 <li>You press a keybinding.</li> | |
960 <li>A series of hints appear on the page, and in the Minibuffer as… | |
961 <li>Using the Minibuffer you select which hint you would like to n… | |
962 <li>When you're ready, you submit your input, and Nyxt will n… | |
963 </ol> | |
964 <p>Importantly, because the element hints are available in the Min… | |
965 <p>Beyond link navigation, element hints can be used to do a varie… | |
966 <ol> | |
967 <li>copy a URL</li> | |
968 <li>jump to a URL</li> | |
969 <li>open a URL in a background buffer</li> | |
970 <li>open a URL in a new buffer</li> | |
971 <li>click a button</li> | |
972 <li>submit a form</li> | |
973 </ol> | |
974 <p>Like other commands, element hints can accept multiple inputs (… | |
975 <p><img src="../static/image/article/element-hint-multiple… | |
976 <p>We hope you enjoy using Nyxt's advanced element hints!<… | |
977 <p>Thanks for reading :-)</p> | |
978 </body> | |
979 </html> | |
980 </content></entry><entry><id>urn:uuid:dd1beb7f-3100-3502-bc57-fed4c39d55… | |
981 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
982 <head> | |
983 <meta charset="utf-8" /> | |
984 <meta name="generator" content="pandoc" /> | |
985 <meta name="viewport" content="width=device-width, i… | |
986 <title>Reading Lines</title> | |
987 <style type="text/css"> | |
988 code{white-space: pre-wrap;} | |
989 span.smallcaps{font-variant: small-caps;} | |
990 span.underline{text-decoration: underline;} | |
991 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
992 </style> | |
993 <!--[if lt IE 9]> | |
994 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
995 <![endif]--> | |
996 </head> | |
997 <body> | |
998 <header> | |
999 <h1 class="title">Reading Lines</h1> | |
1000 </header> | |
1001 <p>Reading lines are a new feature available in Nyxt. Reading line… | |
1002 <p>Here's what they look like:</p> | |
1003 <p><img src="../static/image/article/reading-line.png"… | |
1004 <p>As can be seen, the reading line is a horizontally drawn gray b… | |
1005 <p><img src="../static/image/article/jump-to-reading-line.… | |
1006 <p>When you are done investigating whatever else you were looking … | |
1007 <p><img src="../static/image/article/return-to-reading-lin… | |
1008 <p>Thanks for reading :-)</p> | |
1009 </body> | |
1010 </html> | |
1011 </content></entry><entry><id>urn:uuid:253ccf45-8df4-3d03-b912-dfcec6c486… | |
1012 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1013 <head> | |
1014 <meta charset="utf-8" /> | |
1015 <meta name="generator" content="pandoc" /> | |
1016 <meta name="viewport" content="width=device-width, i… | |
1017 <title>Next-&gt;Nyxt Project Rename</title> | |
1018 <style type="text/css"> | |
1019 code{white-space: pre-wrap;} | |
1020 span.smallcaps{font-variant: small-caps;} | |
1021 span.underline{text-decoration: underline;} | |
1022 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1023 </style> | |
1024 <!--[if lt IE 9]> | |
1025 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1026 <![endif]--> | |
1027 </head> | |
1028 <body> | |
1029 <header> | |
1030 <h1 class="title">Next-&gt;Nyxt Project Rename</h… | |
1031 </header> | |
1032 <h1 id="next-has-a-new-name">Next has a new name!</h1… | |
1033 <p>Hello everybody, we are happy to announce that Next has a new n… | |
1034 <h1 id="why-the-new-name">Why the new name?</h1> | |
1035 <p>There are a couple of reasons why we've decided to change … | |
1036 <ul> | |
1037 <li>Next is a word in English, making it hard to find related reso… | |
1038 <li>Nyxt is the Greek goddess of the night, making it consistent w… | |
1039 <li>Nyxt is a relatively unique spelling which will result in few … | |
1040 </ul> | |
1041 <p>We hope you like the new name! Thanks for reading :-)</p> | |
1042 </body> | |
1043 </html> | |
1044 </content></entry><entry><id>urn:uuid:3172379f-fe4d-3ce3-9406-c52fc912d3… | |
1045 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1046 <head> | |
1047 <meta charset="utf-8" /> | |
1048 <meta name="generator" content="pandoc" /> | |
1049 <meta name="viewport" content="width=device-width, i… | |
1050 <title>Next release 1.5.0</title> | |
1051 <style type="text/css"> | |
1052 code{white-space: pre-wrap;} | |
1053 span.smallcaps{font-variant: small-caps;} | |
1054 span.underline{text-decoration: underline;} | |
1055 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1056 </style> | |
1057 <!--[if lt IE 9]> | |
1058 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1059 <![endif]--> | |
1060 </head> | |
1061 <body> | |
1062 <header> | |
1063 <h1 class="title">Next release 1.5.0</h1> | |
1064 </header> | |
1065 <p>We are happy to announce the release of Next version 1.5.0!<… | |
1066 <ul> | |
1067 <li><p>Add <code>certificate-whitelist-mode</code&g… | |
1068 <p>This mode temporarily authorizes invalid certificates for the c… | |
1069 <p>The mode can also be enabled for all buffers with a custom whit… | |
1070 <li><p>Add <code>enable-hook-handler</code> and … | |
1071 <p>This is particularly convenient to temporarily disable hooks th… | |
1072 <li><p>Overhaul buffer search to behave in a Helm/Ivy fashio… | |
1073 <li><p>Add <code>search-buffers</code> command t… | |
1074 <li><p>Add <code>delete-other-buffers</code> com… | |
1075 <li><p>Sort buffer by last-access time.</p> | |
1076 <p>In particular, the latest buffer buffer will be popped when del… | |
1077 <li><p>Display log messages in <code>*Messages*</co… | |
1078 <li><p>Show source location with <code>command-inspect… | |
1079 <li><p>Fix define-mode when there is no docstring. (Thanks t… | |
1080 <li><p>Fix tab-insert on candidates.</p></li> | |
1081 <li><p>Rename &quot;link-hint&quot; to &quot;ele… | |
1082 <li><p>Fix updating echo area on buffer change.</p><… | |
1083 </ul> | |
1084 <h1 id="about-next">About Next</h1> | |
1085 <p>Next is a keyboard-oriented, extensible web-browser designed fo… | |
1086 <p><a href="https://next.atlas.engineer/download">… | |
1087 </body> | |
1088 </html> | |
1089 </content></entry><entry><id>urn:uuid:2e1fe75f-a1c9-3263-ab5e-b142dd019b… | |
1090 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1091 <head> | |
1092 <meta charset="utf-8" /> | |
1093 <meta name="generator" content="pandoc" /> | |
1094 <meta name="viewport" content="width=device-width, i… | |
1095 <title>Next release 1.4.0</title> | |
1096 <style type="text/css"> | |
1097 code{white-space: pre-wrap;} | |
1098 span.smallcaps{font-variant: small-caps;} | |
1099 span.underline{text-decoration: underline;} | |
1100 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1101 </style> | |
1102 <!--[if lt IE 9]> | |
1103 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1104 <![endif]--> | |
1105 </head> | |
1106 <body> | |
1107 <header> | |
1108 <h1 class="title">Next release 1.4.0</h1> | |
1109 </header> | |
1110 <p>We are happy to announce the release of Next version 1.4.0!<… | |
1111 <ul> | |
1112 <li><p>CLOS-style configuration. This simplifies setting the… | |
1113 <li><p>Revamped hook system. (Backward incompatible.) Hooks … | |
1114 <li><p>Link hints: Add fuzzy-completion over titles and URLs… | |
1115 <li><p>New <code>--eval</code> command line argu… | |
1116 <li><p>New delete-all-buffers command.</p></li> | |
1117 <li><p>Open directories, music and videos directly from Next… | |
1118 <li><p>VCS: More checks and notifications.</p></li&… | |
1119 <li><p>Complete search-engine names with Tab.</p></… | |
1120 <li><p>Display package in <code>execute-command</co… | |
1121 <li><p>New <code>+platform-port-command+</code> … | |
1122 <li><p>More minibuffer default bindings. Bind <code>C-… | |
1123 <li><p>Remove history duplicates.</p></li> | |
1124 <li><p>Scroll page with an offset by default.</p> | |
1125 Offset is configurable in the <code>page-scroll-ratio</code>… | |
1126 <li><p>New command line parameter <code>--session</… | |
1127 <li><p>Password manager fixes. (Thanks to Rune Juhl Jacobsen… | |
1128 <li><p>Bug fixes:</p> | |
1129 <ul> | |
1130 <li><p>Don't reload page when there is no history chang… | |
1131 <li><p>Omit extra space in search engine queries.</p>&… | |
1132 <li><p>Show if new or current buffer in <code>set-url&… | |
1133 <li><p>Fix minibuffer performance hog.</p></li> | |
1134 <li><p>Fix element hint performance.</p></li> | |
1135 <li><p>Buttons hints can now be followed.</p></li&g… | |
1136 <li><p>Fix element hint rendered offscreen on a scaled displ… | |
1137 </ul></li> | |
1138 </ul> | |
1139 <h1 id="about-next">About Next</h1> | |
1140 <p>Next is a keyboard-oriented, extensible web-browser designed fo… | |
1141 <p><a href="https://next.atlas.engineer/download">… | |
1142 </body> | |
1143 </html> | |
1144 </content></entry><entry><id>urn:uuid:e353ecec-c03c-349e-8b0d-6862015f95… | |
1145 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1146 <head> | |
1147 <meta charset="utf-8" /> | |
1148 <meta name="generator" content="pandoc" /> | |
1149 <meta name="viewport" content="width=device-width, i… | |
1150 <title>The Nyxt Thesis</title> | |
1151 <style type="text/css"> | |
1152 code{white-space: pre-wrap;} | |
1153 span.smallcaps{font-variant: small-caps;} | |
1154 span.underline{text-decoration: underline;} | |
1155 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1156 </style> | |
1157 <!--[if lt IE 9]> | |
1158 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1159 <![endif]--> | |
1160 </head> | |
1161 <body> | |
1162 <header> | |
1163 <h1 class="title">The Nyxt Thesis</h1> | |
1164 </header> | |
1165 <h1 id="why-should-i-care-who-is-nyxt-for">Why should I … | |
1166 <ul> | |
1167 <li>Have you ever felt frustrated looking for a tab?</li> | |
1168 <li>Have you ever been annoyed at the default, unchangable behavio… | |
1169 <li>Have you ever felt that your work-flows could greatly benefit … | |
1170 <li>Do all web browsers feel the same?</li> | |
1171 <li>Are you interested in optimizing and being more efficient?<… | |
1172 </ul> | |
1173 <p>If any of the above resonates with you, you should know that it… | |
1174 <ol> | |
1175 <li>Find the information you need, and find it quickly.</li> | |
1176 <li>Work efficiently, focus on the task at hand instead of navigat… | |
1177 <li>Adjust every single detail and nuance of your web browser to s… | |
1178 <li>Have unlimited power over your environment.</li> | |
1179 </ol> | |
1180 <h1 id="what-is-nyxt-what-is-the-solution">What is Nyxt?… | |
1181 <p>Nyxt is a new type of web browser that gives the user full cont… | |
1182 <p>Out of the box Nyxt ships with extensions that are designed to … | |
1183 <p>All the source code for Nyxt is available to you under a <a … | |
1184 <h1 id="what-is-the-mission-of-nyxt">What is the mission… | |
1185 <p>The mission of Nyxt is to enable people to be as productive as … | |
1186 <p>Nyxt is about freedom. You should have the freedom to modify an… | |
1187 <p>Modern day scientists, engineers, philosophers, artists, and ot… | |
1188 <h1 id="whats-the-problem-with-current-browsers">What�… | |
1189 <p>The problem with current browsers is that they are engaged in w… | |
1190 <p>How to get a large user base? Make a product that is as simple … | |
1191 <h2 id="why-do-browsers-care-about-market-share">Why do … | |
1192 <p>Market share is power. If Chrome unilaterally decided to implem… | |
1193 <p>Furthermore, the business models of browsers, particularly Chro… | |
1194 <h1 id="how-can-i-participate">How can I participate?<… | |
1195 <p>You can try Nyxt now by visiting the download page linked above… | |
1196 </body> | |
1197 </html> | |
1198 </content></entry><entry><id>urn:uuid:f38b35f9-20ef-3e58-af5e-fd71f1260a… | |
1199 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1200 <head> | |
1201 <meta charset="utf-8" /> | |
1202 <meta name="generator" content="pandoc" /> | |
1203 <meta name="viewport" content="width=device-width, i… | |
1204 <title>Nyxt release 1.3.4</title> | |
1205 <style type="text/css"> | |
1206 code{white-space: pre-wrap;} | |
1207 span.smallcaps{font-variant: small-caps;} | |
1208 span.underline{text-decoration: underline;} | |
1209 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1210 </style> | |
1211 <!--[if lt IE 9]> | |
1212 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1213 <![endif]--> | |
1214 </head> | |
1215 <body> | |
1216 <header> | |
1217 <h1 class="title">Nyxt release 1.3.4</h1> | |
1218 </header> | |
1219 <p>We are happy to announce the release of Nyxt version 1.3.4!<… | |
1220 <p>This is a minor bug-fix release:</p> | |
1221 <ul> | |
1222 <li><p>Display number of (marked) candidates in minibuffer.&… | |
1223 <li><p>Improve fuzzy search performance and relevance.</p… | |
1224 <li><p>Swap <code>C-x k</code> and <code>C… | |
1225 <li><p>Fix platform port lookup failure on startup when look… | |
1226 <li><p>Fix <strong>default-hostlist</strong> pat… | |
1227 <li><p>Fix compound tags lookup for bookmarks.</p><… | |
1228 <li><p>Fix history update on Javascript-loaded pages (e.g. G… | |
1229 </ul> | |
1230 <h1 id="about-nyxt">About Nyxt</h1> | |
1231 <p>Nyxt is a keyboard-oriented, extensible web-browser designed fo… | |
1232 <p><a href="https://next.atlas.engineer/download">… | |
1233 </body> | |
1234 </html> | |
1235 </content></entry><entry><id>urn:uuid:97bf83da-7b34-378b-bba8-f4e7eabff0… | |
1236 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1237 <head> | |
1238 <meta charset="utf-8" /> | |
1239 <meta name="generator" content="pandoc" /> | |
1240 <meta name="viewport" content="width=device-width, i… | |
1241 <title>Only 10 days left to back the Nyxt browser crowdfunding c… | |
1242 <style type="text/css"> | |
1243 code{white-space: pre-wrap;} | |
1244 span.smallcaps{font-variant: small-caps;} | |
1245 span.underline{text-decoration: underline;} | |
1246 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1247 </style> | |
1248 <!--[if lt IE 9]> | |
1249 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1250 <![endif]--> | |
1251 </head> | |
1252 <body> | |
1253 <header> | |
1254 <h1 class="title">Only 10 days left to back the Nyxt bro… | |
1255 </header> | |
1256 <p><a href="https://next.atlas.engineer">Nyxt</… | |
1257 <p>In just the last months, we've released three new versions… | |
1258 <p>The project has been seriously taking off these last couple of … | |
1259 <h1 id="so-what-exactly-can-you-do-with-nyxt">So what ex… | |
1260 <ul> | |
1261 <li><p>Go blazing fast when browsing the web! For starters, … | |
1262 <li><p>You can write <strong>new commands for anything… | |
1263 <li><p>You can <a href="https://next.atlas.engineer/… | |
1264 </ul> | |
1265 <ul> | |
1266 <li><p>Every tab history is saved as a tree, meaning you don… | |
1267 <p><img src="../static/image/history-tree.png" />&… | |
1268 <li><p>Press the <code>M-.</code> key to get a l… | |
1269 </ul> | |
1270 <p>And much more, as you would expect from your daily driver: adbl… | |
1271 <h1 id="we-need-your-support">We need your support!</… | |
1272 <p>Nyxt is being developed by a small team of computer scientists … | |
1273 <p>Last month we started a <a href="https://www.indiegogo.… | |
1274 <p>We are also actively looking for people who would like to spons… | |
1275 <h1 id="interested-in-whats-coming-next">Interested in w… | |
1276 <ul> | |
1277 <li><p>Per-domain CSS (e.g. a Dark Mode)</p></li> | |
1278 <li><p>Bluring the lines between a browser, a text editor an… | |
1279 <li><p>A sandboxed REPL for online code snippets</p>&l… | |
1280 <li><p>Overpowered bookmarks</p></li> | |
1281 <li><p>A widget library for third-party authors</p><… | |
1282 <li><p>Explorable features thanks to embedded documentation … | |
1283 <li><p>Minibuffer multiselection (or &quot;delete fuzzy-… | |
1284 <li><p>Seamless integration with decentralized internet prot… | |
1285 <li><p>WebKitGTK sandboxing</p></li> | |
1286 <li><p>Session persistence (or &quot;reopen previously o… | |
1287 <li><p>Enhanced and configurable adblocking</p></li… | |
1288 <li><p>Status bar</p></li> | |
1289 <li><p>Third-party / User extension support</p></li… | |
1290 <li><p>More programmable hooks for everything!</p><… | |
1291 <li><p>Improved macOS support</p></li> | |
1292 </ul> | |
1293 <p>Thank you for reading, and thanks in advance for your support! … | |
1294 </body> | |
1295 </html> | |
1296 </content></entry><entry><id>urn:uuid:0592ea73-0e97-3f77-a7b1-bab7fc3906… | |
1297 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1298 <head> | |
1299 <meta charset="utf-8" /> | |
1300 <meta name="generator" content="pandoc" /> | |
1301 <meta name="viewport" content="width=device-width, i… | |
1302 <title>Nyxt release 1.3.2</title> | |
1303 <style type="text/css"> | |
1304 code{white-space: pre-wrap;} | |
1305 span.smallcaps{font-variant: small-caps;} | |
1306 span.underline{text-decoration: underline;} | |
1307 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1308 </style> | |
1309 <!--[if lt IE 9]> | |
1310 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1311 <![endif]--> | |
1312 </head> | |
1313 <body> | |
1314 <header> | |
1315 <h1 class="title">Nyxt release 1.3.2</h1> | |
1316 </header> | |
1317 <p>We are happy to announce the release of Nyxt version 1.3.2!<… | |
1318 <p>This version includes several cool new features:</p> | |
1319 <ul> | |
1320 <li><p>&quot;Hooks&quot; let you insert your own cod… | |
1321 <li><p>A new <code>open-file</code> command. Thi… | |
1322 <li><p>A <code>paste-from-ring</code> command th… | |
1323 </ul> | |
1324 <p>Last month we started a crowdfunding campaign, so if you like w… | |
1325 <p><a href="https://www.indiegogo.com/projects/nyxt-browse… | |
1326 <p>Thanks for reading and supporting us! You can read the full cha… | |
1327 <h1 id="whats-next">What's next?</h1> | |
1328 <p>We have many new and exciting features in the pipeline that we … | |
1329 <ul> | |
1330 <li><p>A high quality macOS port, with complete GTK parity(!… | |
1331 <li><p>Minibuffer multi-selection (or &quot;delete fuzzy… | |
1332 <li><p>Session persistence (or &quot;reopen previously o… | |
1333 <li><p>Status bar.</p></li> | |
1334 <li><p>WebKitGTK native sandboxing.</p></li> | |
1335 <li><p>Per-domain CSS (e.g. a Dark Mode).</p></li&g… | |
1336 <li><p>Smart searching across all tabs.</p></li> | |
1337 <li><p>Jump to heading all tabs.</p></li> | |
1338 <li><p>Package manager.</p></li> | |
1339 <li><p>Add support for per-tab proxy and Tor support.</p&… | |
1340 <li><p>Add an integrated password manager.</p></li&… | |
1341 <li><p>Add built-in editor.</p></li> | |
1342 <li><p>Allow Nyxt to call out to an external editor to fill … | |
1343 <li><p>Switch from SQLite to a text based format, allowing b… | |
1344 </ul> | |
1345 <p>Thanks for reading!</p> | |
1346 <h1 id="about-nyxt">About Nyxt</h1> | |
1347 <p>Nyxt is a keyboard-oriented, extensible web-browser designed fo… | |
1348 <p><a href="https://next.atlas.engineer/download">… | |
1349 </body> | |
1350 </html> | |
1351 </content></entry><entry><id>urn:uuid:5f991ce4-326a-3e33-8db7-d6f0f660a4… | |
1352 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1353 <head> | |
1354 <meta charset="utf-8" /> | |
1355 <meta name="generator" content="pandoc" /> | |
1356 <meta name="viewport" content="width=device-width, i… | |
1357 <title>Nyxt release 1.3.1</title> | |
1358 <style type="text/css"> | |
1359 code{white-space: pre-wrap;} | |
1360 span.smallcaps{font-variant: small-caps;} | |
1361 span.underline{text-decoration: underline;} | |
1362 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1363 </style> | |
1364 <style type="text/css"> | |
1365 a.sourceLine { display: inline-block; line-height: 1.25; } | |
1366 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
1367 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
1368 .sourceCode { overflow: visible; } | |
1369 code.sourceCode { white-space: pre; position: relative; } | |
1370 div.sourceCode { margin: 1em 0; } | |
1371 pre.sourceCode { margin: 0; } | |
1372 @media screen { | |
1373 div.sourceCode { overflow: auto; } | |
1374 } | |
1375 @media print { | |
1376 code.sourceCode { white-space: pre-wrap; } | |
1377 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
1378 } | |
1379 pre.numberSource a.sourceLine | |
1380 { position: relative; } | |
1381 pre.numberSource a.sourceLine:empty | |
1382 { position: absolute; } | |
1383 pre.numberSource a.sourceLine::before | |
1384 { content: attr(data-line-number); | |
1385 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
1386 border: none; pointer-events: all; | |
1387 -webkit-touch-callout: none; -webkit-user-select: none; | |
1388 -khtml-user-select: none; -moz-user-select: none; | |
1389 -ms-user-select: none; user-select: none; | |
1390 padding: 0 4px; width: 4em; | |
1391 color: #aaaaaa; | |
1392 } | |
1393 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
1394 div.sourceCode | |
1395 { } | |
1396 @media screen { | |
1397 a.sourceLine::before { text-decoration: underline; } | |
1398 } | |
1399 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
1400 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1401 code span.at { color: #7d9029; } /* Attribute */ | |
1402 code span.bn { color: #40a070; } /* BaseN */ | |
1403 code span.bu { } /* BuiltIn */ | |
1404 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
1405 code span.ch { color: #4070a0; } /* Char */ | |
1406 code span.cn { color: #880000; } /* Constant */ | |
1407 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
1408 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1409 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
1410 code span.dt { color: #902000; } /* DataType */ | |
1411 code span.dv { color: #40a070; } /* DecVal */ | |
1412 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
1413 code span.ex { } /* Extension */ | |
1414 code span.fl { color: #40a070; } /* Float */ | |
1415 code span.fu { color: #06287e; } /* Function */ | |
1416 code span.im { } /* Import */ | |
1417 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1418 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
1419 code span.op { color: #666666; } /* Operator */ | |
1420 code span.ot { color: #007020; } /* Other */ | |
1421 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
1422 code span.sc { color: #4070a0; } /* SpecialChar */ | |
1423 code span.ss { color: #bb6688; } /* SpecialString */ | |
1424 code span.st { color: #4070a0; } /* String */ | |
1425 code span.va { color: #19177c; } /* Variable */ | |
1426 code span.vs { color: #4070a0; } /* VerbatimString */ | |
1427 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1428 </style> | |
1429 <!--[if lt IE 9]> | |
1430 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1431 <![endif]--> | |
1432 </head> | |
1433 <body> | |
1434 <header> | |
1435 <h1 class="title">Nyxt release 1.3.1</h1> | |
1436 </header> | |
1437 <p>We are happy to announce the release of Nyxt version 1.3.1!<… | |
1438 <p>This version includes important bug fixes, an improved minibuff… | |
1439 <p>A screenshot of the minibuffer with fuzzy-matching on the URLs … | |
1440 <p><img src="../static/image/nyxt-1.3.1-minibuffer.png&quo… | |
1441 <p>On the community level, we've overhauled our article/blog … | |
1442 <p>We've also added a news feed where you can follow us: <… | |
1443 <p>Thanks!</p> | |
1444 <h1 id="rest-of-the-change-log">Rest of the <a href=&… | |
1445 <ul> | |
1446 <li><p>Print page title in buffer list.</p> | |
1447 <p>And the title is matched when fuzzy-searching a buffer!</p&g… | |
1448 <li><p>Improved minibuffer performance: it now shows up inst… | |
1449 <li><p>Open external links in new buffer by default.</p&g… | |
1450 <p>This can be configured by setting <code>(open-external-li… | |
1451 *interface*)</code> to the desired boolean.</p></li> | |
1452 <li><p>Return to last created buffer when deleting buffer.&l… | |
1453 <p>When killing the last created buffer, we were brought back to t… | |
1454 <li>Minibuffer <code>M-backspace</code> improvements. | |
1455 <ul> | |
1456 <li>In the minibuffer, using <code>M-backspace</code> … | |
1457 <li>Its behaviour was also too different than other common tools, … | |
1458 <ul> | |
1459 <li>it deletes the trailing word delimiter;</li> | |
1460 <li>it removes all trailing delimiters <em>plus</em> o… | |
1461 </ul></li> | |
1462 </ul></li> | |
1463 <li><p>Add keypad bindings</p></li> | |
1464 <li><p>Nyxt is back to the Guix official channel</p> | |
1465 <p>The Nyxt Guix channel can be safely removed from your <code&… | |
1466 <li><p>Mouse <code>button2</code> (middle click)… | |
1467 <li><p>Automatically fall back to a local D-Bus session if n… | |
1468 <li><p>Fix platform port log file path on Guix.</p> | |
1469 <p>It is now properly set to <code>~/.local/share/nyxt/nyxt-… | |
1470 <li><p>Fix ignored search engine prefix in minibuffer input.… | |
1471 <li><p>Fix browsed URLs not being added to history.</p> | |
1472 <p>Yes, this is better for a daily usage :)</p></li> | |
1473 <li><p>Fix crash when proxy-mode was added to the list of de… | |
1474 <p>You can now add this to your <code>~/.config/nyxt/init.li… | |
1475 <div class="sourceCode" id="cb1" data-org-languag… | |
1476 <a class="sourceLine" id="cb1-2" data-line-number… | |
1477 <p>Thanks to <span class="citation" data-cites="… | |
1478 <li><p>More bug fixes (special thanks to Solomon Bloch, <… | |
1479 <li><p>Developer changes:</p> | |
1480 <ul> | |
1481 <li><p>The Makefile automatically updates the Quicklisp dist… | |
1482 <p>Nyxt uses its own installation path for the Quicklisp dependenc… | |
1483 <li><p>Remove cl-string-match and cl-strings dependencies.&l… | |
1484 <p>Now we mostly rely on <a href="https://github.com/vinda… | |
1485 </ul></li> | |
1486 </ul> | |
1487 <h1 id="whats-next">What's next?</h1> | |
1488 <p>We have many new and exciting features in the pipeline that we … | |
1489 <ul> | |
1490 <li>a <strong><strong>password manager</strong>&… | |
1491 <li>a <strong><strong>kill ring</strong></str… | |
1492 <li>the possibility to quickly <strong><strong>open an… | |
1493 <li>new minibuffer improvements, such as <strong><strong&… | |
1494 <li><strong><strong>session persistence</strong>… | |
1495 <li>hooks (for modes, commands, startup, network events, etc.) all… | |
1496 </ul> | |
1497 <p>Thanks for reading!</p> | |
1498 <h1 id="about-nyxt">About Nyxt</h1> | |
1499 <p>Nyxt is a keyboard-oriented, extensible web-browser designed fo… | |
1500 <p><a href="https://next.atlas.engineer/download">… | |
1501 </body> | |
1502 </html> | |
1503 </content></entry><entry><id>urn:uuid:5a8f7f01-bdf7-3518-b4f8-1a8fec1287… | |
1504 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1505 <head> | |
1506 <meta charset="utf-8" /> | |
1507 <meta name="generator" content="pandoc" /> | |
1508 <meta name="viewport" content="width=device-width, i… | |
1509 <title>Emacs Hacks</title> | |
1510 <style type="text/css"> | |
1511 code{white-space: pre-wrap;} | |
1512 span.smallcaps{font-variant: small-caps;} | |
1513 span.underline{text-decoration: underline;} | |
1514 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1515 </style> | |
1516 <style type="text/css"> | |
1517 a.sourceLine { display: inline-block; line-height: 1.25; } | |
1518 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
1519 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
1520 .sourceCode { overflow: visible; } | |
1521 code.sourceCode { white-space: pre; position: relative; } | |
1522 div.sourceCode { margin: 1em 0; } | |
1523 pre.sourceCode { margin: 0; } | |
1524 @media screen { | |
1525 div.sourceCode { overflow: auto; } | |
1526 } | |
1527 @media print { | |
1528 code.sourceCode { white-space: pre-wrap; } | |
1529 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
1530 } | |
1531 pre.numberSource a.sourceLine | |
1532 { position: relative; } | |
1533 pre.numberSource a.sourceLine:empty | |
1534 { position: absolute; } | |
1535 pre.numberSource a.sourceLine::before | |
1536 { content: attr(data-line-number); | |
1537 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
1538 border: none; pointer-events: all; | |
1539 -webkit-touch-callout: none; -webkit-user-select: none; | |
1540 -khtml-user-select: none; -moz-user-select: none; | |
1541 -ms-user-select: none; user-select: none; | |
1542 padding: 0 4px; width: 4em; | |
1543 color: #aaaaaa; | |
1544 } | |
1545 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
1546 div.sourceCode | |
1547 { } | |
1548 @media screen { | |
1549 a.sourceLine::before { text-decoration: underline; } | |
1550 } | |
1551 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
1552 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1553 code span.at { color: #7d9029; } /* Attribute */ | |
1554 code span.bn { color: #40a070; } /* BaseN */ | |
1555 code span.bu { } /* BuiltIn */ | |
1556 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
1557 code span.ch { color: #4070a0; } /* Char */ | |
1558 code span.cn { color: #880000; } /* Constant */ | |
1559 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
1560 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1561 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
1562 code span.dt { color: #902000; } /* DataType */ | |
1563 code span.dv { color: #40a070; } /* DecVal */ | |
1564 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
1565 code span.ex { } /* Extension */ | |
1566 code span.fl { color: #40a070; } /* Float */ | |
1567 code span.fu { color: #06287e; } /* Function */ | |
1568 code span.im { } /* Import */ | |
1569 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1570 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
1571 code span.op { color: #666666; } /* Operator */ | |
1572 code span.ot { color: #007020; } /* Other */ | |
1573 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
1574 code span.sc { color: #4070a0; } /* SpecialChar */ | |
1575 code span.ss { color: #bb6688; } /* SpecialString */ | |
1576 code span.st { color: #4070a0; } /* String */ | |
1577 code span.va { color: #19177c; } /* Variable */ | |
1578 code span.vs { color: #4070a0; } /* VerbatimString */ | |
1579 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1580 </style> | |
1581 <!--[if lt IE 9]> | |
1582 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1583 <![endif]--> | |
1584 </head> | |
1585 <body> | |
1586 <header> | |
1587 <h1 class="title">Emacs Hacks</h1> | |
1588 </header> | |
1589 <h1 id="nyxt-interfaces">Nyxt interfaces</h1> | |
1590 <p>Nyxt can be controlled from an external program via SWANK. For … | |
1591 <p>But what about the other way around? Can we use Nyxt to manipul… | |
1592 <p>An interesting example is that of Emacs, since it can be hacked… | |
1593 <h1 id="youtube-dl-with-emacs">Youtube-dl with Emacs<… | |
1594 <p><a href="https://yt-dl.org">Youtube-dl</a>… | |
1595 <p>That said, we would like to make it more convenient than consta… | |
1596 <p>We could derive our own Youtube-dl extension for Nyxt so that w… | |
1597 <p>Chris Wellon wrote <a href="https://github.com/skeeto/y… | |
1598 <div class="sourceCode" id="cb1" data-org-languag… | |
1599 <a class="sourceLine" id="cb1-2" data-line-number… | |
1600 <a class="sourceLine" id="cb1-3" data-line-number… | |
1601 <a class="sourceLine" id="cb1-4" data-line-number… | |
1602 <a class="sourceLine" id="cb1-5" data-line-number… | |
1603 <a class="sourceLine" id="cb1-6" data-line-number… | |
1604 <a class="sourceLine" id="cb1-7" data-line-number… | |
1605 <a class="sourceLine" id="cb1-8" data-line-number… | |
1606 <a class="sourceLine" id="cb1-9" data-line-number… | |
1607 <a class="sourceLine" id="cb1-10" data-line-numbe… | |
1608 <a class="sourceLine" id="cb1-11" data-line-numbe… | |
1609 <a class="sourceLine" id="cb1-12" data-line-numbe… | |
1610 <a class="sourceLine" id="cb1-13" data-line-numbe… | |
1611 <a class="sourceLine" id="cb1-14" data-line-numbe… | |
1612 <a class="sourceLine" id="cb1-15" data-line-numbe… | |
1613 <a class="sourceLine" id="cb1-16" data-line-numbe… | |
1614 <p>The above snippet opens a dedicated <code>*youtube-dl*<… | |
1615 <p>With that set up, now we can add the following snippet to our &… | |
1616 <div class="sourceCode" id="cb2" data-org-languag… | |
1617 <a class="sourceLine" id="cb2-2" data-line-number… | |
1618 <a class="sourceLine" id="cb2-3" data-line-number… | |
1619 <a class="sourceLine" id="cb2-4" data-line-number… | |
1620 <a class="sourceLine" id="cb2-5" data-line-number… | |
1621 <a class="sourceLine" id="cb2-6" data-line-number… | |
1622 <a class="sourceLine" id="cb2-7" data-line-number… | |
1623 <a class="sourceLine" id="cb2-8" data-line-number… | |
1624 <a class="sourceLine" id="cb2-9" data-line-number… | |
1625 <a class="sourceLine" id="cb2-10" data-line-numbe… | |
1626 <a class="sourceLine" id="cb2-11" data-line-numbe… | |
1627 <a class="sourceLine" id="cb2-12" data-line-numbe… | |
1628 <a class="sourceLine" id="cb2-13" data-line-numbe… | |
1629 <a class="sourceLine" id="cb2-14" data-line-numbe… | |
1630 <a class="sourceLine" id="cb2-15" data-line-numbe… | |
1631 <a class="sourceLine" id="cb2-16" data-line-numbe… | |
1632 <a class="sourceLine" id="cb2-17" data-line-numbe… | |
1633 <a class="sourceLine" id="cb2-18" data-line-numbe… | |
1634 <a class="sourceLine" id="cb2-19" data-line-numbe… | |
1635 <a class="sourceLine" id="cb2-20" data-line-numbe… | |
1636 <p>We define a helper function <code>eval-in-emacs</code&… | |
1637 <p>The <code>youtube-dl-current-page</code> command te… | |
1638 <h1 id="org-mode-and-org-capture">Org-mode and Org-captu… | |
1639 <p><a href="https://orgmode.org/">Org-mode</a&g… | |
1640 <p>This can be useful for a web browser: You'd like to mark t… | |
1641 <div class="sourceCode" id="cb3" data-org-languag… | |
1642 <a class="sourceLine" id="cb3-2" data-line-number… | |
1643 <a class="sourceLine" id="cb3-3" data-line-number… | |
1644 <a class="sourceLine" id="cb3-4" data-line-number… | |
1645 <p>The above snippet does quite a few things, so let's analyz… | |
1646 <ul> | |
1647 <li><p>The first <code>&quot;w&quot;</code&… | |
1648 <li><p><code>(file+headline ,(car org-agenda-files) &a… | |
1649 <li><p><code>%a</code> is the Org URL of the pag… | |
1650 <li><p>The rest is arbitrary. Here we schedule the reading t… | |
1651 </ul> | |
1652 <p>See <code>org-capture-templates</code> documentatio… | |
1653 <p>Now to our <code>nyxt/init.lisp</code>:</p> | |
1654 <div class="sourceCode" id="cb4" data-org-languag… | |
1655 <a class="sourceLine" id="cb4-2" data-line-number… | |
1656 <a class="sourceLine" id="cb4-3" data-line-number… | |
1657 <a class="sourceLine" id="cb4-4" data-line-number… | |
1658 <a class="sourceLine" id="cb4-5" data-line-number… | |
1659 <a class="sourceLine" id="cb4-6" data-line-number… | |
1660 <a class="sourceLine" id="cb4-7" data-line-number… | |
1661 <a class="sourceLine" id="cb4-8" data-line-number… | |
1662 <a class="sourceLine" id="cb4-9" data-line-number… | |
1663 <a class="sourceLine" id="cb4-10" data-line-numbe… | |
1664 <a class="sourceLine" id="cb4-11" data-line-numbe… | |
1665 <a class="sourceLine" id="cb4-12" data-line-numbe… | |
1666 <a class="sourceLine" id="cb4-13" data-line-numbe… | |
1667 <a class="sourceLine" id="cb4-14" data-line-numbe… | |
1668 <a class="sourceLine" id="cb4-15" data-line-numbe… | |
1669 <p>This is similar to the example in the previous section. Note th… | |
1670 <p>Happy hacking!</p> | |
1671 </body> | |
1672 </html> | |
1673 </content></entry><entry><id>urn:uuid:5a163163-5c04-3d7d-98fa-3c6f39a666… | |
1674 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1675 <head> | |
1676 <meta charset="utf-8" /> | |
1677 <meta name="generator" content="pandoc" /> | |
1678 <meta name="viewport" content="width=device-width, i… | |
1679 <title>Technical Design</title> | |
1680 <style type="text/css"> | |
1681 code{white-space: pre-wrap;} | |
1682 span.smallcaps{font-variant: small-caps;} | |
1683 span.underline{text-decoration: underline;} | |
1684 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1685 </style> | |
1686 <!--[if lt IE 9]> | |
1687 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1688 <![endif]--> | |
1689 </head> | |
1690 <body> | |
1691 <header> | |
1692 <h1 class="title">Technical Design</h1> | |
1693 </header> | |
1694 <h1 id="requirements-of-a-browser">Requirements of a bro… | |
1695 <p>A web browser is made of a few major components:</p> | |
1696 <ul> | |
1697 <li>A graphical user interface (GUI), written in, say Cocoa or GTK… | |
1698 <li>A renderer (e.g. Gecko or WebKit).</li> | |
1699 <li>A controller (the glue code, which includes user configuration… | |
1700 </ul> | |
1701 <h1 id="the-current-landscape-of-browsers">The current l… | |
1702 <p>The graphical user interface can be a prominent part of the exp… | |
1703 <p>A renderer can be extremely difficult to write, so most browser… | |
1704 <p>Last but not least, the controllers are mostly divided into two… | |
1705 <h1 id="the-poor-state-of-language-bindings-for-gui-toolkits&quo… | |
1706 <p>Initially, Nyxt was 100% written in Common Lisp, which means th… | |
1707 <p>Indeed, the most common GUI toolkits are written in C or a vari… | |
1708 <p>Common Lisp has a rather complete Cocoa-binding library, but it… | |
1709 <p>Sadly, the GTK bindings are not in a shape that is enough to fu… | |
1710 <p>It turns out that this is not an isolated issue. Because of the… | |
1711 <h1 id="split-process-design-a-cure-for-portable-interfaces"… | |
1712 <p>Nyxt is all about the controller. Its selling point is to be in… | |
1713 <p>The GUI toolkit and the renderer are only secondary. If we can&… | |
1714 <p>Then we would have only one thing left: the controller, manipul… | |
1715 <h2 id="choosing-an-rpc-protocol">Choosing an RPC protoc… | |
1716 <p>We chose XML-RPC, mostly because we had to choose one of the ma… | |
1717 <p>It operates very simply: the server registers a set of callback… | |
1718 <p>While XML is more verbose (and arguably uglier) than JSON, it d… | |
1719 <p>XML-RPC can be used over HTTP sockets, and this is what we do. … | |
1720 <h2 id="implementation-the-platform-port-and-the-lisp-core"… | |
1721 <p>We've implemented two processes:</p> | |
1722 <ul> | |
1723 <li><p>The Lisp core which is a regular Common Lisp applicat… | |
1724 <li><p>The &quot;platform port&quot;, which does thr… | |
1725 <ul> | |
1726 <li>all the GUI parts,</li> | |
1727 <li>all the web rendering,</li> | |
1728 <li>and it also fires up its own XML-RPC server which responds to … | |
1729 </ul></li> | |
1730 </ul> | |
1731 <p>The Lisp core and the platform port are both XML-RPC clients an… | |
1732 <p>For instance, whenever the user presses a key, say <code>… | |
1733 <p>The platform port is very minimalist, it only needs to know how… | |
1734 <p>Since the Lisp core can generate JavaScript (with a Lisp syntax… | |
1735 <p>Indeed, once a platform port has been made to work, there is no… | |
1736 <h1 id="benefits-of-a-split-process-design">Benefits of … | |
1737 <h2 id="high-level-browser-library">High-level browser l… | |
1738 <p>In the end, the platform port is just a graphical user interfac… | |
1739 <p>Which means that from a programmer's point of view, this i… | |
1740 <h2 id="native-look-feel">Native <em>look &amp… | |
1741 <p>A nice consequence of the separation between the platform port … | |
1742 <h2 id="multiple-renderer-support">Multiple renderer sup… | |
1743 <p>Another cool side effect of this approach and that it is by des… | |
1744 <p>For the initial release, we've opted for WebKit for a few … | |
1745 <ul> | |
1746 <li><p>It's easy enough to embed into a project, possib… | |
1747 <li><p>It works well on all platforms and has both Cocoa and… | |
1748 <li><p>In 2018, it's a call against the pressing monopo… | |
1749 </ul> | |
1750 <h2 id="robustness-and-security">Robustness and security… | |
1751 <p>Because the platform port is so minimal, it is much easier to m… | |
1752 <p>The security-sensitive part, i.e. the renderer, is contained in… | |
1753 <h2 id="resistance-to-web-renderer-api-breakages">Resist… | |
1754 <p>Last but not least, our design means that the web renderer is n… | |
1755 <p>Many times in the past, it happened that a web renderer API wou… | |
1756 <p>When WebKit 2.0 came out, many WebKit-1-based browsers became o… | |
1757 <p>More recently, it happened again with Firefox' extensions … | |
1758 <p>With our split-process design, should a web renderer break, we … | |
1759 </body> | |
1760 </html> | |
1761 </content></entry><entry><id>urn:uuid:c61f3aed-0d4b-38e0-8456-af5a396fdd… | |
1762 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1763 <head> | |
1764 <meta charset="utf-8" /> | |
1765 <meta name="generator" content="pandoc" /> | |
1766 <meta name="viewport" content="width=device-width, i… | |
1767 <title>Hooks in practice</title> | |
1768 <style type="text/css"> | |
1769 code{white-space: pre-wrap;} | |
1770 span.smallcaps{font-variant: small-caps;} | |
1771 span.underline{text-decoration: underline;} | |
1772 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1773 </style> | |
1774 <style type="text/css"> | |
1775 a.sourceLine { display: inline-block; line-height: 1.25; } | |
1776 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
1777 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
1778 .sourceCode { overflow: visible; } | |
1779 code.sourceCode { white-space: pre; position: relative; } | |
1780 div.sourceCode { margin: 1em 0; } | |
1781 pre.sourceCode { margin: 0; } | |
1782 @media screen { | |
1783 div.sourceCode { overflow: auto; } | |
1784 } | |
1785 @media print { | |
1786 code.sourceCode { white-space: pre-wrap; } | |
1787 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
1788 } | |
1789 pre.numberSource a.sourceLine | |
1790 { position: relative; } | |
1791 pre.numberSource a.sourceLine:empty | |
1792 { position: absolute; } | |
1793 pre.numberSource a.sourceLine::before | |
1794 { content: attr(data-line-number); | |
1795 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
1796 border: none; pointer-events: all; | |
1797 -webkit-touch-callout: none; -webkit-user-select: none; | |
1798 -khtml-user-select: none; -moz-user-select: none; | |
1799 -ms-user-select: none; user-select: none; | |
1800 padding: 0 4px; width: 4em; | |
1801 color: #aaaaaa; | |
1802 } | |
1803 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
1804 div.sourceCode | |
1805 { } | |
1806 @media screen { | |
1807 a.sourceLine::before { text-decoration: underline; } | |
1808 } | |
1809 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
1810 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1811 code span.at { color: #7d9029; } /* Attribute */ | |
1812 code span.bn { color: #40a070; } /* BaseN */ | |
1813 code span.bu { } /* BuiltIn */ | |
1814 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
1815 code span.ch { color: #4070a0; } /* Char */ | |
1816 code span.cn { color: #880000; } /* Constant */ | |
1817 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
1818 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1819 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
1820 code span.dt { color: #902000; } /* DataType */ | |
1821 code span.dv { color: #40a070; } /* DecVal */ | |
1822 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
1823 code span.ex { } /* Extension */ | |
1824 code span.fl { color: #40a070; } /* Float */ | |
1825 code span.fu { color: #06287e; } /* Function */ | |
1826 code span.im { } /* Import */ | |
1827 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1828 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
1829 code span.op { color: #666666; } /* Operator */ | |
1830 code span.ot { color: #007020; } /* Other */ | |
1831 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
1832 code span.sc { color: #4070a0; } /* SpecialChar */ | |
1833 code span.ss { color: #bb6688; } /* SpecialString */ | |
1834 code span.st { color: #4070a0; } /* String */ | |
1835 code span.va { color: #19177c; } /* Variable */ | |
1836 code span.vs { color: #4070a0; } /* VerbatimString */ | |
1837 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1838 </style> | |
1839 <!--[if lt IE 9]> | |
1840 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
1841 <![endif]--> | |
1842 </head> | |
1843 <body> | |
1844 <header> | |
1845 <h1 class="title">Hooks in practice</h1> | |
1846 </header> | |
1847 <p>Update: This article was updated for Nyxt 2 for which the hook … | |
1848 <h1 id="using-hooks-to-smart-program-your-browser">Using… | |
1849 <p>Hooks are a great way to extend a workflow by triggering action… | |
1850 <p>In the world of a web browser, there are a ton of events: page … | |
1851 <p>In Nyxt, all these events are <em>hookable</em>.<… | |
1852 <p>Hooking into the events fired off by the browser or by the user… | |
1853 <h1 id="the-nyxt-hook-system">The Nyxt hook system</h… | |
1854 <p>Many hooks are as such executed at different points in Nyxt:<… | |
1855 <ul> | |
1856 <li><p><strong>Global</strong> hooks, such as th… | |
1857 <li><p><strong>Window</strong> and <strong>… | |
1858 <li><p><strong>Modes</strong> hooks (before and … | |
1859 <li><p>&quot;Before&quot; and &quot;after&qu… | |
1860 </ul> | |
1861 <p>For the full list, run <code>describe-variable</code&g… | |
1862 <h2 id="practical-examples">Practical examples</h2> | |
1863 <p>Let's consider a practical example. If you want to force t… | |
1864 <div class="sourceCode" id="cb1" data-org-languag… | |
1865 <a class="sourceLine" id="cb1-2" data-line-number… | |
1866 <a class="sourceLine" id="cb1-3" data-line-number… | |
1867 <a class="sourceLine" id="cb1-4" data-line-number… | |
1868 <a class="sourceLine" id="cb1-5" data-line-number… | |
1869 <a class="sourceLine" id="cb1-6" data-line-number… | |
1870 <a class="sourceLine" id="cb1-7" data-line-number… | |
1871 <a class="sourceLine" id="cb1-8" data-line-number… | |
1872 <a class="sourceLine" id="cb1-9" data-line-number… | |
1873 <a class="sourceLine" id="cb1-10" data-line-numbe… | |
1874 <a class="sourceLine" id="cb1-11" data-line-numbe… | |
1875 <a class="sourceLine" id="cb1-12" data-line-numbe… | |
1876 <a class="sourceLine" id="cb1-13" data-line-numbe… | |
1877 <a class="sourceLine" id="cb1-14" data-line-numbe… | |
1878 <a class="sourceLine" id="cb1-15" data-line-numbe… | |
1879 <a class="sourceLine" id="cb1-16" data-line-numbe… | |
1880 <p>You can ask Nyxt to automatically enable or disable modes depen… | |
1881 <p>Another cool example would be automatically downloading any You… | |
1882 <div class="sourceCode" id="cb2" data-org-languag… | |
1883 <a class="sourceLine" id="cb2-2" data-line-number… | |
1884 <a class="sourceLine" id="cb2-3" data-line-number… | |
1885 <a class="sourceLine" id="cb2-4" data-line-number… | |
1886 <a class="sourceLine" id="cb2-5" data-line-number… | |
1887 <a class="sourceLine" id="cb2-6" data-line-number… | |
1888 <a class="sourceLine" id="cb2-7" data-line-number… | |
1889 <a class="sourceLine" id="cb2-8" data-line-number… | |
1890 <a class="sourceLine" id="cb2-9" data-line-number… | |
1891 <a class="sourceLine" id="cb2-10" data-line-numbe… | |
1892 <a class="sourceLine" id="cb2-11" data-line-numbe… | |
1893 <a class="sourceLine" id="cb2-12" data-line-numbe… | |
1894 <a class="sourceLine" id="cb2-13" data-line-numbe… | |
1895 <a class="sourceLine" id="cb2-14" data-line-numbe… | |
1896 <a class="sourceLine" id="cb2-15" data-line-numbe… | |
1897 <a class="sourceLine" id="cb2-16" data-line-numbe… | |
1898 <a class="sourceLine" id="cb2-17" data-line-numbe… | |
1899 <a class="sourceLine" id="cb2-18" data-line-numbe… | |
1900 <a class="sourceLine" id="cb2-19" data-line-numbe… | |
1901 <a class="sourceLine" id="cb2-20" data-line-numbe… | |
1902 <a class="sourceLine" id="cb2-21" data-line-numbe… | |
1903 <a class="sourceLine" id="cb2-22" data-line-numbe… | |
1904 <a class="sourceLine" id="cb2-23" data-line-numbe… | |
1905 <p>Adjust it to your taste!</p> | |
1906 <h2 id="all-user-commands-have-hooks">All user commands … | |
1907 <p>One feature that makes Nyxt unique is the ability to extend com… | |
1908 <p>Because the Common Lisp language allows it, one could replace a… | |
1909 <p>We can then use the &quot;before&quot; and &quot;af… | |
1910 <div class="sourceCode" id="cb3" data-org-languag… | |
1911 <a class="sourceLine" id="cb3-2" data-line-number… | |
1912 <a class="sourceLine" id="cb3-3" data-line-number… | |
1913 <p>and adding it to the list of hooks:</p> | |
1914 <div class="sourceCode" id="cb4" data-org-languag… | |
1915 <p>And voila!</p> | |
1916 <h1 id="conclusions">Conclusions</h1> | |
1917 <p>In summary, hooks present a very simple and effective mechanism… | |
1918 <p>For more about details on the hook internals and advanced usage… | |
1919 <p>Thanks for reading!</p> | |
1920 </body> | |
1921 </html> | |
1922 </content></entry><entry><id>urn:uuid:fb160a1c-75ad-3af8-aa3d-05e9799e38… | |
1923 <html xmlns="http://www.w3.org/1999/xhtml" lang=""… | |
1924 <head> | |
1925 <meta charset="utf-8" /> | |
1926 <meta name="generator" content="pandoc" /> | |
1927 <meta name="viewport" content="width=device-width, i… | |
1928 <title>Command Line Programs</title> | |
1929 <style type="text/css"> | |
1930 code{white-space: pre-wrap;} | |
1931 span.smallcaps{font-variant: small-caps;} | |
1932 span.underline{text-decoration: underline;} | |
1933 div.column{display: inline-block; vertical-align: top; width: 50%;} | |
1934 </style> | |
1935 <style type="text/css"> | |
1936 a.sourceLine { display: inline-block; line-height: 1.25; } | |
1937 a.sourceLine { pointer-events: none; color: inherit; text-decoration: in… | |
1938 a.sourceLine:empty { height: 1.2em; position: absolute; } | |
1939 .sourceCode { overflow: visible; } | |
1940 code.sourceCode { white-space: pre; position: relative; } | |
1941 div.sourceCode { margin: 1em 0; } | |
1942 pre.sourceCode { margin: 0; } | |
1943 @media screen { | |
1944 div.sourceCode { overflow: auto; } | |
1945 } | |
1946 @media print { | |
1947 code.sourceCode { white-space: pre-wrap; } | |
1948 a.sourceLine { text-indent: -1em; padding-left: 1em; } | |
1949 } | |
1950 pre.numberSource a.sourceLine | |
1951 { position: relative; } | |
1952 pre.numberSource a.sourceLine:empty | |
1953 { position: absolute; } | |
1954 pre.numberSource a.sourceLine::before | |
1955 { content: attr(data-line-number); | |
1956 position: absolute; left: -5em; text-align: right; vertical-align: b… | |
1957 border: none; pointer-events: all; | |
1958 -webkit-touch-callout: none; -webkit-user-select: none; | |
1959 -khtml-user-select: none; -moz-user-select: none; | |
1960 -ms-user-select: none; user-select: none; | |
1961 padding: 0 4px; width: 4em; | |
1962 color: #aaaaaa; | |
1963 } | |
1964 pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; pa… | |
1965 div.sourceCode | |
1966 { } | |
1967 @media screen { | |
1968 a.sourceLine::before { text-decoration: underline; } | |
1969 } | |
1970 code span.al { color: #ff0000; font-weight: bold; } /* Alert */ | |
1971 code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1972 code span.at { color: #7d9029; } /* Attribute */ | |
1973 code span.bn { color: #40a070; } /* BaseN */ | |
1974 code span.bu { } /* BuiltIn */ | |
1975 code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ | |
1976 code span.ch { color: #4070a0; } /* Char */ | |
1977 code span.cn { color: #880000; } /* Constant */ | |
1978 code span.co { color: #60a0b0; font-style: italic; } /* Comment */ | |
1979 code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1980 code span.do { color: #ba2121; font-style: italic; } /* Documentation */ | |
1981 code span.dt { color: #902000; } /* DataType */ | |
1982 code span.dv { color: #40a070; } /* DecVal */ | |
1983 code span.er { color: #ff0000; font-weight: bold; } /* Error */ | |
1984 code span.ex { } /* Extension */ | |
1985 code span.fl { color: #40a070; } /* Float */ | |
1986 code span.fu { color: #06287e; } /* Function */ | |
1987 code span.im { } /* Import */ | |
1988 code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1989 code span.kw { color: #007020; font-weight: bold; } /* Keyword */ | |
1990 code span.op { color: #666666; } /* Operator */ | |
1991 code span.ot { color: #007020; } /* Other */ | |
1992 code span.pp { color: #bc7a00; } /* Preprocessor */ | |
1993 code span.sc { color: #4070a0; } /* SpecialChar */ | |
1994 code span.ss { color: #bb6688; } /* SpecialString */ | |
1995 code span.st { color: #4070a0; } /* String */ | |
1996 code span.va { color: #19177c; } /* Variable */ | |
1997 code span.vs { color: #4070a0; } /* VerbatimString */ | |
1998 code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } … | |
1999 </style> | |
2000 <!--[if lt IE 9]> | |
2001 <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.… | |
2002 <![endif]--> | |
2003 </head> | |
2004 <body> | |
2005 <header> | |
2006 <h1 class="title">Command Line Programs</h1> | |
2007 </header> | |
2008 <h1 id="running-programs-in-nyxt">Running Programs in Ny… | |
2009 <p>Nyxt gives you the power to extend its capabilities by invoking… | |
2010 <h1 id="a-practical-example-download-youtube-videos">A P… | |
2011 <p>Let's consider the following situation: you are watching a… | |
2012 <p>A quick search on the internet reveals a very convenient progra… | |
2013 <p>You could simply copy the URL and paste it into the terminal. T… | |
2014 <div class="sourceCode" id="youtube-dl" data-org-… | |
2015 <a class="sourceLine" id="youtube-dl-2" data-line… | |
2016 <a class="sourceLine" id="youtube-dl-3" data-line… | |
2017 <a class="sourceLine" id="youtube-dl-4" data-line… | |
2018 <a class="sourceLine" id="youtube-dl-5" data-line… | |
2019 <p>Just like that! Instant Youtube downloader script. If you want,… | |
2020 <div class="sourceCode" id="youtube-dl-keybinding"… | |
2021 <p>Now whenever you want to download a Youtube video simply &q… | |
2022 <h1 id="shell-mode">&quot;Shell&quot; Mode</h… | |
2023 <p>That was cool, but it doesn't really show the true power o… | |
2024 <p>Simply put: shell mode is an extension for running simple one-l… | |
2025 <div class="sourceCode" id="shell-mode" data-org-… | |
2026 <a class="sourceLine" id="shell-mode-2" data-line… | |
2027 <a class="sourceLine" id="shell-mode-3" data-line… | |
2028 <a class="sourceLine" id="shell-mode-4" data-line… | |
2029 <a class="sourceLine" id="shell-mode-5" data-line… | |
2030 <a class="sourceLine" id="shell-mode-6" data-line… | |
2031 <a class="sourceLine" id="shell-mode-7" data-line… | |
2032 <a class="sourceLine" id="shell-mode-8" data-line… | |
2033 <a class="sourceLine" id="shell-mode-9" data-line… | |
2034 <a class="sourceLine" id="shell-mode-10" data-lin… | |
2035 <a class="sourceLine" id="shell-mode-11" data-lin… | |
2036 <a class="sourceLine" id="shell-mode-12" data-lin… | |
2037 <a class="sourceLine" id="shell-mode-13" data-lin… | |
2038 <a class="sourceLine" id="shell-mode-14" data-lin… | |
2039 <a class="sourceLine" id="shell-mode-15" data-lin… | |
2040 <a class="sourceLine" id="shell-mode-16" data-lin… | |
2041 <a class="sourceLine" id="shell-mode-17" data-lin… | |
2042 <a class="sourceLine" id="shell-mode-18" data-lin… | |
2043 <a class="sourceLine" id="shell-mode-19" data-lin… | |
2044 <a class="sourceLine" id="shell-mode-20" data-lin… | |
2045 <a class="sourceLine" id="shell-mode-21" data-lin… | |
2046 <a class="sourceLine" id="shell-mode-22" data-lin… | |
2047 <a class="sourceLine" id="shell-mode-23" data-lin… | |
2048 <a class="sourceLine" id="shell-mode-24" data-lin… | |
2049 <a class="sourceLine" id="shell-mode-25" data-lin… | |
2050 <a class="sourceLine" id="shell-mode-26" data-lin… | |
2051 <a class="sourceLine" id="shell-mode-27" data-lin… | |
2052 <a class="sourceLine" id="shell-mode-28" data-lin… | |
2053 <a class="sourceLine" id="shell-mode-29" data-lin… | |
2054 <a class="sourceLine" id="shell-mode-30" data-lin… | |
2055 <a class="sourceLine" id="shell-mode-31" data-lin… | |
2056 <a class="sourceLine" id="shell-mode-32" data-lin… | |
2057 <a class="sourceLine" id="shell-mode-33" data-lin… | |
2058 <a class="sourceLine" id="shell-mode-34" data-lin… | |
2059 <a class="sourceLine" id="shell-mode-35" data-lin… | |
2060 <a class="sourceLine" id="shell-mode-36" data-lin… | |
2061 <a class="sourceLine" id="shell-mode-37" data-lin… | |
2062 <a class="sourceLine" id="shell-mode-38" data-lin… | |
2063 <a class="sourceLine" id="shell-mode-39" data-lin… | |
2064 <a class="sourceLine" id="shell-mode-40" data-lin… | |
2065 <a class="sourceLine" id="shell-mode-41" data-lin… | |
2066 <a class="sourceLine" id="shell-mode-42" data-lin… | |
2067 <a class="sourceLine" id="shell-mode-43" data-lin… | |
2068 <p>Within 40 lines of Lisp we've managed to make a completely… | |
2069 <h1 id="the-take-away">The Take Away</h1> | |
2070 <p>Nyxt can be extended with any program of any type as long as it… | |
2071 <p>Thanks for reading!</p> | |
2072 </body> | |
2073 </html> | |
2074 |