Browse code
tangle source blocks on save
Ed Langley authored on 29/08/2019 04:44:22
Showing 2 changed files
Showing 2 changed files
... | ... |
@@ -280,5 +280,5 @@ |
280 | 280 |
#+HTML_HEAD: </style> |
281 | 281 |
|
282 | 282 |
# Local Variables: |
283 |
-# after-save-hook: (lambda nil (when (org-html-export-to-html) (rename-file "README.html" "docs/index.html" t))) |
|
283 |
+# after-save-hook: (lambda nil (org-babel-tangle) (when (org-html-export-to-html) (rename-file "README.html" "docs/index.html" t))) |
|
284 | 284 |
# End: |
... | ... |
@@ -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:41 --> |
|
6 |
+<!-- 2019-08-28 Wed 23:44 --> |
|
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="#org079f53a">1. todo API</a> |
|
288 |
+<li><a href="#orga5e2729">1. todo API</a> |
|
289 | 289 |
<ul> |
290 |
-<li><a href="#org00c167d">1.1. List-level APIs</a></li> |
|
291 |
-<li><a href="#org29ec17c">1.2. Getting/Replacing a todo</a></li> |
|
292 |
-<li><a href="#org7bca7be">1.3. Adding and modifying todos</a></li> |
|
293 |
-<li><a href="#orgc4b33ef">1.4. Examples</a></li> |
|
290 |
+<li><a href="#org64b76a1">1.1. List-level APIs</a></li> |
|
291 |
+<li><a href="#orgb6cdd53">1.2. Getting/Replacing a todo</a></li> |
|
292 |
+<li><a href="#org856e4b8">1.3. Adding and modifying todos</a></li> |
|
293 |
+<li><a href="#org2a06a4c">1.4. Examples</a></li> |
|
294 | 294 |
</ul> |
295 | 295 |
</li> |
296 |
-<li><a href="#org063d8cb">2. Source</a> |
|
296 |
+<li><a href="#orgb0c97f5">2. Source</a> |
|
297 | 297 |
<ul> |
298 |
-<li><a href="#orgd65942a">2.1. model.lisp source code</a></li> |
|
299 |
-<li><a href="#orga1f2772">2.2. routing.lisp source</a></li> |
|
300 |
-<li><a href="#org2f1ea81">2.3. main.lisp source</a></li> |
|
298 |
+<li><a href="#org39bc7c6">2.1. model.lisp source code</a></li> |
|
299 |
+<li><a href="#orgc896c62">2.2. routing.lisp source</a></li> |
|
300 |
+<li><a href="#org136cc2b">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-org079f53a" class="outline-2"> |
|
308 |
-<h2 id="org079f53a"><span class="section-number-2">1</span> todo API</h2> |
|
307 |
+<div id="outline-container-orga5e2729" class="outline-2"> |
|
308 |
+<h2 id="orga5e2729"><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-org00c167d" class="outline-3"> |
|
319 |
-<h3 id="org00c167d"><span class="section-number-3">1.1</span> List-level APIs</h3> |
|
318 |
+<div id="outline-container-org64b76a1" class="outline-3"> |
|
319 |
+<h3 id="org64b76a1"><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="org174004e"><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="orgcf25214"><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-org29ec17c" class="outline-3"> |
|
342 |
-<h3 id="org29ec17c"><span class="section-number-3">1.2</span> Getting/Replacing a todo</h3> |
|
341 |
+<div id="outline-container-orgb6cdd53" class="outline-3"> |
|
342 |
+<h3 id="orgb6cdd53"><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="orgfe8463b"><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="org1588f8a"><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-org7bca7be" class="outline-3"> |
|
368 |
-<h3 id="org7bca7be"><span class="section-number-3">1.3</span> Adding and modifying todos</h3> |
|
367 |
+<div id="outline-container-org856e4b8" class="outline-3"> |
|
368 |
+<h3 id="org856e4b8"><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="org5832667"><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="org9afb9a3"><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="org2497992"><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="orgb07c731"><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-orgc4b33ef" class="outline-3"> |
|
412 |
-<h3 id="orgc4b33ef"><span class="section-number-3">1.4</span> Examples</h3> |
|
411 |
+<div id="outline-container-org2a06a4c" class="outline-3"> |
|
412 |
+<h3 id="org2a06a4c"><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/53", |
|
427 |
+(#<hash-table "url": "http://localhost:5000/todo/57", |
|
428 | 428 |
"title": "get groceries", |
429 | 429 |
"completed": YASON:FALSE> |
430 |
- #<hash-table "url": "http://localhost:5000/todo/54", |
|
430 |
+ #<hash-table "url": "http://localhost:5000/todo/58", |
|
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-org063d8cb" class="outline-2"> |
|
439 |
-<h2 id="org063d8cb"><span class="section-number-2">2</span> Source</h2> |
|
438 |
+<div id="outline-container-orgb0c97f5" class="outline-2"> |
|
439 |
+<h2 id="orgb0c97f5"><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-orgd65942a" class="outline-3"> |
|
443 |
-<h3 id="orgd65942a"><span class="section-number-3">2.1</span> model.lisp source code</h3> |
|
442 |
+<div id="outline-container-org39bc7c6" class="outline-3"> |
|
443 |
+<h3 id="org39bc7c6"><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-orga1f2772" class="outline-3"> |
|
526 |
-<h3 id="orga1f2772"><span class="section-number-3">2.2</span> routing.lisp source</h3> |
|
525 |
+<div id="outline-container-orgc896c62" class="outline-3"> |
|
526 |
+<h3 id="orgc896c62"><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-org2f1ea81" class="outline-3"> |
|
573 |
-<h3 id="org2f1ea81"><span class="section-number-3">2.3</span> main.lisp source</h3> |
|
572 |
+<div id="outline-container-org136cc2b" class="outline-3"> |
|
573 |
+<h3 id="org136cc2b"><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:41</p> |
|
619 |
+<p class="date">Created: 2019-08-28 Wed 23:44</p> |
|
620 | 620 |
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> |
621 | 621 |
</div> |
622 | 622 |
</body> |