This article introduces the presentation side of FORGE.
Topics covered here:
- FORGE Presentation
- Pages: Organization and structure
- Pages: URL parameters
- Pages: Variables and permissions
- Editorial workflow
FORGE Presentation
FORGE Presentation covers organizing content inside digital channels (browser, app, etc.).
Producers are responsible for FORGE Presentation, with pages as the key concept.
Pages: Organization and structure
Assets
Assets are the page's building blocks; there are three available asset types:
1. Template: Templates structure pages by slots, including header, footer, and body:
Templates contain slots that contain layouts and modules:
2. Layout: Layouts structure pages by splitting them out into a series of columns. Grid layouts make sure that added modules align with the design of the digital product:
Layouts contain slots that contain layouts and modules:
3. Modules: Connects the page with content. Each module is specialized per content type (e.g., stories or photo albums) and describes the content and how it should be displayed in the front-end.
For example, the Story module shows a story with a specific slug and describes how it displays in the front-end:
The module's position within a template and layout determines where the story displays on the page.
Microcopy
The FORGE Vocabulary Tool app helps producers manage terms (user interface copy).
The phrase terms refer to the app's microcopy, rather than the editorial content. For example, 'Follow us on social media' or short headers like 'Latest News', or 'Top Stories':
Producers can use the FORGE Vocabulary Tool to do the following:
- Manage, edit, and update terms.
- Translate terms into multiple languages.
- Use a Comma-Separated Values (CSV) file to upload a list of terms in one go (this saves considerable time).
Folders
Producers can group pages in folders to improve navigation and help with maintenance and project evolution.
Pages: URL parameters
The page name can contain parameters, which curl brackets enclose. E.g., parameter {slug} within ~/_a_big_fan_of_alpha/website/archive/{slug}
Parameters within the page name can be used to value parameters of modules within the same page.
In the example below, the {slug} parameter in ~/_a_big_fan_of_alpha/website/archive/{slug}, dynamically values the Article slug parameter of the Common-Article module.
On the front-end, the result is that page ~/_a_big_fan_of_alpha/website/archive/{slug} with slug = intro-to-alpha
- Has the URL ~/_a_big_fan_of_alpha/website/archive/intro-to-alpha
- Renders the story with the slug=intro-to-alpha
Pages: Variables and permissions
Variables
Variables change what a page displays on the front-end. Pages can inherit variables from parent folders: by default, variables' value is also inherited, but editors can override it.
An example is allowing the producer to set the header/footer variable, which displays on the desired pages.
Three types of variables include:
- Key value: The most used editable variables, including header and footer. A Key value item is a couple key/value.
- Data item: Allows web producers to reuse FORGE entities, for example, a news story to display on a selection of web pages.
- List item: Allows web producers to display a list of entities on a selection of web pages.
Each variable has a scope, which controls the pages the variable displays on:
- Inherited: An inherited variable is applied to every page inside a specified folder.
- Local: A local variable only usable on the current page and does not display across multiple pages.
- Overwritten: An overwritten variable allows web producers to change the value of an inherited variable only for the current page. Overwritten variables can be restored to return to an inherited value.
Permissions
Administrators define permissions and assign them to producers, making visible only what's required.
Editorial workflow
Producers manage pages through a set of statuses that describe their availability to be delivered to the front end:
- Published: The page is in a published state and is visible on the front-end.
- Not published: The page is in a draft state and is not visible on the front-end.