# johnsundell/publish

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/johnsundell-publish).**

4,971 stars · 357 forks · Swift · mit

## Links

- GitHub: https://github.com/JohnSundell/Publish
- awesome-repositories: https://awesome-repositories.com/repository/johnsundell-publish.md

## Topics

`publish` `static-site-generator` `swift` `web-development`

## Description

Publish is a static site generator and type-safe templating engine that converts structured content and metadata into static HTML files. It functions as a content pipeline orchestrator, allowing the definition of website layouts and themes where metadata maps to visual elements via type-safe code.

The system includes a plugin system for injecting custom logic to mutate content, modify parsing, or enforce site-wide rules. It also features a mechanism for conditional build step execution, ensuring specific publishing tasks only run when predefined criteria are met.

The project covers hierarchical content management using file system-based organization and custom metadata definitions. It provides integrated tools for code syntax highlighting, a local development server for previewing changes, and a deployment utility for pushing generated content to remote servers via version control systems.

## Tags

### Content Management & Publishing

- [Static Site Generators](https://awesome-repositories.com/f/content-management-publishing/static-site-generators.md) — Functions as a static site generator that converts structured content and metadata into static HTML files.
- [Content Management & Publishing](https://awesome-repositories.com/f/content-management-publishing.md) — Orchestrates a publishing pipeline with plugins and conditional build steps to automate content processing.
- [Content Hierarchy Management](https://awesome-repositories.com/f/content-management-publishing/content-hierarchy-management.md) — Organizes website pages and assets into nested directory structures to maintain a clear content hierarchy.
- [Content Organization Systems](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-architecture-modeling/content-organization-systems.md) — Groups items within nested folders to create structured directory trees for the generated website. ([source](https://github.com/JohnSundell/Publish/tree/master/Documentation/))
- [Document Metadata Definitions](https://awesome-repositories.com/f/content-management-publishing/document-metadata-definitions.md) — Allows structured metadata values to be attached to content items using a simplified markup syntax. ([source](https://github.com/JohnSundell/Publish/tree/master/Documentation/))
- [Website Builders](https://awesome-repositories.com/f/content-management-publishing/static-site-document-generators/website-builders.md) — Produces entire websites using type-safe code to define site structure, sections, and item metadata. ([source](https://cdn.jsdelivr.net/gh/johnsundell/publish@master/README.md))

### Development Tools & Productivity

- [Content Transformation Pipelines](https://awesome-repositories.com/f/development-tools-productivity/build-pipeline-plugins/content-transformation-pipelines.md) — Manages a workflow of conditional build steps and custom plugins to mutate content during site generation.
- [Filesystem Hierarchies](https://awesome-repositories.com/f/development-tools-productivity/command-hierarchies/filesystem-hierarchies.md) — Uses the physical directory structure of source files to determine website navigation and nesting.
- [Plugin Systems](https://awesome-repositories.com/f/development-tools-productivity/plugin-systems.md) — Provides a system for injecting custom logic into the publishing process to mutate content or modify parsing. ([source](https://cdn.jsdelivr.net/gh/johnsundell/publish@master/README.md))
- [Conditional Task Execution](https://awesome-repositories.com/f/development-tools-productivity/parallel-execution/conditional-task-execution.md) — Implements logic to trigger specific publishing tasks only when predefined environment criteria are met.

### Software Engineering & Architecture

- [Extensible Processing Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/extensible-processing-pipelines.md) — Provides an extensible pipeline that allows external logic to intercept and mutate content via predefined hooks.
- [Templating Engines](https://awesome-repositories.com/f/software-engineering-architecture/type-safe-interface-architectures/templating-engines.md) — Maps structured content metadata to HTML elements using a strongly typed programming interface.

### User Interface & Experience

- [Type-Safe Theme Customization](https://awesome-repositories.com/f/user-interface-experience/type-safe-theme-customization.md) — Provides a type-safe engine for creating custom layouts and templates that map metadata to visual elements. ([source](https://cdn.jsdelivr.net/gh/johnsundell/publish@master/README.md))
- [Templating Engines](https://awesome-repositories.com/f/user-interface-experience/type-safe-theme-customization/templating-engines.md) — Implements a type-safe templating engine where content metadata maps to visual elements via strongly typed code.
- [Data-Driven Layouts](https://awesome-repositories.com/f/user-interface-experience/view-layouts/data-driven-layouts.md) — Matches specific content attributes to corresponding template files to determine the visual representation of pages.
- [Conditional Step Execution](https://awesome-repositories.com/f/user-interface-experience/progress-steps/tour-step-orchestrators/conditional-step-execution.md) — Allows specific publishing tasks to run only when predefined criteria are met during site generation. ([source](https://github.com/JohnSundell/Publish/tree/master/Documentation/))

### DevOps & Infrastructure

- [Version Control Deployments](https://awesome-repositories.com/f/devops-infrastructure/version-control-deployments.md) — Supports pushing generated site content to remote hosts using integrated version control system support. ([source](https://cdn.jsdelivr.net/gh/johnsundell/publish@master/README.md))
