{"id":18924146,"url":"https://github.com/reactivematter/passage","last_synced_at":"2026-03-14T00:30:28.802Z","repository":{"id":206062972,"uuid":"715732408","full_name":"ReactiveMatter/passage","owner":"ReactiveMatter","description":"A PHP based static site generator","archived":false,"fork":false,"pushed_at":"2024-11-09T17:39:44.000Z","size":236,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-31T17:31:03.458Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ReactiveMatter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-07T18:11:09.000Z","updated_at":"2024-11-09T17:39:47.000Z","dependencies_parsed_at":"2023-11-07T19:29:22.310Z","dependency_job_id":"9503c733-77c6-49d7-93aa-ae890537c538","html_url":"https://github.com/ReactiveMatter/passage","commit_stats":null,"previous_names":["reactivematter/passage"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveMatter%2Fpassage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveMatter%2Fpassage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveMatter%2Fpassage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ReactiveMatter%2Fpassage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ReactiveMatter","download_url":"https://codeload.github.com/ReactiveMatter/passage/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239921877,"owners_count":19718842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T11:05:56.518Z","updated_at":"2026-03-14T00:30:28.774Z","avatar_url":"https://github.com/ReactiveMatter.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a PHP based static site generator. It is highly customizable and easy. It uses PHP for creating templates, hence no need to learn a new templating language (as PHP itself is a templating language).\n\nIt uses Parsedown and Symphony YAML component to generate static html files.\n\n# Usage\n1. Write your content in Markdown (.md) files with the directory structure as you desire. The folder path and name of the file is used as url.\n2. Create template in `_template` folder. The `layout` metadata\n3. Add metadata as YAML frontmatter in your files as per requirement.\n4. Run `_engine/build.php` to build site. The files will be created in `_site` folder.\n\n## Config\n\nThe sitewide config is stored in `config.yml` file. The following config options are available.\n```\nbase: # The base for urls\ntitle: # Site title (Alternatively if first line of the content is a heading it is used as title.)\nsupport: [md, txt, html, htm] # File extensions which will be parsed\nbuildall: true # Whether to build pages without frontmatter\noutput-dir: _site # Output directory\ndefault-category: General \nfooter:  # Footer text, Implemented by template\ndate-format: 'd F, Y' # Date display format, Implemented by template\n```\n\nYou may add more options in config file, and the value can be accessed form the $site variable.\n\n## YAML metadata\n\nThe information about a page is to be stored in yaml frontmatter\n\n```\ntitle: # Title of the page\nlayout: # Layout to be displayed _template/\u003cvalue\u003e.php is called for parsing\ndate:2023-10-30 # Date, optional\ncategory: # category of the page\ntags: # Tags array, optional\n- tag1\n- tag2\n```\n\n## Tags\n\nApart from tags metadata, tags are also detected from words stating with '#' for e.g. `#tag1`;\n\nA line containing only tags is removed while rendering.\n\n## Drafts\n\nA file tagged with `draft` will not be rendered.\n\n# Template\n\nThe presentation of the page is handled by the template. The template files resides in `_template` folder. The `_template` folder is placed in the same folder in which `_engine` is placed.\n\n## Layout\n\nWhen rendering a page, where the layout property is set, the `_template/\u003clayout_name\u003e.php` file is called.  If the layout is not set, the nearest *folder name* is set as the layout. If page is in root, the value of `default-layout` set in config will be used. If `default-layout` is not set, then `page` will be set as default layout.\n\n## Variables available inside template\n`$site` variable contains all metadata contained in `config.yml` which is at the root folder in which `_engine` is placed. The variables are key of this array.\n\n`$page` variable contains all metadata contained in frontmatter of a page. The variables are key of this array.\n\n## Assets\n\nAll files stored in `assets` folder will be copied to `_site/assets` as it is without any processing. This is used for images, css/js files, and other resources.\n\n## Dynamic CMS\n\nIf you need a dynamic CMS instead of SSG, try [Tunnel CMS](https://reactivematter.github.io/tunnelcms/), a dynamic counterpart of Passage.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivematter%2Fpassage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freactivematter%2Fpassage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freactivematter%2Fpassage/lists"}