Browse code
edit README
Ed Langley authored on 29/08/2019 04:39:51
Showing 2 changed files
Showing 2 changed files
... | ... |
@@ -3,7 +3,7 @@ |
3 | 3 |
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
4 | 4 |
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> |
5 | 5 |
<head> |
6 |
-<!-- 2019-08-28 Wed 23:38 --> |
|
6 |
+<!-- 2019-08-28 Wed 23:39 --> |
|
7 | 7 |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> |
8 | 8 |
<meta name="viewport" content="width=device-width, initial-scale=1" /> |
9 | 9 |
<title>TODO backend implementation using CL and fukamachi/ningle</title> |
... | ... |
@@ -285,27 +285,27 @@ for the JavaScript code in this tag. |
285 | 285 |
<h2>Table of Contents</h2> |
286 | 286 |
<div id="text-table-of-contents"> |
287 | 287 |
<ul> |
288 |
-<li><a href="#orgd87c65b">1. todo API</a> |
|
288 |
+<li><a href="#orgbd6788b">1. todo API</a> |
|
289 | 289 |
<ul> |
290 |
-<li><a href="#org2c353ea">1.1. List-level APIS</a></li> |
|
291 |
-<li><a href="#org32fdb11">1.2. Getting/Replacing a todo</a></li> |
|
292 |
-<li><a href="#orge1cc71f">1.3. Adding and modifying todos</a></li> |
|
293 |
-<li><a href="#org2d36b4b">1.4. Examples</a></li> |
|
290 |
+<li><a href="#orgc4f1de5">1.1. List-level APIs</a></li> |
|
291 |
+<li><a href="#org34684ff">1.2. Getting/Replacing a todo</a></li> |
|
292 |
+<li><a href="#org3810420">1.3. Adding and modifying todos</a></li> |
|
293 |
+<li><a href="#org6adb768">1.4. Examples</a></li> |
|
294 | 294 |
</ul> |
295 | 295 |
</li> |
296 |
-<li><a href="#org386572e">2. Source</a> |
|
296 |
+<li><a href="#org9282801">2. Source</a> |
|
297 | 297 |
<ul> |
298 |
-<li><a href="#orgf0f55d3">2.1. model.lisp source code</a></li> |
|
299 |
-<li><a href="#org82f5700">2.2. routing.lisp source</a></li> |
|
300 |
-<li><a href="#orgda1f850">2.3. main.lisp source</a></li> |
|
298 |
+<li><a href="#org1770ae0">2.1. model.lisp source code</a></li> |
|
299 |
+<li><a href="#org7f4394b">2.2. routing.lisp source</a></li> |
|
300 |
+<li><a href="#orgfe3f68f">2.3. main.lisp source</a></li> |
|
301 | 301 |
</ul> |
302 | 302 |
</li> |
303 | 303 |
</ul> |
304 | 304 |
</div> |
305 | 305 |
</div> |
306 | 306 |
|
307 |
-<div id="outline-container-orgd87c65b" class="outline-2"> |
|
308 |
-<h2 id="orgd87c65b"><span class="section-number-2">1</span> todo API</h2> |
|
307 |
+<div id="outline-container-orgbd6788b" class="outline-2"> |
|
308 |
+<h2 id="orgbd6788b"><span class="section-number-2">1</span> todo API</h2> |
|
309 | 309 |
<div class="outline-text-2" id="text-1"> |
310 | 310 |
<p> |
311 | 311 |
We use a fairly simple structure for our "database": a fset map (a |
... | ... |
@@ -315,15 +315,15 @@ referenced as <code>*todo*</code>, but this is a detail hidden behind the API. |
315 | 315 |
</p> |
316 | 316 |
</div> |
317 | 317 |
|
318 |
-<div id="outline-container-org2c353ea" class="outline-3"> |
|
319 |
-<h3 id="org2c353ea"><span class="section-number-3">1.1</span> List-level APIS</h3> |
|
318 |
+<div id="outline-container-orgc4f1de5" class="outline-3"> |
|
319 |
+<h3 id="orgc4f1de5"><span class="section-number-3">1.1</span> List-level APIs</h3> |
|
320 | 320 |
<div class="outline-text-3" id="text-1-1"> |
321 | 321 |
<p> |
322 | 322 |
These are functions for getting the todo list and clearing it. |
323 | 323 |
</p> |
324 | 324 |
|
325 | 325 |
<div class="org-src-container"> |
326 |
-<pre class="src src-lisp" id="org087fa11"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">todos</span> <span style="color: #93a8c6;">()</span> |
|
326 |
+<pre class="src src-lisp" id="org6db4696"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">todos</span> <span style="color: #93a8c6;">()</span> |
|
327 | 327 |
<span style="color: #93a8c6;">(</span>gmap:gmap <span style="font-weight: bold;">:seq</span> |
328 | 328 |
<span style="color: #b0b1a3;">(</span><span style="color: #F0DFAF;">lambda</span> <span style="color: #97b098;">(</span>_ b<span style="color: #97b098;">)</span> |
329 | 329 |
<span style="color: #97b098;">(</span><span style="color: #F0DFAF;">declare</span> <span style="color: #aebed8;">(</span>ignore _<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span> |
... | ... |
@@ -338,8 +338,8 @@ These are functions for getting the todo list and clearing it. |
338 | 338 |
</div> |
339 | 339 |
</div> |
340 | 340 |
|
341 |
-<div id="outline-container-org32fdb11" class="outline-3"> |
|
342 |
-<h3 id="org32fdb11"><span class="section-number-3">1.2</span> Getting/Replacing a todo</h3> |
|
341 |
+<div id="outline-container-org34684ff" class="outline-3"> |
|
342 |
+<h3 id="org34684ff"><span class="section-number-3">1.2</span> Getting/Replacing a todo</h3> |
|
343 | 343 |
<div class="outline-text-3" id="text-1-2"> |
344 | 344 |
<p> |
345 | 345 |
This uses lisp's <a href="http://www.lispworks.com/documentation/HyperSpec/Body/05_a.htm">generalized references</a> to abstract away the |
... | ... |
@@ -348,7 +348,7 @@ function for removing a todo from the list. |
348 | 348 |
</p> |
349 | 349 |
|
350 | 350 |
<div class="org-src-container"> |
351 |
-<pre class="src src-lisp" id="org86a9726"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">todo</span> <span style="color: #93a8c6;">(</span>id<span style="color: #93a8c6;">)</span> |
|
351 |
+<pre class="src src-lisp" id="org15e058d"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">todo</span> <span style="color: #93a8c6;">(</span>id<span style="color: #93a8c6;">)</span> |
|
352 | 352 |
<span style="color: #93a8c6;">(</span><span style="color: #F0DFAF;">let</span> <span style="color: #b0b1a3;">(</span><span style="color: #97b098;">(</span>todo <span style="color: #aebed8;">(</span>fset:@ *todos* id<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span> |
353 | 353 |
todo<span style="color: #93a8c6;">)</span><span style="color: #8c8c8c;">)</span> |
354 | 354 |
|
... | ... |
@@ -364,8 +364,8 @@ function for removing a todo from the list. |
364 | 364 |
</div> |
365 | 365 |
</div> |
366 | 366 |
|
367 |
-<div id="outline-container-orge1cc71f" class="outline-3"> |
|
368 |
-<h3 id="orge1cc71f"><span class="section-number-3">1.3</span> Adding and modifying todos</h3> |
|
367 |
+<div id="outline-container-org3810420" class="outline-3"> |
|
368 |
+<h3 id="org3810420"><span class="section-number-3">1.3</span> Adding and modifying todos</h3> |
|
369 | 369 |
<div class="outline-text-3" id="text-1-3"> |
370 | 370 |
<p> |
371 | 371 |
<code>new-todo</code> is fairly trivial. It's main feature is that it has to |
... | ... |
@@ -375,7 +375,7 @@ properly. |
375 | 375 |
</p> |
376 | 376 |
|
377 | 377 |
<div class="org-src-container"> |
378 |
-<pre class="src src-lisp" id="orgcb7cf68"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">new-todo</span> <span style="color: #93a8c6;">(</span>value<span style="color: #93a8c6;">)</span> |
|
378 |
+<pre class="src src-lisp" id="orga94fbfe"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">new-todo</span> <span style="color: #93a8c6;">(</span>value<span style="color: #93a8c6;">)</span> |
|
379 | 379 |
<span style="color: #93a8c6;">(</span><span style="color: #F0DFAF;">let</span> <span style="color: #b0b1a3;">(</span><span style="color: #97b098;">(</span>id <span style="color: #aebed8;">(</span>next-id<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span><span style="color: #b0b1a3;">)</span> |
380 | 380 |
<span style="color: #b0b1a3;">(</span>setf <span style="color: #97b098;">(</span>todo id<span style="color: #97b098;">)</span> |
381 | 381 |
<span style="color: #97b098;">(</span>alexandria:alist-hash-table |
... | ... |
@@ -394,7 +394,7 @@ yason-compatible boolean. |
394 | 394 |
</p> |
395 | 395 |
|
396 | 396 |
<div class="org-src-container"> |
397 |
-<pre class="src src-lisp" id="orgf7ecf25"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">update-todo</span> <span style="color: #93a8c6;">(</span>id v<span style="color: #93a8c6;">)</span> |
|
397 |
+<pre class="src src-lisp" id="org3e49273"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">defun</span> <span style="color: #8CD0D3;">update-todo</span> <span style="color: #93a8c6;">(</span>id v<span style="color: #93a8c6;">)</span> |
|
398 | 398 |
<span style="color: #93a8c6;">(</span>setf <span style="color: #b0b1a3;">(</span>todo id<span style="color: #b0b1a3;">)</span> |
399 | 399 |
<span style="color: #b0b1a3;">(</span>serapeum:merge-tables <span style="color: #97b098;">(</span>or <span style="color: #aebed8;">(</span>todo id<span style="color: #aebed8;">)</span> |
400 | 400 |
<span style="color: #aebed8;">(</span>make-hash-table <span style="font-weight: bold;">:test</span> 'equal<span style="color: #aebed8;">)</span><span style="color: #97b098;">)</span> |
... | ... |
@@ -408,8 +408,8 @@ yason-compatible boolean. |
408 | 408 |
</div> |
409 | 409 |
</div> |
410 | 410 |
|
411 |
-<div id="outline-container-org2d36b4b" class="outline-3"> |
|
412 |
-<h3 id="org2d36b4b"><span class="section-number-3">1.4</span> Examples</h3> |
|
411 |
+<div id="outline-container-org6adb768" class="outline-3"> |
|
412 |
+<h3 id="org6adb768"><span class="section-number-3">1.4</span> Examples</h3> |
|
413 | 413 |
<div class="outline-text-3" id="text-1-4"> |
414 | 414 |
<div class="org-src-container"> |
415 | 415 |
<pre class="src src-lisp"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">in-package</span> <span style="font-weight: bold;">:fwoar.todo</span><span style="color: #8c8c8c;">)</span> |
... | ... |
@@ -424,10 +424,10 @@ yason-compatible boolean. |
424 | 424 |
</div> |
425 | 425 |
|
426 | 426 |
<pre class="example"> |
427 |
-(#<hash-table "url": "http://localhost:5000/todo/49", |
|
427 |
+(#<hash-table "url": "http://localhost:5000/todo/51", |
|
428 | 428 |
"title": "get groceries", |
429 | 429 |
"completed": YASON:FALSE> |
430 |
- #<hash-table "url": "http://localhost:5000/todo/50", |
|
430 |
+ #<hash-table "url": "http://localhost:5000/todo/52", |
|
431 | 431 |
"title": "write-better-documentation", |
432 | 432 |
"completed": YASON:FALSE>) |
433 | 433 |
</pre> |
... | ... |
@@ -435,12 +435,12 @@ yason-compatible boolean. |
435 | 435 |
</div> |
436 | 436 |
</div> |
437 | 437 |
|
438 |
-<div id="outline-container-org386572e" class="outline-2"> |
|
439 |
-<h2 id="org386572e"><span class="section-number-2">2</span> Source</h2> |
|
438 |
+<div id="outline-container-org9282801" class="outline-2"> |
|
439 |
+<h2 id="org9282801"><span class="section-number-2">2</span> Source</h2> |
|
440 | 440 |
<div class="outline-text-2" id="text-2"> |
441 | 441 |
</div> |
442 |
-<div id="outline-container-orgf0f55d3" class="outline-3"> |
|
443 |
-<h3 id="orgf0f55d3"><span class="section-number-3">2.1</span> model.lisp source code</h3> |
|
442 |
+<div id="outline-container-org1770ae0" class="outline-3"> |
|
443 |
+<h3 id="org1770ae0"><span class="section-number-3">2.1</span> model.lisp source code</h3> |
|
444 | 444 |
<div class="outline-text-3" id="text-2-1"> |
445 | 445 |
<div class="org-src-container"> |
446 | 446 |
<pre class="src src-lisp"><span style="color: #A6A689; background-color: #2B2B2B;">;; </span><span style="color: #A6A689; background-color: #2B2B2B;">[[file:~/git_repos/lisp-sandbox/todo/README.org::package-include][package-include]]</span> |
... | ... |
@@ -522,8 +522,8 @@ yason-compatible boolean. |
522 | 522 |
</div> |
523 | 523 |
</div> |
524 | 524 |
|
525 |
-<div id="outline-container-org82f5700" class="outline-3"> |
|
526 |
-<h3 id="org82f5700"><span class="section-number-3">2.2</span> routing.lisp source</h3> |
|
525 |
+<div id="outline-container-org7f4394b" class="outline-3"> |
|
526 |
+<h3 id="org7f4394b"><span class="section-number-3">2.2</span> routing.lisp source</h3> |
|
527 | 527 |
<div class="outline-text-3" id="text-2-2"> |
528 | 528 |
<div class="org-src-container"> |
529 | 529 |
<pre class="src src-lisp"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">in-package</span> <span style="font-weight: bold;">:fwoar.todo</span><span style="color: #8c8c8c;">)</span> |
... | ... |
@@ -569,8 +569,8 @@ yason-compatible boolean. |
569 | 569 |
</div> |
570 | 570 |
</div> |
571 | 571 |
|
572 |
-<div id="outline-container-orgda1f850" class="outline-3"> |
|
573 |
-<h3 id="orgda1f850"><span class="section-number-3">2.3</span> main.lisp source</h3> |
|
572 |
+<div id="outline-container-orgfe3f68f" class="outline-3"> |
|
573 |
+<h3 id="orgfe3f68f"><span class="section-number-3">2.3</span> main.lisp source</h3> |
|
574 | 574 |
<div class="outline-text-3" id="text-2-3"> |
575 | 575 |
<div class="org-src-container"> |
576 | 576 |
<pre class="src src-lisp"><span style="color: #8c8c8c;">(</span><span style="color: #F0DFAF;">in-package</span> <span style="font-weight: bold;">:fwoar.todo</span><span style="color: #8c8c8c;">)</span> |
... | ... |
@@ -616,7 +616,7 @@ yason-compatible boolean. |
616 | 616 |
</div> |
617 | 617 |
<div id="postamble" class="status"> |
618 | 618 |
<p class="author">Author: Langley</p> |
619 |
-<p class="date">Created: 2019-08-28 Wed 23:38</p> |
|
619 |
+<p class="date">Created: 2019-08-28 Wed 23:39</p> |
|
620 | 620 |
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> |
621 | 621 |
</div> |
622 | 622 |
</body> |