One action that can be triggered on the page. Actions compile to JavaScript.
Describes any element that can be rendered to HTML.
Describes a HTML element that is rendered in block style, i.e. that it occupies the full width of the page by default.
A type that provides a reusable part of a page, e.g. a common header or footer.
Content pages describe custom page structures for articles. You can provide one layout in your site to use that for all articles, or create custom layouts and assign them uniquely to individual articles.
Elements that conform to DropdownElement can be shown inside Dropdown objects.
Describes elements that can exist directly inside a HTML container.
A metadata element that can exist in the Head struct.
Determines which elements can have horizontal alignment attached,
An element that exists inside a block element, such as an emphasized piece of text.
A protocol that determines which elements can be loaded lazily.
A protocol defining the basic information we need to get good Markdown parsing. This is implemented by the default MarkdownToHTML parser included with Ignite, but users can override that default in their Site conformance to get a custom parser if needed.
Describes elements that can be placed into navigation bars.
A user-visible element that can appear anywhere on a page, block or otherwise.
A simple protocol that lets users create custom robot configurations easily.
Describes one site being generated by Ignite.
One static page in your site, where the content is entirely standalone rather than being produced in conjunction with an external Markdown file.
Tag pages show all articles on your site that match a specific tag, or all articles period if tag is nil. You get to decide what is shown on those pages by making a custom type that conforms to this protocol.
Themes allow you to have complete control over the HTML used to generate your pages.
The ThemedPage protocol allows all pages on your site, whether static, content-driven, or layouts, to adapt to a theme of your design.
Renders an abbreviation.
A control that displays a list of section titles that can be folded out to display more content.
Shows a clearly delineated box on your page, providing important information or warnings to users.
A simple key-value pair of strings that is able to store custom attributes.
A small, capsule-shaped piece of information, such as a tag.
The main, user-visible contents of your page.
A clickable button with a label and styling.
A container that automatically adjusts the styling for buttons it contains so that they sit more neatly together.
A group of information placed inside a gently rounded
A collection of slides the user can swipe through.
An inline snippet of programming code, embedded inside a larger part of your page. For dedicated code blocks that sit on their own line, use CodeBlock instead.
An separated section of programming code. For inline code that sit along other text on your page, use Code instead.
Colors that can be used for backgrounds and foregrounds. Comes with all the standard HTML color names, can be created using RGB values as integer or doubles, can be created a grayscale, or using a hex string.
A column inside a table row.
One piece of Markdown content for this site.
A wrapper around Card, specifically aimed at presenting details about some content on your site. This automatically links to your content page and adds in tags.
A handful of attributes that all HTML types must support, either for rendering or for publishing purposes.
Allows the user to inject hand-written JavaScript into an event. The code you provide will automatically be escaped.
A simple default robots configuration that disallows nothing.
Describes diagonal edges on an element, e.g. top-leading, or bottom-trailing, along with groups of edges such as “top” (top leading and top-trailing).
A rule that disallows one specific robot from one or more paths on your site.
A horizontal divider for your page, that can also be used to divide elements in a dropdown.
Renders a button that presents a menu of information when pressed. Can be used as a free-floating element on your page, or in a NavigationBar.
Describes edges on an element, e.g. top or leading, along with groups of edges such as “horizontal” (leading and trailing).
A result builder that lets us generically build arrays of some content.
Embeds a custom URL, such as YouTube or Vimeo.
Renders text with emphasis, which usually means italics.
A default tag page that does nothing; used to disable tag pages entirely.
A theme that applies almost no styling.
Configures feed generation for a site.
Creates some arbitrary group of content in your page. This is used extensively on the modern web pages to divide pages up into smaller, styled sections.
The top-level element of all web pages, containing one Head element and one Body element.
A group of metadata headers for your page, such as its title, links to its CSS, and more.
Hides a page element by appending the “d-none” CSS class.
A handful of shared values useful for using the Ignite framework.
Displays “Created by Ignite”, with a link back to the Ignite project on GitHub. Including this is definitely not required for your site, but it’s most appreciated 🙌
An image on your page. Can be vector (SVG) or raster (JPG, PNG, GIF).
Lets you include arbitrary HTML on a page.
One item inside an accordion.
A hyperlink to another resource on this site or elsewhere.
Creates a list of items, either ordered or unordered.
Creates one item in a list. This isn’t always needed, because you can place other elements directly into lists if you wish. Use ListItem when you specifically need a styled HTML element.
A simple Markdown to HTML parser powered by Apple’s swift-markdown.
An item of metadata that links to an external resource somehow, such as a stylesheet.
An item of metadata that helps browsers and search engines understand your page better.
A theme that does nothing at all. This is used as the default theme, so we can detect that no theme has been applied to a page.
A bar that sits across the top of your page to provide top-level navigation throughout your site.
A single flattened page from any source – static or dynamic – ready to be passed through a theme.
A block quote of text.
One row inside a Table.
Embeds some JavaScript inside this page, either directly or by referencing an external file.
Creates one distinct section on your page, where content inside is fitted to a 12-column grid. If the items in your section have widths that add up to 12 then they will fit in a single row, otherwise they will be placed on multiple rows. This element automatically adapts to constrained horizontal dimensions by placing your content across multiple rows automatically.
Shows a browser alert dialog with an OK button.
Shows a page element by removing the “d-none” CSS class.
One slide in a Carousel.
Creates vertical space of a specific value.
An inline subsection of another element, useful when you need to style just part of some text, for example.
Renders text with a strikethrough effect.
Renders text with a strong text effect, which usually means bold.
Used to create tabulated data on a page.
Able to become any HTML tag. Useful for when Ignite has not implemented a specific tag you need.
A structured piece of text, such as a paragraph of heading. If you are just placing content inside a list, table, table header, and so on, you can usually just use a simple string. Using Text is required if you want a specific paragraph of text with some styling, or a header of a particular size.
Provides the title for a given page, which is rendered in the browser and also appears in search engine results.
Renders text with an underline.
Specific aspect ratios that are commonly used
Custom background styles that involve creating gradients.
Controls the display size of buttons. Medium is the default.
Controls how many columns a given block element takes up in a Section.
The list of core text types supported by Bootstrap.
The list of standard font weights supported by HTML. This is designed to match the same order provided by SwiftUI. Note: Bootstrap provides its own font weights as classes, but these are less close to both regular CSS and SwiftUI.
Common foreground styles that allow for clear readability.
Controls how elements are horizontally positioned in side their container.
A collection of known robots.
An enum providing RFC-5646 language codes used for web pages.
Some of the (many!) ways of numbering ordered lists.
Specific values that can be used to position this element.
All the primary errors that can occur when publishing a site. There are other errors that can be triggered, but they are handled through fatalError() because something is seriously wrong.
Roles let us attach semantic meaning to various elements, which Bootstrap uses to add specific styling. For example, .danger elements will be colored some shade of red.
Adaptive spacing amounts that are used by Bootstrap to provide consistency in site design.
The collection of syntax highlighters supported by Ignite.
Property sets the appearance of decorative lines on text.
Controls whether the user can select the text inside this element or not.