Pages, Layouts & Templates
The portal framework includes a tag, cf_spPage, that is used to generate complete pages of content. This tag is usually called from your index.cfm page, without any attributes.
The cf_spPage tag uses the request.speck.page structure when generating the page. This structure contains information about the current page, including the title, description, template to use when generating content and the layout for the page. This information initially comes from the application keywords, which are managed using the navigation tool (the portal framework abuses Speck's application keywords features to build a site map). The cf_spPortal tag decides which is the current page by looking for an spKey parameter, which defaults to 'home' if it doesn't exist. It uses this parameter to get the details for that keyword from the database (actually, from a cached query), and creates the request.speck.page structure which is later used by cf_spPage.
Pages are built by first by calling the content template as a module and saving the output, then generating the html head based on various portal configuration settings and values in the page structure (title, description etc.) and then finally wrapping the generated content in the layout.
Note that because the page structure is a structure in request scope, you can change the values of keys in the structure within your templates, so for example, you could modify the title of the page before it is used by cf_spPage when generating the html head.
The generated content is available in the layout file as speck.layout (note: local variables scope, not request).