# Cecil > Cecil is a command-line PHP application that merges Markdown pages, media and Twig templates to generate a static website. - [News](https://cecil.app/news.md): News about Cecil. - [Documentation](https://cecil.app/documentation.md): Documentation of the Cecil static site generator. - [How to?](https://cecil.app/how-to.md): Articles and tutorials for common Cecil tasks. - [Showcase](https://cecil.app/showcase/): Websites built with Cecil. - [Themes](https://cecil.app/themes/): Ready to use themes for Cecil. - [Starter kits](https://cecil.app/starter-kits/): Cecil provides ready to use starter kits to help you build your website quickly. - [Download](https://cecil.app/download.md): Download Cecil: the PHAR file or a standalone binary for Linux, macOS and Windows. ## Documentation - [Getting started](https://cecil.app/documentation/getting-started.md): Discover Cecil, create your first website in a few minutes and learn how a project is organized. - [Quick start](https://cecil.app/documentation/getting-started/quick-start.md): Install Cecil, create a new website, add pages, preview it locally, then build and deploy it. - [Installation](https://cecil.app/documentation/getting-started/installation.md): Requirements, installation methods (PHAR, standalone binary, package managers, Composer), update and troubleshooting. - [Directory structure](https://cecil.app/documentation/getting-started/directory-structure.md): How source files are organized, what the built website looks like and how files are routed to URLs. - [Starter kits](https://cecil.app/documentation/getting-started/starter-kits.md): Get started quickly with a ready-to-use project template. - [Content](https://cecil.app/documentation/content.md): Create and organize your content: pages, front matter, Markdown, multilingual and dynamic content. - [Pages and sections](https://cecil.app/documentation/content/pages.md): Anatomy of a page, file prefix, sections, sub-sections and home page. - [Front matter](https://cecil.app/documentation/content/front-matter.md): Custom and predefined page variables: menu, taxonomy, schedule, redirect, alias, output, etc. - [Markdown](https://cecil.app/documentation/content/markdown.md): Markdown syntax and extensions: attributes, links, images, table of contents, notes, syntax highlight, etc. - [Multilingual](https://cecil.app/documentation/content/multilingual.md): Translate pages through file name or front matter and link translated pages. - [Dynamic content](https://cecil.app/documentation/content/dynamic-content.md): Use variables and Twig expressions inside page content. - [Templates](https://cecil.app/documentation/templates.md): Work with Twig layouts, templates and components. - [Organization and lookup rules](https://cecil.app/documentation/templates/lookup-rules.md): Kinds of templates, naming convention, built-in templates and how a template is chosen for a page. - [Variables](https://cecil.app/documentation/templates/variables.md): Variables available in templates: site, page and cecil. - [Components](https://cecil.app/documentation/templates/components.md): Create reusable template components. - [Localization](https://cecil.app/documentation/templates/localization.md): Translate texts and localize dates in templates. - [Cache](https://cecil.app/documentation/templates/cache.md): Templates cache and fragments cache. - [Extend templates](https://cecil.app/documentation/templates/extend.md): Add custom functions and filters, or use a theme. - [Functions and filters](https://cecil.app/documentation/templates/reference.md): Reference of the Twig functions, sorts and filters provided by Cecil. - [Functions](https://cecil.app/documentation/templates/reference/functions.md): url, html, readtime, hash, cache_key, getenv, dump, tests, etc. - [Sorts](https://cecil.app/documentation/templates/reference/sorts.md): Sort collections of pages, menus or taxonomies. - [Filters](https://cecil.app/documentation/templates/reference/filters.md): filter_by, markdown_to_html, toc, slugify, excerpt, highlight, preg_*, etc. - [Assets](https://cecil.app/documentation/assets.md): Handle assets (images, stylesheets, scripts, etc.) with the asset() function: process, optimize and fingerprint them. - [Images](https://cecil.app/documentation/assets/images.md): Resize, crop and convert images, generate responsive images and placeholders. - [CSS, JavaScript and processing](https://cecil.app/documentation/assets/processing.md): Compile Sass, minify, fingerprint, inline or embed assets. - [CDN providers](https://cecil.app/documentation/assets/cdn-providers.md): Configuration examples of image CDN providers (Cloudinary, Cloudimage, TwicPics, imgix, Netlify Image CDN). - [Configuration](https://cecil.app/documentation/configuration.md): Configure your website with the cecil.yml file. - [Site options](https://cecil.app/documentation/configuration/site.md): title, baseurl, menus, taxonomies, theme, date, metatags, debug, etc. - [Languages](https://cecil.app/documentation/configuration/languages.md): Main language and additional languages of a multilingual website. - [Locale codes](https://cecil.app/documentation/configuration/locale-codes.md): List of available locale codes to use with the languages option. - [Pages](https://cecil.app/documentation/configuration/pages.md): Pages directory, sorting, pagination, paths, body, default pages, generators, etc. - [Data and static files](https://cecil.app/documentation/configuration/data-static.md): Data files and static files options. - [Assets](https://cecil.app/documentation/configuration/assets.md): Assets directory, compilation, minification, images and CDN. - [Layouts](https://cecil.app/documentation/configuration/layouts.md): Templates directory, auto-escaping, images, highlight, translations and components. - [Output](https://cecil.app/documentation/configuration/output.md): Output directory, formats and post-processing. - [Cache](https://cecil.app/documentation/configuration/cache.md): Assets, templates and translations cache. - [Server and optimization](https://cecil.app/documentation/configuration/server.md): Local server headers and output optimization. - [Override configuration](https://cecil.app/documentation/configuration/override.md): Override the configuration with environment variables or a CLI option. - [Commands](https://cecil.app/documentation/commands.md): Reference of Cecil CLI commands and options. - [new:site](https://cecil.app/documentation/commands/new-site.md): Create a new website. - [new:page](https://cecil.app/documentation/commands/new-page.md): Create a new page, optionally from a model. - [serve](https://cecil.app/documentation/commands/serve.md): Preview the website with the built-in server. - [build](https://cecil.app/documentation/commands/build.md): Build the website. - [doctor](https://cecil.app/documentation/commands/doctor.md): Diagnose the configuration, front matter, SEO and links. - [Deploy](https://cecil.app/documentation/deploy.md): Deploy your static website to Jamstack platforms, through continuous deployment or to a static hosting service. - [Jamstack platforms](https://cecil.app/documentation/deploy/jamstack-platforms.md): Netlify, Vercel, statichost, Cloudflare Pages, Render. - [Continuous build & deploy](https://cecil.app/documentation/deploy/continuous-deployment.md): GitHub Pages and GitLab CI. - [Static hosting](https://cecil.app/documentation/deploy/static-hosting.md): Deploy to a static hosting service (Surge). - [Developers](https://cecil.app/documentation/developers.md): Extend Cecil with PHP, use it as a library and understand its architecture. - [Extend Cecil](https://cecil.app/documentation/developers/extend.md): Create custom page generators, add Twig extensions and post-process output files. - [Library](https://cecil.app/documentation/developers/library.md): Use Cecil as a PHP library: install it with Composer, then build and diagnose programmatically. - [Architecture](https://cecil.app/documentation/developers/architecture.md): Diagrams of the build pipeline and of the technical architecture, and key components. - [AI](https://cecil.app/documentation/ai.md): Use AI coding agents with Cecil and make your site readable by language models. - [Agent skills](https://cecil.app/documentation/ai/agent-skills.md): Install the Cecil skills to help AI coding agents build sites and themes. - [Content for LLMs](https://cecil.app/documentation/ai/llms.md): Render a llms.txt file and Markdown versions of your pages for language models. - [AI crawlers](https://cecil.app/documentation/ai/crawlers.md): Control which AI crawlers can access your site with robots.txt. ## How to? - [Create a custom pages generator](https://cecil.app/how-to/extend-pages-generator.md): Create Cecil pages from an API, a database or any other source with a custom pages generator. - [Add a custom Twig function or filter](https://cecil.app/how-to/extend-twig-extension.md): Extend Cecil templates with your own Twig functions and filters through a Twig extension. - [Speed up builds with fragments cache](https://cecil.app/how-to/templates-fragments-cache.md): Cache parts of Cecil templates to avoid rendering the same content for every page. - [Generate pages from data files](https://cecil.app/how-to/content-data-files.md): Use YAML, JSON, CSV or XML data files to build Cecil pages without writing Markdown for each item. - [Use Twig components](https://cecil.app/how-to/templates-components.md): Create reusable template units with Cecil components and the x tag. - [Schedule the publication of a page](https://cecil.app/how-to/content-schedule.md): Publish or unpublish a Cecil page at a given date with the schedule front matter variable. - [Customize sitemap and robots.txt](https://cecil.app/how-to/output-sitemap-robots.md): Control the XML sitemap and robots.txt files generated by Cecil, exclude pages and override templates. - [Display image placeholders while loading](https://cecil.app/how-to/templates-lqip-placeholder.md): Show a dominant color or a blurred preview while images load in Cecil templates. - [Add a table of contents and notes](https://cecil.app/how-to/markdown-toc-notes.md): Enrich Cecil Markdown pages with a table of contents, note blocks and custom attributes. - [Redirect old URLs](https://cecil.app/how-to/content-redirect-alias.md): Keep old links working in Cecil with the redirect and alias front matter variables. - [Use different settings per environment](https://cecil.app/how-to/config-environments.md): Override the Cecil configuration per environment with CECIL_ environment variables and extra config files. - [Compile, minify and fingerprint CSS and JavaScript](https://cecil.app/how-to/templates-assets-scss.md): Process Sass, CSS and JavaScript files in Cecil templates with the asset function and its filters. - [Organize pages with tags and categories](https://cecil.app/how-to/content-taxonomies.md): Classify Cecil pages with taxonomies like tags and categories, and customize their list pages. - [Build a navigation menu](https://cecil.app/how-to/templates-menus.md): Declare menus in Cecil configuration or front matter and render them in templates. - [Add client-side search](https://cecil.app/how-to/output-search-index.md): Add a client-side search to a Cecil static site with a JSON index of pages and a small JavaScript library. - [Deploy to GitHub Pages with GitHub Actions](https://cecil.app/how-to/deploy-github-pages.md): Build and deploy a Cecil site to GitHub Pages automatically with the Cecil GitHub Action. - [Publish an RSS or JSON feed](https://cecil.app/how-to/output-rss-json-feed.md): Publish RSS, Atom or JSON feeds of your Cecil site with output formats and built-in templates. - [Paginate a list of pages](https://cecil.app/how-to/templates-pagination.md): Split long lists of pages (blog, sections, taxonomies) into several pages with Cecil pagination. - [Translate a site into multiple languages](https://cecil.app/how-to/content-multilingual.md): Translate pages, configuration and template strings of a Cecil site into multiple languages. - [Apply SEO features in templates](https://cecil.app/how-to/templates-metatags.md): Add Cecil SEO features to templates with the metatags partial. - [Optimize images in Markdown](https://cecil.app/how-to/markdown-performance-images.md): Optimize Markdown images in Cecil with responsive sizes, formats, and lazy loading. - [Generate multiple formats of an image in templates](https://cecil.app/how-to/templates-image-formats.md): Generate AVIF and WebP image formats in Cecil templates. - [Render responsive images in templates](https://cecil.app/how-to/templates-responsive-images.md): Render responsive images in Cecil templates with the html function. ## Themes - [Theme Components](https://cecil.app/themes/components/): Theme Components for Cecil. ## Hosting - [Deploy to Netlify](https://cecil.app/hosting/netlify/deploy.md): Deploy your site to Netlify with a single click and enjoy seamless hosting. - [Deploy to Vercel](https://cecil.app/hosting/vercel/deploy.md): Deploy your site to Vercel with a single click and enjoy seamless hosting.