The cl-bloggy Reference Manual

This is the cl-bloggy Reference Manual, version 2.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Fri Sep 15 03:42:53 2023 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 cl-bloggy

A self hosted and extensible blogging system built atop Hunchentoot.
The user writes blog entries by connecting to their remote image with sly/slime and creates new entries by writing HTML using spinneret.

Author

K1D77A

License

GPL-3

Version

2.0.0

Dependencies
  • hunchentoot (system).
  • spinneret (system).
  • alexandria (system).
  • lass (system).
  • str (system).
  • xml-emitter (system).
  • do-urlencode (system).
  • closer-mop (system).
  • local-time (system).
  • lorem-ipsum (system).
Source

cl-bloggy.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 cl-bloggy/cl-bloggy.asd

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

ASDF Systems

cl-bloggy.


3.1.2 cl-bloggy/package.lisp

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Packages

cl-bloggy.


3.1.3 cl-bloggy/classes.lisp

Dependency

package.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

3.1.4 cl-bloggy/conditions.lisp

Dependency

classes.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

unknown-content (condition).


3.1.5 cl-bloggy/hunchentoot-handler.lisp

Dependency

conditions.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

3.1.6 cl-bloggy/request-processing.lisp

Dependency

hunchentoot-handler.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

3.1.7 cl-bloggy/content.lisp

Dependency

request-processing.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

3.1.8 cl-bloggy/uri-processing.lisp

Dependency

content.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface

process-uri (generic function).


3.1.9 cl-bloggy/generate-rss.lisp

Dependency

uri-processing.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface

generate-rss (generic function).


3.1.10 cl-bloggy/generate-css.lisp

Dependency

generate-rss.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface

3.1.11 cl-bloggy/generate-html.lisp

Dependency

generate-css.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

%format-tags (function).


3.1.12 cl-bloggy/cl-bloggy.lisp

Dependency

generate-html.lisp (file).

Source

cl-bloggy.asd.

Parent Component

cl-bloggy (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 cl-bloggy

Source

package.lisp.

Nickname

bloggy

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Special variables

Special Variable: *blog-index-directory*
Package

cl-bloggy.

Source

classes.lisp.

Special Variable: *blog-root-directory*
Package

cl-bloggy.

Source

classes.lisp.

Special Variable: *colourfour*
Package

cl-bloggy.

Source

generate-css.lisp.

Special Variable: *colourone*
Package

cl-bloggy.

Source

generate-css.lisp.

Special Variable: *colourthree*
Package

cl-bloggy.

Source

generate-css.lisp.

Special Variable: *colourtwo*
Package

cl-bloggy.

Source

generate-css.lisp.

Special Variable: *default-css*
Package

cl-bloggy.

Source

generate-html.lisp.

Special Variable: *max-category-depth*
Package

cl-bloggy.

Source

cl-bloggy.lisp.


5.1.2 Macros

Macro: easy-blog-entry ((acceptor entry-class categories title sym date &key subtitle description let-bindings-to-override-global-vars) &body body)

ACCEPTOR - The acceptor you want to add this entry to, ie your instance of ’bloggy-acceptor. ENTRY-CLASS - The class you want your blog entry to be, normally this would be your
own subclass of ’entry, this is used to determine the HTML and CSS that is generated and allows you to maximize customizability.
CATEGORIES - This is a list of categories like (’general’ ’programming’), a category object is searched for and if one cannot be found then one is generated for later.
Categories are found via that list, so a category is the product of its parents, and their parents parents etc, this means that (’general’ ’programming’ ’lisp’ ’common lisp’) and (’general’ ’programming’ ’common lisp’) do not resolve to the same category, however they would both be children of the category ’programming’.
TITLE - The title for the entry.
SYM - A keyword used to reference this blog within CL.
DATE - Is a list that is passed to the function ’new-date-timestamp’ this accepts keyword arguments that would be used with local-time:encode-timestamp in order to generate a timestamp for that blog entry. This determines the order they are displayed in both the index and the main page.
SUBTITLE - This is an optional subtitle.
DESCRIPTION - This is an option description. In the case this is provided then the RSS feed will display this instead of the result of evaluating the function in content.
The description is also displayed on the index page. LET-BINDINGS-TO-OVERRIDE-GLOBAL-VARS - This gives you an opportunity to per entry lexically bind any of the global variables. Although I have not tested this so idk if
it works.

Package

cl-bloggy.

Source

cl-bloggy.lisp.


5.1.3 Ordinary functions

Function: easy-image (acceptor image-path key)

Given an ACCEPTOR (where your blog is stored), a path to an image (string)
and a KEY (keyword), creates a new instance of ’image-content and stores it within the content object within your blog.

Package

cl-bloggy.

Source

content.lisp.

Function: entries-in-category (category blog)

Returns all of the entries that are associated with CATEGORY within BLOG.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: find-categories (names blog &optional cats)
Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: find-category (list blog &optional createp)

Attempts to find the category that is in list.
List contains the names of the categories, say (’general’ ’programming’ ’common lisp’ ’generics’) the correct category would be the very final one, that is a child of each of those categories successively, if you swapped ’common lisp’ for ’clojure’ then the final category would have to be new. So categories are found by their parents.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: make-route (method url unique-id handler)
Package

cl-bloggy.

Source

hunchentoot-handler.lisp.

Function: new-blog (acceptor blog-class)

Initializes the main blog within ACCEPTOR. This must be called before both new-index and new-content. BLOG-CLASS should ideally be a subclass of blog. Uses (url (make-instance BLOG-CLASS)) to determine the url to put the main page. Defaults to /blog/main.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: new-content (acceptor content-class)

Initialize the main content repo within (blog acceptor) using the class CONTENT-CLASS. Ideally CONTENT-CLASS will be a subclass of content.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: new-index (acceptor index-class)

Initializes the main index page within (blog acceptor) using the class INDEX-CLASS. Ideally INDEX-CLASS will be your subclass of ’index. Uses (url (make-instance INDEX-CLASS)) to determine where to put the route for the index page.
Defaults to /blog/index

Package

cl-bloggy.

Source

cl-bloggy.lisp.


5.1.4 Generic functions

Generic Reader: acceptor (object)
Package

cl-bloggy.

Methods
Reader Method: acceptor ((uploaded-content uploaded-content))

automatically generated reader method

Source

content.lisp.

Target Slot

acceptor.

Reader Method: acceptor ((blog blog))

This is the top level acceptor where the blog object is stored.

Source

classes.lisp.

Target Slot

acceptor.

Reader Method: acceptor ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

acceptor.

Generic Writer: (setf acceptor) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf acceptor) ((uploaded-content uploaded-content))

automatically generated writer method

Source

content.lisp.

Target Slot

acceptor.

Writer Method: (setf acceptor) ((blog blog))

This is the top level acceptor where the blog object is stored.

Source

classes.lisp.

Target Slot

acceptor.

Generic Function: add-content (e content key)

Stores content under key in E.

Package

cl-bloggy.

Source

content.lisp.

Methods
Method: add-content ((acceptor bloggy-acceptor) (content uploaded-content) key)
Method: add-content ((blog blog) (content uploaded-content) key)

adds CONTENT to BLOG under KEY.

Generic Function: add-route (route acceptor)
Package

cl-bloggy.

Methods
Method: add-route (route (acceptor bloggy-acceptor))

Adds a route to your acceptor, the acceptor is what you used to start hunchentoot

Source

hunchentoot-handler.lisp.

Generic Function: all-children (category)
Package

cl-bloggy.

Methods
Method: all-children ((category category))

Returns all of the children for CATEGORY.

Source

cl-bloggy.lisp.

Generic Reader: author (object)
Package

cl-bloggy.

Methods
Reader Method: author ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

author.

Generic Writer: (setf author) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf author) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

author.

Generic Reader: blog (object)
Package

cl-bloggy.

Methods
Reader Method: blog ((bloggy-acceptor bloggy-acceptor))

automatically generated reader method

Source

hunchentoot-handler.lisp.

Target Slot

blog.

Reader Method: blog ((condition request-condition))
Source

conditions.lisp.

Target Slot

blog.

Reader Method: blog ((index index))

automatically generated reader method

Source

classes.lisp.

Target Slot

blog.

Reader Method: blog ((content content))

automatically generated reader method

Source

classes.lisp.

Target Slot

blog.

Reader Method: blog ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

blog.

Generic Writer: (setf blog) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf blog) ((bloggy-acceptor bloggy-acceptor))

automatically generated writer method

Source

hunchentoot-handler.lisp.

Target Slot

blog.

Writer Method: (setf blog) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

blog.

Generic Reader: cat-list (condition)
Generic Writer: (setf cat-list) (condition)
Package

cl-bloggy.

Methods
Reader Method: cat-list ((condition exceeded-category-depth))
Writer Method: (setf cat-list) ((condition exceeded-category-depth))
Source

conditions.lisp.

Target Slot

cat-list.

Generic Reader: categories (object)
Package

cl-bloggy.

Methods
Reader Method: categories ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

categories.

Generic Writer: (setf categories) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf categories) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

categories.

Generic Reader: category (object)
Package

cl-bloggy.

Methods
Reader Method: category ((condition missing-categories))
Source

conditions.lisp.

Target Slot

category.

Reader Method: category ((condition rss%bad-categories))
Source

conditions.lisp.

Target Slot

category.

Reader Method: category ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

category.

Reader Method: category ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

category.

Generic Writer: (setf category) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf category) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

category.

Writer Method: (setf category) ((special-request special-request))

automatically generated writer method

Source

classes.lisp.

Target Slot

category.

Generic Function: category-names (category)
Package

cl-bloggy.

Methods
Method: category-names ((category category))

Returns the names of all of the names of categories in category.

Source

cl-bloggy.lisp.

Generic Reader: children (object)
Package

cl-bloggy.

Methods
Reader Method: children ((category category))

automatically generated reader method

Source

classes.lisp.

Target Slot

children.

Generic Writer: (setf children) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf children) ((category category))

automatically generated writer method

Source

classes.lisp.

Target Slot

children.

Generic Function: clean-category (acceptor category)

Deletes all the entries that are in that category and then deletes it.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Methods
Method: clean-category (acceptor (category category))
Generic Reader: content (object)
Package

cl-bloggy.

Methods
Reader Method: content ((condition unknown-content))
Source

conditions.lisp.

Target Slot

content.

Reader Method: content ((content content))

automatically generated reader method

Source

classes.lisp.

Target Slot

content.

Reader Method: content ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

content.

Reader Method: content ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

content.

Generic Writer: (setf content) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf content) ((condition unknown-content))
Source

conditions.lisp.

Target Slot

content.

Writer Method: (setf content) ((content content))

automatically generated writer method

Source

classes.lisp.

Target Slot

content.

Writer Method: (setf content) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

content.

Writer Method: (setf content) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

content.

Generic Reader: data (object)
Generic Writer: (setf data) (object)
Package

cl-bloggy.

Methods
Reader Method: data ((uploaded-content uploaded-content))
Writer Method: (setf data) ((uploaded-content uploaded-content))

A function that when you evaluate returns the byte vector containing the content of the content.

Source

content.lisp.

Target Slot

data.

Generic Reader: date (object)
Package

cl-bloggy.

Methods
Reader Method: date ((entry entry))

The date

Source

classes.lisp.

Target Slot

date.

Generic Function: delete-category (category blog)
Package

cl-bloggy.

Methods
Method: delete-category ((category category) blog)

Deletes a category.

Source

cl-bloggy.lisp.

Method: delete-category ((category null) blog)
Source

cl-bloggy.lisp.

Method: delete-category ((category list) blog)
Source

cl-bloggy.lisp.

Generic Function: delete-entry (acceptor entry)

Deletes a blog entry from (blog acceptor)

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Methods
Method: delete-entry ((acceptor bloggy-acceptor) (entry null))
Method: delete-entry ((acceptor bloggy-acceptor) (entry entry))
Generic Reader: description (object)
Package

cl-bloggy.

Methods
Reader Method: description ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

description.

Reader Method: description ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

description.

Generic Writer: (setf description) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf description) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

description.

Writer Method: (setf description) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

description.

Generic Function: determine-request-type (special)

Given an instance of the special-request class (not subclasses)
attempts to determine which subclass it should change-class that instance into. Can possibly signal ’rss%bad-categories, ’missing-categories, ’missing-content

Package

cl-bloggy.

Source

request-processing.lisp.

Methods
Method: determine-request-type ((special special-request))
Generic Function: display-condition (stream condition way &rest args)

Displays the condition to the user.
WAY is a keyword argument, right now there are two :internal and :html,
:internal displays the condition as normal, while :html is used for rendering HTML for the condition. If you look in src/generate-html.lisp you can see how the request-conditions are formatted for HTML output

Package

cl-bloggy.

Source

conditions.lisp.

Methods
Method: display-condition (stream (condition unknown-content) (way (eql :internal)) &rest args)
Method: display-condition (stream (condition missing-required-feature) (way (eql :internal)) &rest args)
Method: display-condition (stream (condition missing-categories) (way (eql :internal)) &rest args)
Method: display-condition (stream (condition rss%bad-categories) (way (eql :internal)) &rest args)
Method: display-condition (stream condition way &rest args)
Method: display-condition (stream condition (way (eql :html)) &rest args)
Method: display-condition :around (stream (condition request-condition) (way (eql :internal)) &rest args)
Generic Reader: domain (object)
Package

cl-bloggy.

Methods
Reader Method: domain ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

domain.

Generic Writer: (setf domain) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf domain) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

domain.

Generic Reader: entries (object)
Package

cl-bloggy.

Methods
Reader Method: entries ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

entries.

Generic Writer: (setf entries) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf entries) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

entries.

Generic Reader: feature (condition)
Generic Writer: (setf feature) (condition)
Package

cl-bloggy.

Methods
Reader Method: feature ((condition missing-required-feature))
Writer Method: (setf feature) ((condition missing-required-feature))
Source

conditions.lisp.

Target Slot

feature.

Generic Function: find-content (e key)

Finds content under KEY from E.

Package

cl-bloggy.

Source

content.lisp.

Methods
Method: find-content ((index index) key)
Method: find-content ((entry entry) key)
Method: find-content ((acceptor bloggy-acceptor) key)
Method: find-content ((blog blog) key)
Method: find-content ((content content) key)
Method: find-content :around (e key)
Generic Function: find-entry (check blog)

Uses CHECK to try and find entry in BLOG.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Methods
Method: find-entry ((check symbol) blog)
Generic Function: format-timestamp (stream timestamp way)

formats timestamp into stream by WAY.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Methods
Method: format-timestamp (stream timestamp (way (eql :rss)))
Method: format-timestamp (stream timestamp (way (eql :site)))
Generic Function: generate-rss (stream object)

Converts object into RSS using xml-emitter.

Package

cl-bloggy.

Source

generate-rss.lisp.

Methods
Method: generate-rss (stream (entry entry))

Generates the rss for an ENTRY object, fills in the default values and in the case that description is non nil then evaluates that function, if it is nil then evaluates the content function instead.

Method: generate-rss (stream (blog blog))

Just applies the rss-channel-header and then executes generate-rss on all of the entries.

Method: generate-rss (stream (category category))

Converts the category into a string for use within the generate-rss, however
I basically have just guessed that you should wrap categories that contain spaces with single ’ marks. This may change.

Generic Function: handle-unknown-uri (acceptor request uri method)

Attempts to handle a request to an unknown URI.
Tries to determine the type of request, which are subclasses of ’special-request. Decodes the uri, checks it is valid and then creates the correct subclass.
All conditions that are a subclass of ’request-condition
are caught by :around and the conditions
are passed to display-condition with the :html key.
If a condition is a subclass of ’error a new condition is created and that is passed to display-condition with the :html key.
If all goes well process-special-request is evaluated with the generated request.

Package

cl-bloggy.

Source

request-processing.lisp.

Methods
Method: handle-unknown-uri (acceptor request uri method)
Method: handle-unknown-uri :around (acceptor request uri method)
Generic Function: html-body (page)

Displays PAGE the correct way. If you wanted to change the layout
of a certain page, you would create a new version of html-body for your subclass of that page. In that case it would be best to simply copy and paste the code for the superclass and then play with it that way, you dont want to end up breaking functionality.

Package

cl-bloggy.

Source

generate-html.lisp.

Methods
Method: html-body ((c request-condition))
Method: html-body ((blog blog))
Method: html-body ((index index))
Method: html-body ((entry entry))
Generic Function: html-footer (page)

Appends a footer to PAGE.

Package

cl-bloggy.

Source

generate-html.lisp.

Methods
Method: html-footer (page)
Method: html-footer :around (page)
Generic Function: html-headers (page)

Applies the default css sheets listed in *default-css* to the header and then evaluates call-next-method.

Package

cl-bloggy.

Source

generate-html.lisp.

Methods
Method: html-headers ((blog blog))
Method: html-headers ((entry entry))
Method: html-headers (page)
Method: html-headers :around (page)
Generic Reader: http-code (condition)
Package

cl-bloggy.

Methods
Reader Method: http-code ((condition request-condition))
Source

conditions.lisp.

Target Slot

http-code.

Generic Reader: id (object)
Package

cl-bloggy.

Methods
Reader Method: id ((entry entry))

An amalgamation of title and category

Source

classes.lisp.

Target Slot

id.

Generic Reader: index (object)
Package

cl-bloggy.

Methods
Reader Method: index ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

index.

Generic Writer: (setf index) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf index) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

index.

Generic Reader: instructions (condition)
Generic Writer: (setf instructions) (condition)
Package

cl-bloggy.

Methods
Reader Method: instructions ((condition missing-required-feature))
Writer Method: (setf instructions) ((condition missing-required-feature))
Source

conditions.lisp.

Target Slot

instructions.

Generic Reader: language (object)
Package

cl-bloggy.

Methods
Reader Method: language ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

language.

Generic Writer: (setf language) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf language) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

language.

Generic Reader: message (condition)
Package

cl-bloggy.

Methods
Reader Method: message ((condition bloggy-condition))
Source

conditions.lisp.

Target Slot

message.

Generic Reader: mime (object)
Generic Writer: (setf mime) (object)
Package

cl-bloggy.

Methods
Reader Method: mime ((uploaded-content uploaded-content))
Writer Method: (setf mime) ((uploaded-content uploaded-content))

The mimetype obtained with tbnl:mime

Source

content.lisp.

Target Slot

mime.

Generic Reader: name (object)
Package

cl-bloggy.

Methods
Reader Method: name ((uploaded-content uploaded-content))

automatically generated reader method

Source

content.lisp.

Target Slot

name.

Reader Method: name ((category category))

automatically generated reader method

Source

classes.lisp.

Target Slot

name.

Generic Writer: (setf name) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf name) ((uploaded-content uploaded-content))

automatically generated writer method

Source

content.lisp.

Target Slot

name.

Writer Method: (setf name) ((category category))

automatically generated writer method

Source

classes.lisp.

Target Slot

name.

Generic Function: page-css (page)

Generates CSS for page. Uses append method so that each subclass of
page has its CSS appended after. Works with most-specific-last meaning that the methods are applied like so page -> entry -> my-entry, assuming you have subclassed something and then created your own version of page-css for it. This is ideal for CSS as CSS cascades. If you wanted to override the default colours you could create a new :root and override the values of :–colourone etc.

Package

cl-bloggy.

Source

generate-css.lisp.

Method Combination

append.

Options

:most-specific-last

Methods
Method: page-css append ((page index))

Provide default css for all indexes and subclasses of index.

Method: page-css append ((page blog))

Provide default css for all blogs and subclasses of blog.

Method: page-css append ((page entry))
Method: page-css append (page)

Provide the default CSS for all objects within cl-bloggy.

Method: page-css :around (page)
Generic Reader: parent (object)
Package

cl-bloggy.

Methods
Reader Method: parent ((category category))

automatically generated reader method

Source

classes.lisp.

Target Slot

parent.

Generic Writer: (setf parent) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf parent) ((category category))

automatically generated writer method

Source

classes.lisp.

Target Slot

parent.

Generic Reader: path (object)
Package

cl-bloggy.

Methods
Reader Method: path ((uploaded-content uploaded-content))

automatically generated reader method

Source

content.lisp.

Target Slot

path.

Generic Writer: (setf path) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf path) ((uploaded-content uploaded-content))

automatically generated writer method

Source

content.lisp.

Target Slot

path.

Generic Function: process-special-request (special-request)

Properly handles the subclass of special-request and serves the content expected.

Package

cl-bloggy.

Source

request-processing.lisp.

Methods
Method: process-special-request ((request rss-category-request))

Attempts to generate an RSS feed for the category in request.

Method: process-special-request ((request category-request))

Generate the HTML for content within the categories discovered in the request url. Can signal ’missing-categories and ’missing-content.

Method: process-special-request ((request rss-request))
Generic Function: process-uri (e key &rest args)

Generates the correct url for E. Key is the method to use.

Package

cl-bloggy.

Source

uri-processing.lisp.

Methods
Method: process-uri ((blog blog) (key (eql :category-url)) &rest args)

When (first args) is a category, generates a url for that category.

Method: process-uri ((im image-content) (key (eql :upload)) &rest args)

Generates the URL for im, this is different from the normal content in that the routes are at /images/ rather than /generic/

Method: process-uri ((im content) (key (eql :upload)) &rest args)

Giving IM which is an instance of content, generates a url at ../generic/..

Method: process-uri ((uri string) (key (eql :decode)) &rest args)

Decodes the URI string. Used when requests are made to tbnl. Makes use of *max-category-depth* in an attempt to stop DoS attacks which use very large URIs full of fake categories.

Method: process-uri ((entry entry) (key (eql :for-route)) &rest args)

Default URI encoding for entries, this is so that entries once created can be
found at the correct uri. This is a workaround with Nginx, nginx seems to be rewriting URLs so best just decode the URI on request and check that way.

Method: process-uri ((entry entry) (key (eql :encode)) &rest args)

Default URI encoding for entries, this is so that entries once created can be found at the correct uri.

Generic Reader: r-method (object)
Package

cl-bloggy.

Methods
Reader Method: r-method ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

r-method.

Generic Function: remove-route (route acceptor)
Package

cl-bloggy.

Methods
Method: remove-route (route (acceptor bloggy-acceptor))
Source

hunchentoot-handler.lisp.

Generic Reader: request (object)
Package

cl-bloggy.

Methods
Reader Method: request ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

request.

Generic Reader: routes (object)
Package

cl-bloggy.

Methods
Reader Method: routes ((bloggy-acceptor bloggy-acceptor))

automatically generated reader method

Source

hunchentoot-handler.lisp.

Target Slot

routes.

Generic Writer: (setf routes) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf routes) ((bloggy-acceptor bloggy-acceptor))

automatically generated writer method

Source

hunchentoot-handler.lisp.

Target Slot

routes.

Generic Reader: split-uri (object)
Package

cl-bloggy.

Methods
Reader Method: split-uri ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

split-uri.

Generic Reader: subtitle (object)
Package

cl-bloggy.

Methods
Reader Method: subtitle ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

subtitle.

Generic Writer: (setf subtitle) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf subtitle) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

subtitle.

Generic Reader: sym (object)
Package

cl-bloggy.

Methods
Reader Method: sym ((category category))

automatically generated reader method

Source

classes.lisp.

Target Slot

sym.

Reader Method: sym ((entry entry))

A keyword used to reference this entry.

Source

classes.lisp.

Target Slot

sym.

Generic Writer: (setf sym) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf sym) ((category category))

automatically generated writer method

Source

classes.lisp.

Target Slot

sym.

Generic Reader: title (object)
Package

cl-bloggy.

Methods
Reader Method: title ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

title.

Reader Method: title ((entry entry))

automatically generated reader method

Source

classes.lisp.

Target Slot

title.

Generic Writer: (setf title) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf title) ((blog blog))

automatically generated writer method

Source

classes.lisp.

Target Slot

title.

Writer Method: (setf title) ((entry entry))

automatically generated writer method

Source

classes.lisp.

Target Slot

title.

Generic Function: to-html (e)

The entry function used to create HTML pages. This method calls ’html-headers’ html-body’ and ’html-footer’ in that order in order to render a page. You can create your own version of this method to modify the functionality for your own subclasses the same goes for the three methods it calls.

Package

cl-bloggy.

Source

generate-html.lisp.

Methods
Method: to-html (page)
Method: to-html ((index index))
Method: to-html ((c request-condition))
Method: to-html ((entry entry))
Method: to-html :around (e)
Generic Reader: uri (object)
Package

cl-bloggy.

Methods
Reader Method: uri ((special-request special-request))

automatically generated reader method

Source

classes.lisp.

Target Slot

uri.


5.1.5 Standalone methods

Method: acceptor-dispatch-request ((acceptor bloggy-acceptor) request)

Check the URI in the request against the routes stored within (routes acceptor), if the route is found then serves the content, otherwise executes handle-unknown-uri to try and process the request.

Package

hunchentoot.

Source

hunchentoot-handler.lisp.

Method: print-object ((ob entry) stream)
Source

classes.lisp.

Method: print-object ((ob blog) stream)
Source

classes.lisp.

Method: print-object ((ob category) stream)
Source

classes.lisp.

Method: print-object ((ob index) stream)
Source

classes.lisp.


5.1.6 Conditions

Condition: bloggy-condition

Top level condition for cl-bloggy.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

error.

Direct subclasses
Direct methods

message.

Direct slots
Slot: message

An optional message

Initform

(quote "")

Initargs

:message

Readers

message.

Writers

This slot is read-only.

Condition: exceeded-category-depth

Signalled by find-category when the category list is greater than *max-category-depth*

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

request-condition.

Direct methods
Direct slots
Slot: http-code
Initform

(quote 400)

Initargs

:http-code

Slot: cat-list

the category request found while processing the URI

Initargs

:cat-list

Readers

cat-list.

Writers

(setf cat-list).

Condition: malformed-url

Signalled when someone makes a request that is neither for the index or main but is missing blog/main.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

request-condition.

Direct slots
Slot: http-code
Initform

(quote 400)

Initargs

:http-code

Condition: missing-categories

Signalled when someone makes a request for sorting by categories but the categories they provided can’t be found.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

request-condition.

Direct methods
Direct slots
Slot: http-code
Initform

(quote 404)

Initargs

:http-code

Slot: category

List of the categories the user provided.

Initform

(quote nil)

Initargs

:category

Readers

category.

Writers

This slot is read-only.

Condition: missing-content

Signalled when someone makes a request to a url that doesn’t exist.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

request-condition.

Direct slots
Slot: http-code
Initform

(quote 404)

Initargs

:http-code

Condition: missing-required-feature

Signalled when trying to use a function that needs a feature,
for example you try to use easy-image but havent called (add-blog ...).

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

bloggy-condition.

Direct methods
Direct slots
Slot: feature

The required feature that is missing.

Initargs

:feature

Readers

feature.

Writers

(setf feature).

Slot: instructions

A string telling the user how to fix the problem

Initargs

:instructions

Readers

instructions.

Writers

(setf instructions).

Condition: request-condition

All conditions that are related to user requests.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

bloggy-condition.

Direct subclasses
Direct methods
Direct slots
Slot: http-code

The returned HTTP code.

Initform

(quote 400)

Initargs

:http-code

Readers

http-code.

Writers

This slot is read-only.

Slot: blog

the blog

Initargs

:blog

Readers

blog.

Writers

This slot is read-only.

Condition: rss%bad-categories

Signalled when someone makes a request to rss.xml but they have used bad categories.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

request-condition.

Direct methods
Direct slots
Slot: http-code
Initform

(quote 404)

Initargs

:http-code

Slot: category

List of bad categories provided when rss request is made.

Initform

(quote nil)

Initargs

:category

Readers

category.

Writers

This slot is read-only.


5.1.7 Classes

Class: atom-request
Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses

special-request.

Class: blog
Package

cl-bloggy.

Source

classes.lisp.

Direct subclasses

index.

Direct methods
Direct slots
Slot: entries
Type

list

Initargs

:entries

Readers

entries.

Writers

(setf entries).

Slot: title
Type

(or function nil)

Initform

(lambda (cl-bloggy:blog) (declare (ignore cl-bloggy:blog)) "main page")

Initargs

:title

Readers

title.

Writers

(setf title).

Slot: categories
Type

list

Initargs

:categories

Readers

categories.

Writers

(setf categories).

Slot: author
Type

(or function nil)

Initform

(lambda (cl-bloggy:blog) (declare (ignore cl-bloggy:blog)) "author")

Initargs

:author

Readers

author.

Writers

(setf author).

Slot: domain
Type

string

Initargs

:domain

Readers

domain.

Writers

(setf domain).

Slot: description
Type

(or function nil)

Initform

(lambda (cl-bloggy:blog) (declare (ignore cl-bloggy:blog)) "my blog")

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: language
Type

string

Initform

"en-gb"

Initargs

:language

Readers

language.

Writers

(setf language).

Slot: index
Type

cl-bloggy:index

Initargs

:index

Readers

index.

Writers

(setf index).

Slot: content
Type

cl-bloggy:content

Initargs

:content

Readers

content.

Writers

(setf content).

Slot: acceptor

This is the top level acceptor where the blog object is stored.

Initargs

:acceptor

Readers

acceptor.

Writers

(setf acceptor).

Slot: url
Initform

cl-bloggy:*blog-root-directory*

Initargs

:url

Readers

url.

Writers

This slot is read-only.

Class: bloggy-acceptor
Package

cl-bloggy.

Source

hunchentoot-handler.lisp.

Direct superclasses

easy-acceptor.

Direct methods
Direct slots
Slot: routes
Initform

(make-hash-table :test (function equal))

Readers

routes.

Writers

(setf routes).

Slot: blog
Initargs

:blog

Readers

blog.

Writers

(setf blog).

Class: category
Package

cl-bloggy.

Source

classes.lisp.

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name.

Writers

(setf name).

Slot: sym
Initargs

:sym

Readers

sym.

Writers

(setf sym).

Slot: children
Initargs

:children

Readers

children.

Writers

(setf children).

Slot: parent
Initargs

:parent

Readers

parent.

Writers

(setf parent).

Class: category-request
Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses

special-request.

Direct subclasses

rss-category-request.

Direct methods

process-special-request.

Class: content
Package

cl-bloggy.

Source

classes.lisp.

Direct methods
Direct slots
Slot: url
Initform

"/blog/content"

Readers

url.

Writers

This slot is read-only.

Slot: blog
Initargs

:blog

Readers

blog.

Writers

This slot is read-only.

Slot: content
Type

list

Initargs

:content

Readers

content.

Writers

(setf content).

Class: entry
Package

cl-bloggy.

Source

classes.lisp.

Direct subclasses

unpublished-entry.

Direct methods
Direct slots
Slot: category
Type

cl-bloggy:category

Initargs

:category

Readers

category.

Writers

(setf category).

Slot: date

The date

Type

local-time:timestamp

Initargs

:date

Readers

date.

Writers

This slot is read-only.

Slot: sym

A keyword used to reference this entry.

Type

keyword

Initargs

:sym

Readers

sym.

Writers

This slot is read-only.

Slot: title
Type

(or null function)

Initargs

:title

Readers

title.

Writers

(setf title).

Slot: subtitle
Type

(or null function)

Initargs

:subtitle

Readers

subtitle.

Writers

(setf subtitle).

Slot: id

An amalgamation of title and category

Type

string

Initargs

:id

Readers

id.

Writers

This slot is read-only.

Slot: content
Type

function

Initargs

:content

Readers

content.

Writers

(setf content).

Slot: description
Type

(or function null)

Initargs

:description

Readers

description.

Writers

(setf description).

Slot: blog
Type

cl-bloggy:blog

Initargs

:blog

Readers

blog.

Writers

(setf blog).

Class: image-content
Package

cl-bloggy.

Source

content.lisp.

Direct superclasses

uploaded-content.

Direct methods

process-uri.

Class: index
Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses

blog.

Direct methods
Direct slots
Slot: blog
Initargs

:blog

Readers

blog.

Writers

This slot is read-only.

Slot: url
Initform

cl-bloggy:*blog-index-directory*

Class: rss-category-request
Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses
Direct methods

process-special-request.

Class: rss-request
Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses

special-request.

Direct subclasses

rss-category-request.

Direct methods

process-special-request.

Class: special-request
Package

cl-bloggy.

Source

classes.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: acceptor
Initargs

:acceptor

Readers

acceptor.

Writers

This slot is read-only.

Slot: request
Initargs

:request

Readers

request.

Writers

This slot is read-only.

Slot: uri
Initargs

:uri

Readers

uri.

Writers

This slot is read-only.

Slot: split-uri
Initargs

:split-uri

Readers

split-uri.

Writers

This slot is read-only.

Slot: category
Initargs

:category

Readers

category.

Writers

(setf category).

Slot: r-method
Initargs

:r-method

Readers

r-method.

Writers

This slot is read-only.

Class: unpublished-entry

An entry that doesn’t get published to the blog main page or RSS feeds however a URL is created so it can be viewed on the blog.

Package

cl-bloggy.

Source

classes.lisp.

Direct superclasses

entry.

Class: uploaded-content

Class that is used for storing content within the blog. The content can be retrieved using keywords.

Package

cl-bloggy.

Source

content.lisp.

Direct subclasses

image-content.

Direct methods
Direct slots
Slot: path
Initargs

:path

Readers

path.

Writers

(setf path).

Slot: mime

The mimetype obtained with tbnl:mime

Type

string

Initargs

:mime

Readers

mime.

Writers

(setf mime).

Slot: acceptor
Initargs

:acceptor

Readers

acceptor.

Writers

(setf acceptor).

Slot: data

A function that when you evaluate returns the byte vector containing the content of the content.

Type

function

Initargs

:data

Readers

data.

Writers

(setf data).

Slot: name
Initargs

:name

Readers

name.

Writers

(setf name).

Slot: url
Initargs

:url

Readers

url.

Writers

(setf url).


5.2 Internals


5.2.1 Ordinary functions

Function: %format-tags (blog category)
Package

cl-bloggy.

Source

generate-html.lisp.

Function: %non-rss-request-type (special)
Package

cl-bloggy.

Source

request-processing.lisp.

Function: %recurse-categories-children (category func)

Recurses over the category and all of its children executing func with the current category and the accumulator as arguments, the result of the funcall is pushed to the accumulator.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: %recurse-categories-parents (category func)

Recurses over the category and all of its parents executing func with the current category and the accumulator as arguments, the result of the funcall is pushed to the accumulator.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: %rss-request-type (special)
Package

cl-bloggy.

Source

request-processing.lisp.

Function: %validate-url (uri-list blog)

Attemps to validate the uri which has been split in URI-LIST by comparing it with the url listed for (url BLOG). If it is not then signals ’malformed-url.

Package

cl-bloggy.

Source

request-processing.lisp.

Function: clean-string (string)

downcases, replaces spaces with hyphens and removes white space

Package

cl-bloggy.

Source

classes.lisp.

Function: delete-route-by-sym (symbol acceptor)
Package

cl-bloggy.

Source

hunchentoot-handler.lisp.

Function: make-blog (main-title)
Package

cl-bloggy.

Source

classes.lisp.

Function: make-children (current names)

Generates the children for the category CURRENT with the names listed in NAMES.

Package

cl-bloggy.

Source

cl-bloggy.lisp.

Function: make-id (category title)
Package

cl-bloggy.

Source

classes.lisp.

Function: new-blog-entry (blog blog-class title sym category date content &key subtitle description)
Package

cl-bloggy.

Source

classes.lisp.

Function: new-date-timestamp (&key nsec sec minute hour day month year timezone offset into)
Package

cl-bloggy.

Source

classes.lisp.

Function: routep (x)
Package

cl-bloggy.

Source

hunchentoot-handler.lisp.


5.2.2 Generic functions

Generic Function: %convert-month-to-n (month)
Package

cl-bloggy.

Methods
Method: %convert-month-to-n ((month string))
Source

classes.lisp.

Method: %convert-month-to-n ((month fixnum))
Source

classes.lisp.

Generic Function: add-new-blog (blog entry)
Package

cl-bloggy.

Methods
Method: add-new-blog ((blog blog) (entry entry))
Source

classes.lisp.

Generic Function: category-all-urls (category blog)
Package

cl-bloggy.

Methods
Method: category-all-urls ((category category) (blog blog))

Returns a list of all of the URLs for category

Source

cl-bloggy.lisp.

Generic Reader: url (object)
Package

cl-bloggy.

Methods
Reader Method: url ((uploaded-content uploaded-content))

automatically generated reader method

Source

content.lisp.

Target Slot

url.

Reader Method: url ((content content))

automatically generated reader method

Source

classes.lisp.

Target Slot

url.

Reader Method: url ((blog blog))

automatically generated reader method

Source

classes.lisp.

Target Slot

url.

Generic Writer: (setf url) (object)
Package

cl-bloggy.

Methods
Writer Method: (setf url) ((uploaded-content uploaded-content))

automatically generated writer method

Source

content.lisp.

Target Slot

url.


5.2.3 Conditions

Condition: unknown-content

Signalled when content is missing.

Package

cl-bloggy.

Source

conditions.lisp.

Direct superclasses

bloggy-condition.

Direct methods
Direct slots
Slot: content

The content you looked for. A keyword.

Initargs

:content

Readers

content.

Writers

(setf content).


5.2.4 Types

Type: route ()
Package

cl-bloggy.

Source

hunchentoot-handler.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   H   I   L   M   N   P   R   S   T   U  
Index Entry  Section

%
%convert-month-to-n: Private generic functions
%convert-month-to-n: Private generic functions
%convert-month-to-n: Private generic functions
%format-tags: Private ordinary functions
%non-rss-request-type: Private ordinary functions
%recurse-categories-children: Private ordinary functions
%recurse-categories-parents: Private ordinary functions
%rss-request-type: Private ordinary functions
%validate-url: Private ordinary functions

(
(setf acceptor): Public generic functions
(setf acceptor): Public generic functions
(setf acceptor): Public generic functions
(setf author): Public generic functions
(setf author): Public generic functions
(setf blog): Public generic functions
(setf blog): Public generic functions
(setf blog): Public generic functions
(setf cat-list): Public generic functions
(setf cat-list): Public generic functions
(setf categories): Public generic functions
(setf categories): Public generic functions
(setf category): Public generic functions
(setf category): Public generic functions
(setf category): Public generic functions
(setf children): Public generic functions
(setf children): Public generic functions
(setf content): Public generic functions
(setf content): Public generic functions
(setf content): Public generic functions
(setf content): Public generic functions
(setf content): Public generic functions
(setf data): Public generic functions
(setf data): Public generic functions
(setf description): Public generic functions
(setf description): Public generic functions
(setf description): Public generic functions
(setf domain): Public generic functions
(setf domain): Public generic functions
(setf entries): Public generic functions
(setf entries): Public generic functions
(setf feature): Public generic functions
(setf feature): Public generic functions
(setf index): Public generic functions
(setf index): Public generic functions
(setf instructions): Public generic functions
(setf instructions): Public generic functions
(setf language): Public generic functions
(setf language): Public generic functions
(setf mime): Public generic functions
(setf mime): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf name): Public generic functions
(setf parent): Public generic functions
(setf parent): Public generic functions
(setf path): Public generic functions
(setf path): Public generic functions
(setf routes): Public generic functions
(setf routes): Public generic functions
(setf subtitle): Public generic functions
(setf subtitle): Public generic functions
(setf sym): Public generic functions
(setf sym): Public generic functions
(setf title): Public generic functions
(setf title): Public generic functions
(setf title): Public generic functions
(setf url): Private generic functions
(setf url): Private generic functions

A
acceptor: Public generic functions
acceptor: Public generic functions
acceptor: Public generic functions
acceptor: Public generic functions
acceptor-dispatch-request: Public standalone methods
add-content: Public generic functions
add-content: Public generic functions
add-content: Public generic functions
add-new-blog: Private generic functions
add-new-blog: Private generic functions
add-route: Public generic functions
add-route: Public generic functions
all-children: Public generic functions
all-children: Public generic functions
author: Public generic functions
author: Public generic functions

B
blog: Public generic functions
blog: Public generic functions
blog: Public generic functions
blog: Public generic functions
blog: Public generic functions
blog: Public generic functions

C
cat-list: Public generic functions
cat-list: Public generic functions
categories: Public generic functions
categories: Public generic functions
category: Public generic functions
category: Public generic functions
category: Public generic functions
category: Public generic functions
category: Public generic functions
category-all-urls: Private generic functions
category-all-urls: Private generic functions
category-names: Public generic functions
category-names: Public generic functions
children: Public generic functions
children: Public generic functions
clean-category: Public generic functions
clean-category: Public generic functions
clean-string: Private ordinary functions
content: Public generic functions
content: Public generic functions
content: Public generic functions
content: Public generic functions
content: Public generic functions

D
data: Public generic functions
data: Public generic functions
date: Public generic functions
date: Public generic functions
delete-category: Public generic functions
delete-category: Public generic functions
delete-category: Public generic functions
delete-category: Public generic functions
delete-entry: Public generic functions
delete-entry: Public generic functions
delete-entry: Public generic functions
delete-route-by-sym: Private ordinary functions
description: Public generic functions
description: Public generic functions
description: Public generic functions
determine-request-type: Public generic functions
determine-request-type: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
display-condition: Public generic functions
domain: Public generic functions
domain: Public generic functions

E
easy-blog-entry: Public macros
easy-image: Public ordinary functions
entries: Public generic functions
entries: Public generic functions
entries-in-category: Public ordinary functions

F
feature: Public generic functions
feature: Public generic functions
find-categories: Public ordinary functions
find-category: Public ordinary functions
find-content: Public generic functions
find-content: Public generic functions
find-content: Public generic functions
find-content: Public generic functions
find-content: Public generic functions
find-content: Public generic functions
find-content: Public generic functions
find-entry: Public generic functions
find-entry: Public generic functions
format-timestamp: Public generic functions
format-timestamp: Public generic functions
format-timestamp: Public generic functions
Function, %format-tags: Private ordinary functions
Function, %non-rss-request-type: Private ordinary functions
Function, %recurse-categories-children: Private ordinary functions
Function, %recurse-categories-parents: Private ordinary functions
Function, %rss-request-type: Private ordinary functions
Function, %validate-url: Private ordinary functions
Function, clean-string: Private ordinary functions
Function, delete-route-by-sym: Private ordinary functions
Function, easy-image: Public ordinary functions
Function, entries-in-category: Public ordinary functions
Function, find-categories: Public ordinary functions
Function, find-category: Public ordinary functions
Function, make-blog: Private ordinary functions
Function, make-children: Private ordinary functions
Function, make-id: Private ordinary functions
Function, make-route: Public ordinary functions
Function, new-blog: Public ordinary functions
Function, new-blog-entry: Private ordinary functions
Function, new-content: Public ordinary functions
Function, new-date-timestamp: Private ordinary functions
Function, new-index: Public ordinary functions
Function, routep: Private ordinary functions

G
generate-rss: Public generic functions
generate-rss: Public generic functions
generate-rss: Public generic functions
generate-rss: Public generic functions
Generic Function, %convert-month-to-n: Private generic functions
Generic Function, (setf acceptor): Public generic functions
Generic Function, (setf author): Public generic functions
Generic Function, (setf blog): Public generic functions
Generic Function, (setf cat-list): Public generic functions
Generic Function, (setf categories): Public generic functions
Generic Function, (setf category): Public generic functions
Generic Function, (setf children): Public generic functions
Generic Function, (setf content): Public generic functions
Generic Function, (setf data): Public generic functions
Generic Function, (setf description): Public generic functions
Generic Function, (setf domain): Public generic functions
Generic Function, (setf entries): Public generic functions
Generic Function, (setf feature): Public generic functions
Generic Function, (setf index): Public generic functions
Generic Function, (setf instructions): Public generic functions
Generic Function, (setf language): Public generic functions
Generic Function, (setf mime): Public generic functions
Generic Function, (setf name): Public generic functions
Generic Function, (setf parent): Public generic functions
Generic Function, (setf path): Public generic functions
Generic Function, (setf routes): Public generic functions
Generic Function, (setf subtitle): Public generic functions
Generic Function, (setf sym): Public generic functions
Generic Function, (setf title): Public generic functions
Generic Function, (setf url): Private generic functions
Generic Function, acceptor: Public generic functions
Generic Function, add-content: Public generic functions
Generic Function, add-new-blog: Private generic functions
Generic Function, add-route: Public generic functions
Generic Function, all-children: Public generic functions
Generic Function, author: Public generic functions
Generic Function, blog: Public generic functions
Generic Function, cat-list: Public generic functions
Generic Function, categories: Public generic functions
Generic Function, category: Public generic functions
Generic Function, category-all-urls: Private generic functions
Generic Function, category-names: Public generic functions
Generic Function, children: Public generic functions
Generic Function, clean-category: Public generic functions
Generic Function, content: Public generic functions
Generic Function, data: Public generic functions
Generic Function, date: Public generic functions
Generic Function, delete-category: Public generic functions
Generic Function, delete-entry: Public generic functions
Generic Function, description: Public generic functions
Generic Function, determine-request-type: Public generic functions
Generic Function, display-condition: Public generic functions
Generic Function, domain: Public generic functions
Generic Function, entries: Public generic functions
Generic Function, feature: Public generic functions
Generic Function, find-content: Public generic functions
Generic Function, find-entry: Public generic functions
Generic Function, format-timestamp: Public generic functions
Generic Function, generate-rss: Public generic functions
Generic Function, handle-unknown-uri: Public generic functions
Generic Function, html-body: Public generic functions
Generic Function, html-footer: Public generic functions
Generic Function, html-headers: Public generic functions
Generic Function, http-code: Public generic functions
Generic Function, id: Public generic functions
Generic Function, index: Public generic functions
Generic Function, instructions: Public generic functions
Generic Function, language: Public generic functions
Generic Function, message: Public generic functions
Generic Function, mime: Public generic functions
Generic Function, name: Public generic functions
Generic Function, page-css: Public generic functions
Generic Function, parent: Public generic functions
Generic Function, path: Public generic functions
Generic Function, process-special-request: Public generic functions
Generic Function, process-uri: Public generic functions
Generic Function, r-method: Public generic functions
Generic Function, remove-route: Public generic functions
Generic Function, request: Public generic functions
Generic Function, routes: Public generic functions
Generic Function, split-uri: Public generic functions
Generic Function, subtitle: Public generic functions
Generic Function, sym: Public generic functions
Generic Function, title: Public generic functions
Generic Function, to-html: Public generic functions
Generic Function, uri: Public generic functions
Generic Function, url: Private generic functions

H
handle-unknown-uri: Public generic functions
handle-unknown-uri: Public generic functions
handle-unknown-uri: Public generic functions
html-body: Public generic functions
html-body: Public generic functions
html-body: Public generic functions
html-body: Public generic functions
html-body: Public generic functions
html-footer: Public generic functions
html-footer: Public generic functions
html-footer: Public generic functions
html-headers: Public generic functions
html-headers: Public generic functions
html-headers: Public generic functions
html-headers: Public generic functions
html-headers: Public generic functions
http-code: Public generic functions
http-code: Public generic functions

I
id: Public generic functions
id: Public generic functions
index: Public generic functions
index: Public generic functions
instructions: Public generic functions
instructions: Public generic functions

L
language: Public generic functions
language: Public generic functions

M
Macro, easy-blog-entry: Public macros
make-blog: Private ordinary functions
make-children: Private ordinary functions
make-id: Private ordinary functions
make-route: Public ordinary functions
message: Public generic functions
message: Public generic functions
Method, %convert-month-to-n: Private generic functions
Method, %convert-month-to-n: Private generic functions
Method, (setf acceptor): Public generic functions
Method, (setf acceptor): Public generic functions
Method, (setf author): Public generic functions
Method, (setf blog): Public generic functions
Method, (setf blog): Public generic functions
Method, (setf cat-list): Public generic functions
Method, (setf categories): Public generic functions
Method, (setf category): Public generic functions
Method, (setf category): Public generic functions
Method, (setf children): Public generic functions
Method, (setf content): Public generic functions
Method, (setf content): Public generic functions
Method, (setf content): Public generic functions
Method, (setf content): Public generic functions
Method, (setf data): Public generic functions
Method, (setf description): Public generic functions
Method, (setf description): Public generic functions
Method, (setf domain): Public generic functions
Method, (setf entries): Public generic functions
Method, (setf feature): Public generic functions
Method, (setf index): Public generic functions
Method, (setf instructions): Public generic functions
Method, (setf language): Public generic functions
Method, (setf mime): Public generic functions
Method, (setf name): Public generic functions
Method, (setf name): Public generic functions
Method, (setf parent): Public generic functions
Method, (setf path): Public generic functions
Method, (setf routes): Public generic functions
Method, (setf subtitle): Public generic functions
Method, (setf sym): Public generic functions
Method, (setf title): Public generic functions
Method, (setf title): Public generic functions
Method, (setf url): Private generic functions
Method, acceptor: Public generic functions
Method, acceptor: Public generic functions
Method, acceptor: Public generic functions
Method, acceptor-dispatch-request: Public standalone methods
Method, add-content: Public generic functions
Method, add-content: Public generic functions
Method, add-new-blog: Private generic functions
Method, add-route: Public generic functions
Method, all-children: Public generic functions
Method, author: Public generic functions
Method, blog: Public generic functions
Method, blog: Public generic functions
Method, blog: Public generic functions
Method, blog: Public generic functions
Method, blog: Public generic functions
Method, cat-list: Public generic functions
Method, categories: Public generic functions
Method, category: Public generic functions
Method, category: Public generic functions
Method, category: Public generic functions
Method, category: Public generic functions
Method, category-all-urls: Private generic functions
Method, category-names: Public generic functions
Method, children: Public generic functions
Method, clean-category: Public generic functions
Method, content: Public generic functions
Method, content: Public generic functions
Method, content: Public generic functions
Method, content: Public generic functions
Method, data: Public generic functions
Method, date: Public generic functions
Method, delete-category: Public generic functions
Method, delete-category: Public generic functions
Method, delete-category: Public generic functions
Method, delete-entry: Public generic functions
Method, delete-entry: Public generic functions
Method, description: Public generic functions
Method, description: Public generic functions
Method, determine-request-type: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, display-condition: Public generic functions
Method, domain: Public generic functions
Method, entries: Public generic functions
Method, feature: Public generic functions
Method, find-content: Public generic functions
Method, find-content: Public generic functions
Method, find-content: Public generic functions
Method, find-content: Public generic functions
Method, find-content: Public generic functions
Method, find-content: Public generic functions
Method, find-entry: Public generic functions
Method, format-timestamp: Public generic functions
Method, format-timestamp: Public generic functions
Method, generate-rss: Public generic functions
Method, generate-rss: Public generic functions
Method, generate-rss: Public generic functions
Method, handle-unknown-uri: Public generic functions
Method, handle-unknown-uri: Public generic functions
Method, html-body: Public generic functions
Method, html-body: Public generic functions
Method, html-body: Public generic functions
Method, html-body: Public generic functions
Method, html-footer: Public generic functions
Method, html-footer: Public generic functions
Method, html-headers: Public generic functions
Method, html-headers: Public generic functions
Method, html-headers: Public generic functions
Method, html-headers: Public generic functions
Method, http-code: Public generic functions
Method, id: Public generic functions
Method, index: Public generic functions
Method, instructions: Public generic functions
Method, language: Public generic functions
Method, message: Public generic functions
Method, mime: Public generic functions
Method, name: Public generic functions
Method, name: Public generic functions
Method, page-css: Public generic functions
Method, page-css: Public generic functions
Method, page-css: Public generic functions
Method, page-css: Public generic functions
Method, page-css: Public generic functions
Method, parent: Public generic functions
Method, path: Public generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, process-special-request: Public generic functions
Method, process-special-request: Public generic functions
Method, process-special-request: Public generic functions
Method, process-uri: Public generic functions
Method, process-uri: Public generic functions
Method, process-uri: Public generic functions
Method, process-uri: Public generic functions
Method, process-uri: Public generic functions
Method, process-uri: Public generic functions
Method, r-method: Public generic functions
Method, remove-route: Public generic functions
Method, request: Public generic functions
Method, routes: Public generic functions
Method, split-uri: Public generic functions
Method, subtitle: Public generic functions
Method, sym: Public generic functions
Method, sym: Public generic functions
Method, title: Public generic functions
Method, title: Public generic functions
Method, to-html: Public generic functions
Method, to-html: Public generic functions
Method, to-html: Public generic functions
Method, to-html: Public generic functions
Method, to-html: Public generic functions
Method, uri: Public generic functions
Method, url: Private generic functions
Method, url: Private generic functions
Method, url: Private generic functions
mime: Public generic functions
mime: Public generic functions

N
name: Public generic functions
name: Public generic functions
name: Public generic functions
new-blog: Public ordinary functions
new-blog-entry: Private ordinary functions
new-content: Public ordinary functions
new-date-timestamp: Private ordinary functions
new-index: Public ordinary functions

P
page-css: Public generic functions
page-css: Public generic functions
page-css: Public generic functions
page-css: Public generic functions
page-css: Public generic functions
page-css: Public generic functions
parent: Public generic functions
parent: Public generic functions
path: Public generic functions
path: Public generic functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods
process-special-request: Public generic functions
process-special-request: Public generic functions
process-special-request: Public generic functions
process-special-request: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions
process-uri: Public generic functions

R
r-method: Public generic functions
r-method: Public generic functions
remove-route: Public generic functions
remove-route: Public generic functions
request: Public generic functions
request: Public generic functions
routep: Private ordinary functions
routes: Public generic functions
routes: Public generic functions

S
split-uri: Public generic functions
split-uri: Public generic functions
subtitle: Public generic functions
subtitle: Public generic functions
sym: Public generic functions
sym: Public generic functions
sym: Public generic functions

T
title: Public generic functions
title: Public generic functions
title: Public generic functions
to-html: Public generic functions
to-html: Public generic functions
to-html: Public generic functions
to-html: Public generic functions
to-html: Public generic functions
to-html: Public generic functions

U
uri: Public generic functions
uri: Public generic functions
url: Private generic functions
url: Private generic functions
url: Private generic functions
url: Private generic functions


A.3 Variables

Jump to:   *  
A   B   C   D   E   F   H   I   L   M   N   P   R   S   T   U  
Index Entry  Section

*
*blog-index-directory*: Public special variables
*blog-root-directory*: Public special variables
*colourfour*: Public special variables
*colourone*: Public special variables
*colourthree*: Public special variables
*colourtwo*: Public special variables
*default-css*: Public special variables
*max-category-depth*: Public special variables

A
acceptor: Public classes
acceptor: Public classes
acceptor: Public classes
author: Public classes

B
blog: Public conditions
blog: Public classes
blog: Public classes
blog: Public classes
blog: Public classes

C
cat-list: Public conditions
categories: Public classes
category: Public conditions
category: Public conditions
category: Public classes
category: Public classes
children: Public classes
content: Public classes
content: Public classes
content: Public classes
content: Private conditions

D
data: Public classes
date: Public classes
description: Public classes
description: Public classes
domain: Public classes

E
entries: Public classes

F
feature: Public conditions

H
http-code: Public conditions
http-code: Public conditions
http-code: Public conditions
http-code: Public conditions
http-code: Public conditions
http-code: Public conditions

I
id: Public classes
index: Public classes
instructions: Public conditions

L
language: Public classes

M
message: Public conditions
mime: Public classes

N
name: Public classes
name: Public classes

P
parent: Public classes
path: Public classes

R
r-method: Public classes
request: Public classes
routes: Public classes

S
Slot, acceptor: Public classes
Slot, acceptor: Public classes
Slot, acceptor: Public classes
Slot, author: Public classes
Slot, blog: Public conditions
Slot, blog: Public classes
Slot, blog: Public classes
Slot, blog: Public classes
Slot, blog: Public classes
Slot, cat-list: Public conditions
Slot, categories: Public classes
Slot, category: Public conditions
Slot, category: Public conditions
Slot, category: Public classes
Slot, category: Public classes
Slot, children: Public classes
Slot, content: Public classes
Slot, content: Public classes
Slot, content: Public classes
Slot, content: Private conditions
Slot, data: Public classes
Slot, date: Public classes
Slot, description: Public classes
Slot, description: Public classes
Slot, domain: Public classes
Slot, entries: Public classes
Slot, feature: Public conditions
Slot, http-code: Public conditions
Slot, http-code: Public conditions
Slot, http-code: Public conditions
Slot, http-code: Public conditions
Slot, http-code: Public conditions
Slot, http-code: Public conditions
Slot, id: Public classes
Slot, index: Public classes
Slot, instructions: Public conditions
Slot, language: Public classes
Slot, message: Public conditions
Slot, mime: Public classes
Slot, name: Public classes
Slot, name: Public classes
Slot, parent: Public classes
Slot, path: Public classes
Slot, r-method: Public classes
Slot, request: Public classes
Slot, routes: Public classes
Slot, split-uri: Public classes
Slot, subtitle: Public classes
Slot, sym: Public classes
Slot, sym: Public classes
Slot, title: Public classes
Slot, title: Public classes
Slot, uri: Public classes
Slot, url: Public classes
Slot, url: Public classes
Slot, url: Public classes
Slot, url: Public classes
Special Variable, *blog-index-directory*: Public special variables
Special Variable, *blog-root-directory*: Public special variables
Special Variable, *colourfour*: Public special variables
Special Variable, *colourone*: Public special variables
Special Variable, *colourthree*: Public special variables
Special Variable, *colourtwo*: Public special variables
Special Variable, *default-css*: Public special variables
Special Variable, *max-category-depth*: Public special variables
split-uri: Public classes
subtitle: Public classes
sym: Public classes
sym: Public classes

T
title: Public classes
title: Public classes

U
uri: Public classes
url: Public classes
url: Public classes
url: Public classes
url: Public classes


A.4 Data types

Jump to:   A   B   C   E   F   G   H   I   M   P   R   S   T   U  
Index Entry  Section

A
atom-request: Public classes

B
blog: Public classes
bloggy-acceptor: Public classes
bloggy-condition: Public conditions

C
category: Public classes
category-request: Public classes
cl-bloggy: The cl-bloggy system
cl-bloggy: The cl-bloggy package
cl-bloggy.asd: The cl-bloggy/cl-bloggy․asd file
cl-bloggy.lisp: The cl-bloggy/cl-bloggy․lisp file
Class, atom-request: Public classes
Class, blog: Public classes
Class, bloggy-acceptor: Public classes
Class, category: Public classes
Class, category-request: Public classes
Class, content: Public classes
Class, entry: Public classes
Class, image-content: Public classes
Class, index: Public classes
Class, rss-category-request: Public classes
Class, rss-request: Public classes
Class, special-request: Public classes
Class, unpublished-entry: Public classes
Class, uploaded-content: Public classes
classes.lisp: The cl-bloggy/classes․lisp file
Condition, bloggy-condition: Public conditions
Condition, exceeded-category-depth: Public conditions
Condition, malformed-url: Public conditions
Condition, missing-categories: Public conditions
Condition, missing-content: Public conditions
Condition, missing-required-feature: Public conditions
Condition, request-condition: Public conditions
Condition, rss%bad-categories: Public conditions
Condition, unknown-content: Private conditions
conditions.lisp: The cl-bloggy/conditions․lisp file
content: Public classes
content.lisp: The cl-bloggy/content․lisp file

E
entry: Public classes
exceeded-category-depth: Public conditions

F
File, cl-bloggy.asd: The cl-bloggy/cl-bloggy․asd file
File, cl-bloggy.lisp: The cl-bloggy/cl-bloggy․lisp file
File, classes.lisp: The cl-bloggy/classes․lisp file
File, conditions.lisp: The cl-bloggy/conditions․lisp file
File, content.lisp: The cl-bloggy/content․lisp file
File, generate-css.lisp: The cl-bloggy/generate-css․lisp file
File, generate-html.lisp: The cl-bloggy/generate-html․lisp file
File, generate-rss.lisp: The cl-bloggy/generate-rss․lisp file
File, hunchentoot-handler.lisp: The cl-bloggy/hunchentoot-handler․lisp file
File, package.lisp: The cl-bloggy/package․lisp file
File, request-processing.lisp: The cl-bloggy/request-processing․lisp file
File, uri-processing.lisp: The cl-bloggy/uri-processing․lisp file

G
generate-css.lisp: The cl-bloggy/generate-css․lisp file
generate-html.lisp: The cl-bloggy/generate-html․lisp file
generate-rss.lisp: The cl-bloggy/generate-rss․lisp file

H
hunchentoot-handler.lisp: The cl-bloggy/hunchentoot-handler․lisp file

I
image-content: Public classes
index: Public classes

M
malformed-url: Public conditions
missing-categories: Public conditions
missing-content: Public conditions
missing-required-feature: Public conditions

P
Package, cl-bloggy: The cl-bloggy package
package.lisp: The cl-bloggy/package․lisp file

R
request-condition: Public conditions
request-processing.lisp: The cl-bloggy/request-processing․lisp file
route: Private types
rss%bad-categories: Public conditions
rss-category-request: Public classes
rss-request: Public classes

S
special-request: Public classes
System, cl-bloggy: The cl-bloggy system

T
Type, route: Private types

U
unknown-content: Private conditions
unpublished-entry: Public classes
uploaded-content: Public classes
uri-processing.lisp: The cl-bloggy/uri-processing․lisp file