Changed the license to the AGPL3. Downcased all the lisp sources. Completed the READM...
[com-informatimago:com-informatimago.git] / small-cl-pgms / index.lisp
1 ;;;; -*- mode:lisp; coding:utf-8 -*-
2 ;;;;****************************************************************************
3 ;;;;FILE:               index.lisp
4 ;;;;LANGUAGE:           Common-Lisp
5 ;;;;SYSTEM:             Common-Lisp
6 ;;;;USER-INTERFACE:     NONE
7 ;;;;DESCRIPTION
8 ;;;;    
9 ;;;;    Generate the index.html for small-cl-pgms.
10 ;;;;    
11 ;;;;AUTHORS
12 ;;;;    <PJB> Pascal Bourguignon <pjb@informatimago.com>
13 ;;;;MODIFICATIONS
14 ;;;;    2004-03-14 <PJB> Created.
15 ;;;;BUGS
16 ;;;;LEGAL
17 ;;;;    AGPL3
18 ;;;;    
19 ;;;;    Copyright Pascal Bourguignon 2004 - 2004
20 ;;;;    
21 ;;;;    This program is free software: you can redistribute it and/or modify
22 ;;;;    it under the terms of the GNU Affero General Public License as published by
23 ;;;;    the Free Software Foundation, either version 3 of the License, or
24 ;;;;    (at your option) any later version.
25 ;;;;    
26 ;;;;    This program is distributed in the hope that it will be useful,
27 ;;;;    but WITHOUT ANY WARRANTY; without even the implied warranty of
28 ;;;;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29 ;;;;    GNU Affero General Public License for more details.
30 ;;;;    
31 ;;;;    You should have received a copy of the GNU Affero General Public License
32 ;;;;    along with this program.  If not, see <http://www.gnu.org/licenses/>.
33 ;;;;****************************************************************************
34
35 (com.informatimago.common-lisp.cesarum.package:add-nickname
36  "COM.INFORMATIMAGO.COMMON-LISP.HTML-GENERATOR.HTML" "<")
37
38 ;; (<:INITIALIZE)
39 (<:with-html-output (*standard-output* :kind :strict :encoding :iso-8859-1)
40   (<:html ()
41           (<:comment "PLEASE DO NOT EDIT THIS FILE!")
42           (<:comment "The source of this file is index.lisp")
43           (<:head ()
44                   ;; (<:link (:rel "SHORTCUT ICON" :HREF "informatimago.ico" :TITLE "EXTERNAL:informatimago.ico"))
45                   (<:title () (<:pcdata
46                                "Common-Lisp Small Programs and Tidbits"))
47                   (<:meta (:http-equiv "Content-Type" 
48                                        :content "text/html; charset=iso-8859-1"))
49                   (<:meta (:name "author" :content "Pascal J. Bourguignon"))
50                   (<:meta (:http-equiv "Description" :name "description" 
51                                        :content "Small Common-Lisp Programs and Tidbits"))
52                   (<:meta (:name "keywords" 
53                                  :content "software,logiciel,programas,GPL,LGPL,Lisp,Common-Lisp")))
54           (<:body ()
55                   (<:comment "TOP-BEGIN")
56                   (<:comment "TOP-END")
57                   (<:comment "MENU-BEGIN")
58                   (<:comment "MENU-END")
59
60                   (<:h1 () (<:pcdata "Common-Lisp Small Programs and Tidbits"))
61                   
62                   (<:h2 () (<:pcdata "Downloading the sources"))
63                   (<:p ()
64                        (<:pcdata "The sources of these small Common-Lisp
65                                   programs can be downloaded via ")
66                        (<:a (:href "http://git-scm.com/") (<:pcdata "git"))
67                        (<:pcdata ". Use the following command to fetch them:"))
68                   (<:pre ()
69                          (<:pcdata "git clone git://git.informatimago.com/public/small-cl-pgms"))
70
71                   (dolist
72                       (section 
73                         '(
74                           ("Lisp History"
75                            ;;===========
76                            ""
77
78                            ("The original LISP"
79                             ;;----------------
80                             (("aim-8/" "The LISP of the AI Memo 8"))
81                             "Implements the lisp of AIM-8 (4 MARCH 1959 by John McCarthy).")
82
83                            ("LISP 1.5 Sources"
84                             ;;----------------
85                             (("ftp://ftp.informatimago.com/pub/free/develop/lisp/lisp15-0.0.2.tar.gz"
86                               "The sources of LISP 1.5")
87                              ("http://groups.google.com/group/comp.lang.lisp/browse_frm/thread/67b1cabdf271870c?pli=1"
88                               "More information")
89                              ("http://www.softwarepreservation.org/projects/LISP/index.html#LISP_I_and_LISP_1.5_for_IBM_704,_709,_7090_"
90                               "Software preservation"))
91                             "The sources of LISP 1.5 in machine readable form. See \"More information\" for perhaps the latest version.")
92
93                            ("A Parser for M-expressions"
94                             ;;-------------------------
95                             (("m-expression/" "A Parser for M-expressions"))
96                             "Implements a parser and a REPL for the M-expressions defined 
97                  in  AIM-8 (4 MARCH 1959 by John McCarthy).")
98                            
99                            ("Old LISP programs still run in Common Lisp"
100                             ;;-----------------------------------------
101                             (("wang.html" "Wang's Algorithm in LISP 1, runs on COMMON-LISP"))
102                             "The Wang's algorithm, implemented in LISP 1 on IBM 704
103                   in March 1960 still runs well on Common Lisp in 2006."))
104                           
105                           ("Lisp Cookbook"
106                            ;;============
107                            ""
108
109                            ("Image Based Development"
110                             ;;----------------------
111                             (("ibcl/"
112                               "A package that saves the definitions typed at the REPL"))
113                             "")
114                            
115                            ("Small Simple Structural Editor"
116                             ;;----------------------
117                             (("sedit/"
118                               "A Structural Editor"))
119                             "This is a simple structural editor to edit lisp sources considered as syntactic forests.")
120
121                            ("Recursive Descent Parser Generator"
122                             ;;---------------------------------
123                             (("rdp/"
124                               "A Quick and Dirty Recursive Descent Parser Generator"))
125                             "But not so ugly.  
126  Can generate the parser in lisp and in pseudo-basic."))
127
128               
129                           ("Lisp Tidbits"
130                            ;;============
131                            ""
132
133                            ("Author Signature" 
134                             ;;---------------
135                             ("author-signature.lisp")
136                             "This program computes an \"author signature\" from a text, with
137  the algorithm from  http://unix.dsu.edu/~~johnsone/comp.html")
138
139                            ("Demographic Simulator"
140                             ;;--------------------
141                             ("douze.lisp")
142                             "Assuming an Adam and an Eve 20 years old each,
143  assuming the current US life table,
144  and assuming an \"intensive\" reproduction rate, with gene selection,
145  simulate the population growth during 80 years
146  and draw the final age pyramid.")
147
148                            ("Solitaire"
149                             ;;--------------------
150                             ("solitaire.lisp")
151                             "A solitaire playing program. The user just watch the program play solitaire.")
152
153                            ("Conway's Life Game"
154                             ;;-----------------
155                             ("life.lisp")
156                             "A small life game program.")
157
158                            ("Cube Puzzle" 
159                             ;;----------
160                             ("cube.lisp")
161                             "This program tries to resolve the Cube Puzzle, where a cube
162   composed of 27 smaller cubes linked with a thread  must be recomposed.")
163
164                            ("Common-Lisp quines"
165                             ;;-----------------
166                             ("quine.lisp")
167                             "Three Common-Lisp quines (autogenerating programs).")
168               
169                            ("Geek Day"
170                             ;;-------
171                             ("geek-day/geek-day.lisp" "geek-day/Makefile" "geek-day/README")
172                             "The famous Geek Day games by userfriendly.org's Illiad.
173     See: http://ars.userfriendly.org/cartoons/?id=20021215")
174
175                            ("BASIC"
176                             ;;----
177                             (("basic/"  "A Quick, Dirty and Ugly Basic interpreter."))
178                             "")
179
180                            ("Brainfuck"
181                             ;;--------
182                             (("brainfuck/"  "A brainfuck virtual machine, and brainfuck compiler."))
183                             ""))))
184
185
186                     (<:h2 () (<:pcdata (first section)))
187                     (<:p  () (<:pcdata (second section)))
188                     (dolist (soft (cddr section))
189                       (<:h3 () (<:pcdata (first soft)))
190                       (<:p  () (<:pcdata (third soft)))
191                       (<:ul ()
192                             (dolist (file (second soft))
193                               (<:li ()
194                                     (if (stringp file)
195                                         (<:a (:href file)
196                                              (<:pcdata file))
197                                         (<:a (:href (first file))
198                                              (<:pcdata (second file)))))))))
199
200                   ;; (<:COMMENT "MENU-BEGIN")
201                   ;; (<:COMMENT "MENU-END")
202                   (<:comment "BOTTOM-BEGIN")
203                   (<:comment "BOTTOM-END"))))
204
205 ;;;; THE END ;;;;