OVERVIEW

Introduction

RECALL is a declarative web interface language with COBOL-inspired syntax. It transpiles .rcl source files to self-contained, zero-dependency HTML files. Every compiled page embeds its .rcl source in an HTML comment block.

NOTE

RECALL is not a framework, runtime, or templating engine. It is a compiler. Source in. HTML out.


Quick Start

bash
npm install -g @semanticintent/recall
bash
recall compile my-site.rcl
TIP

That is it. No config. No build step. Open the .html file directly.

LANGUAGE

Divisions

Every RECALL program is divided into exactly five divisions, declared in order. This structure is borrowed directly from COBOL — explicit, readable, and non-negotiable.

DIVISIONREQUIREDDESCRIPTION
IDENTIFICATION DIVISIONREQUIREDProgram metadata — PROGRAM-ID, PAGE-TITLE, AUTHOR, DESCRIPTION, FAVICON.
ENVIRONMENT DIVISIONREQUIREDTheme and configuration — COLOR-MODE, VIEWPORT, PALETTE, FONT. Supports COPY FROM for theme inheritance.
DATA DIVISIONREQUIREDContent and variables — WORKING-STORAGE for scalars, ITEMS for groups. LOAD FROM ingests JSON or CSV files at compile time.
COMPONENT DIVISIONOPTIONALCustom element definitions — DEFINE, ACCEPTS, END DEFINE. COPY FROM imports .rcpy component libraries. WITH DATA binds DATA DIVISION fields at invocation.
PROCEDURE DIVISIONREQUIREDRender logic — named sections containing DISPLAY statements. Ends with STOP RUN.
WARNING

Divisions must appear in order: IDENTIFICATION, ENVIRONMENT, DATA, COMPONENT, PROCEDURE. Omitting COMPONENT DIVISION is allowed.

LANGUAGE

Elements

RECALL provides 17 built-in elements. All are invoked with DISPLAY inside a PROCEDURE DIVISION section.

ELEMENTARGUMENTSDESCRIPTION
HEADING-1/2/3value WITH STYLE MONO/SANSHeading at level 1, 2 or 3.
PARAGRAPHvalue WITH COLOR MUTED/TEXT/ACCENTBody paragraph text.
LABELvalueSmall uppercase label, used as section eyebrow.
CODE-BLOCKvalue WITH LANGUAGE bash/cobol/htmlMonospace code block with language hint.
BUTTONvalue ON-CLICK GOTO href WITH STYLE PRIMARY/GHOST/OUTLINEClickable link styled as a button.
CARD-LISTUSING group WITH COLUMNS 2/3 WITH HOVER-LIFT YESGrid of cards rendered from an ITEMS group.
TABLEgroup WITH COLUMNS col1, col2 WITH STRIPED YESData table from ITEMS group. COLUMNS sets headers; cells map to 10-level fields by position.
STAT-GRIDgroup WITH COLUMNS 3/4/6Metric display grid from ITEMS group. Detects -VALUE and -LABEL fields per row automatically.
CALLOUTvalue WITH TYPE NOTE/TIP/WARNING/DANGERHighlighted callout block with typed accent color.
TABSUSING groupInteractive tabbed panels. Each ITEMS group is one tab.
NAVIGATIONUSING group WITH LOGO text WITH STICKY YESTop navigation bar with logo and links.
SIDEBAR-NAVUSING group WITH LOGO text WITH STICKY YESSidebar navigation. Only valid inside LAYOUT SIDEBAR.
SECTIONID id WITH LAYOUT CENTERED/STACK/GRID/SIDEBAR WITH PADDING SMALL/MEDIUM/LARGELayout container. Supports nesting for SIDEBAR layout.
DIVIDERWITH STYLE DASHED WITH SPACING SMALL/LARGEHorizontal rule.
BANNERvalueFull-width accent banner.
IMAGEWITH SRC url WITH ALT text WITH SIZE FULL/HALFImage element.
LINKvalue WITH HREF url WITH TARGET BLANKInline anchor link.
LANGUAGE

Copybooks

RECALL copybooks use the .rcpy extension — a deliberate reference to COBOL's .cpy format. Copybooks are never compiled standalone. They exist only to be COPY FROM'd into .rcl programs at compile time.

cobol
COPY FROM components/nav.rcpy.
TIP

Copybooks (.rcpy) are excluded from recall build automatically. Only .rcl files are compiled.

CLI

Command reference

The RECALL CLI provides three commands. All commands operate on files with the .rcl extension. Copybooks (.rcpy) are resolved automatically during compilation.

"recall compile <file.rcl>
"recall build <dir>
"recall check <file.rcl>
LANGUAGE

Components

RECALL components are reusable layout fragments defined in COMPONENT DIVISION. Each component declares what it ACCEPTS, and callers bind DATA DIVISION fields to it with the WITH DATA clause at invocation time.

Defining a component

cobol
"COMPONENT DIVISION

Invoking with WITH DATA

cobol
"DATA DIVISION
NOTE

Scalars (WORKING-STORAGE fields) resolve to their value. Groups (ITEMS) pass their name — TABLE, STAT-GRID, and CARD-LIST resolve lazily from the live data.

TIP

WITH PARAM overrides still work alongside WITH DATA for one-off literal values.

LANGUAGE

Data Loading

LOAD FROM reads a JSON or CSV file at compile time and injects its contents into the DATA DIVISION — scalars become WORKING-STORAGE fields, arrays become ITEMS groups. No runtime. No server. The data is embedded in the compiled HTML.

Load from JSON

cobol
"DATA DIVISION

Load from CSV

cobol
"DATA DIVISION
NOTE

LOAD FROM runs at compile time. No files are bundled into the HTML — only the resolved field values.

TIP

Multiple LOAD FROM statements in one DATA DIVISION are supported. Data from all files is merged.

ECOSYSTEM

Component Library

@semanticintent/recall-ui is the standard component library for RECALL. Install it into any project and COPY FROM its .rcpy files directly — themes, nav, hero, stat sections, card sections, and footers ready to use.

bash
npm install @semanticintent/recall-ui
cobol
"ENVIRONMENT DIVISION
WARNING

recall-ui components use ACCEPTS — the caller's DATA DIVISION field names must match the component's ACCEPTS list.