dotfiles/sbcl/.quicklisp/dists/quicklisp/software/quickproject-1.4.1/doc/index.html

266 lines
9 KiB
HTML
Raw Normal View History

2020-02-25 06:06:49 -05:00
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel='stylesheet' type='text/css' href='style.css'>
<title>Quickproject - create a Common Lisp project skeleton</title>
</head>
<body>
<div id='content'>
<h2>Quickproject - create a Common Lisp project skeleton</h2>
<p>Quickproject is a library for creating a Common Lisp project
skeleton. It is available under a BSD-style license;
see <a href='LICENSE.txt'>LICENSE.txt</a> for details.
The latest version is 1.4.1, released on December 26th, 2019.
<p>Download
shortcut: <a href='http://www.xach.com/lisp/quickproject.tgz'>http://www.xach.com/lisp/quickproject.tgz</a>
<h2>Contents</h2>
<ul>
<li> <a href='#overview'>Overview</a>
<li> <a href='#examples'>Examples</a>
<li> <a href='#dictionary'>Dictionary</a>
<ul>
<li> <a href='#make-project'>make-project</a>
<li> <a href='#*author*'>*author*</a>
<li> <a href='#*include-copyright*'>*include-copyright*</a>
<li> <a href='#*license*'>*license*</a>
<li> <a href='#*template-directory*'>*template-directory*</a>
<li> <a href='#default-template-parameters'>default-template-parameters</a>
<li> <a href='#*template-parameter-functions*'>*template-parameter-functions*</a>
<li> <a href='#*after-make-project-hooks*'>*after-make-project-hooks*</a>
</ul>
<li> <a href='#feedback'>Feedback</a>
</ul>
<a name='overview'><h2>Overview</h2></a>
<p>Quickproject provides a quick way to make a Common Lisp
project. After creating a project, it extends the ASDF registry so
the project may be immediately loaded.
<a name='example'><h2>Examples</h2></a>
<pre class=code>
* <b>(quickproject:make-project #p"~/src/myproject/" :depends-on '(drakma cxml))</b>
"myproject"
* <b>(asdf:load-system "myproject")</b>
<i>load output</i>
</pre>
<pre class='code'>
* <b>(quickproject:make-project #p"~/src/websnarf/" :name "cl-websnarf")</b>
"cl-websnarf"
* <b>(directory #p"~/src/websnarf/*.*")</b>
(#p"~/src/websnarf/README.txt"
#p"~/src/websnarf/package.lisp"
#p"~/src/websnarf/cl-websnarf.asd"
#p"~/src/websnarf/cl-websnarf.lisp")
</pre>
<a name='dictionary'><h2>Dictionary</h2></a>
<p>The following symbols are exported from the <tt>quickproject</tt>
package.
<div class='item'>
<div class='type'><a name='make-project'>[Function]</a></div>
<div class='signature'>
<code class='name'>make-project</code>
<span class='args'>
<var>pathname</var> <code class='llkw'>&amp;key</code>
<var>depends-on</var>
<var>author</var>
<var>include-copyright</var>
<var>license</var>
<var>name</var>
<var>template-directory</var>
<var>template-parameters</var>
</span>
<span class='result'>=> <var>project-name</var></span>
</div>
<blockquote class='description'>
<p>Create the skeleton of a Common Lisp project
in <var>directory</var>. If given, <var>name</var> is used as the
name of the project. Otherwise, the name is taken from the last
component in
the <a href="http://l1sp.org/cl/pathname-directory">pathname-directory</a>
of the pathname. For example, the last directory component
of <tt>#p"src/lisp/myproject/"</tt> is "myproject".
<p>The project skeleton consists of the following files:
<ul>
<li> README.txt
<li> package.lisp &mdash; defines a package named after the project
<li> <var>name</var>.asd &mdash; defines an ASDF system named after
the project, with a <tt>:depends-on</tt> list as given in the
function call
<li> <var>name</var>.lisp
</ul>
<p>If provided, <var>author</var> and <var>license</var> are used
to initialize certain parts of the default files with extra
information. The default values are taken
from <a href='#*author*'><tt>*AUTHOR*</tt></a>
and <a href='#*license*'><tt>*LICENSE*</tt></a>, respectively.
<p>If provided, the boolean argument to <var>include-copyright</var>
will determine whether copyright notices will be printed in the
header of each file.
<p>If provided, each file in <var>template-directory</var> is
rewritten
with <a href="http://weitz.de/html-template/">HTML-TEMPLATE</a>
into the new directory. The options are as follows:
<ul>
<li> The template markers are <tt>(#|</tt> and <tt>|#)</tt>
<li> No escaping is done in template values
<li> Template parameters are created by
appending <var>template-parameters</var> with the lists returned by
calling each entry
in <a href='#*template-parameter-functions*'><tt>*TEMPLATE-PARAMETER-FUNCTIONS*</tt></a>
</ul>
<p>After rewriting templates, each element
in <a href='#*after-make-project-hooks*'><tt>*AFTER-MAKE-PROJECT-HOOKS*</tt></a>
is called.
<p>After the project has been created, its pathname is added
to <tt>ASDF:*CENTRAL-REGISTRY*</tt>, so the project is immediately
loadable via <tt>ASDF:LOAD-SYSTEM</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*author*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*author*</code>
</div>
<blockquote class='description'>
<p>This string is used to initialize the <tt>:author</tt> argument
in the project system definition. The default initial value
is <tt>"Your&nbsp;Name&nbsp;&lt;your.name@example.com>"</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*include-copyright*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*include-copyright*</code>
</div>
<blockquote class='description'>
<p>This variable is used to control whether a copyright notice (with
the author's name and the current year) should appear in the header
of each file.</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*license*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*license*</code>
</div>
<blockquote class='description'>
<p>This string is used to initialize the <tt>:description</tt>
argument in the project system definition. The default initial
value is <tt>"Specify&nbsp;license&nbsp;here"</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*template-directory*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*template-directory*</code>
</div>
<blockquote class='description'>
<p>If non-NIL, this variable should be bound to a pathname used as
the default value of <var>template-directory</var>
in <a href='#make-project'><tt>MAKE-PROJECT</tt></a>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='default-template-parameters'>[Function]</a></div>
<div class='signature'>
<code class='name'>default-template-parameters</code>
<span class='args'>
</span>
<span class='result'>=> <var>parameters</var></span>
</div>
<blockquote class='description'>
<p>Return a plist with values for <tt>:name</tt>, <tt>:license</tt>,
and <tt>:author</tt> for the current project being created
via <a href='#make-project'><tt>MAKE-PROJECT</tt></a>. This
function is in the default value
of <a href='#*template-parameter-functions*'><tt>*TEMPLATE-PARAMETER-FUNCTIONS*</tt></a>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*template-parameter-functions*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*template-parameter-functions*</code>
</div>
<blockquote class='description'>
<p>A list of functions that are called to produce template
parameters when rewriting templates
in <a href='#make-project'><tt>MAKE-PROJECT</tt></a>. Each
function is called with no arguments and should produce a list
of keyword/value pairs. The resulting lists are appended
together for use as template parameters
in <a href='http://weitz.de/html-template/#fill-and-print-template'><tt>HTML-TEMPLATE:FILL-AND-PRINT-TEMPLATE</tt></a>.
<p>The default value is <tt>(default-template-parameters)</tt>.
</blockquote>
</div>
<div class='item'>
<div class='type'><a name='*after-make-project-hooks*'>[Special variable]</a></div>
<div class='signature'>
<code class='name'>*after-make-project-hooks*</code>
</div>
<blockquote class='description'>
<p>A list of designators for functions to be called after a
project has been created. Each function should accept one required
argument, the pathname given
to <a href='#make-project'><tt>MAKE-PROJECT</tt></a>, and two
keyword arguments, <tt>:name</tt> and <tt>:depends-on</tt>, which
correspond to the name of the project (whether explicitly supplied
to <tt>MAKE-PROJECT</tt> or derived from the pathname) and the
<tt>:depends-on</tt> argument,
respectively. <tt>*default-pathname-defaults*</tt> is bound to the
newly created project pathname when hooks are called.
</blockquote>
</div>
<a name='feedback'><h2>Feedback</h2></a>
<p>For questions or comments about Quickproject, please email me, Zach
Beane &lt;<a href='mailto:xach@xach.com'>xach@xach.com</a>&gt;.
</div>
<br><br><br>
</body>