{"id":21330090,"url":"https://github.com/mermshaus/horne","last_synced_at":"2026-04-13T23:02:30.472Z","repository":{"id":11586085,"uuid":"14076342","full_name":"mermshaus/horne","owner":"mermshaus","description":"static page generator","archived":false,"fork":false,"pushed_at":"2022-06-17T12:38:49.000Z","size":197,"stargazers_count":1,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T00:29:03.615Z","etag":null,"topics":["markdown","php","programmable","static-site-generator"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mermshaus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-02T22:39:27.000Z","updated_at":"2018-08-13T19:41:16.000Z","dependencies_parsed_at":"2022-08-20T17:50:57.272Z","dependency_job_id":null,"html_url":"https://github.com/mermshaus/horne","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/mermshaus/horne","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermshaus%2Fhorne","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermshaus%2Fhorne/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermshaus%2Fhorne/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermshaus%2Fhorne/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mermshaus","download_url":"https://codeload.github.com/mermshaus/horne/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mermshaus%2Fhorne/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31774547,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["markdown","php","programmable","static-site-generator"],"created_at":"2024-11-21T22:14:15.905Z","updated_at":"2026-04-13T23:02:30.456Z","avatar_url":"https://github.com/mermshaus.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Horne\n\nA static page generator for HTML\n\n\n\n## Install\n\n### Standalone version\n\nAfter cloning, run [Composer](https://getcomposer.org/) to install Horne’s\ndependencies. You might also need to set the file `horne` as executable.\n\nA full example install script:\n\n~~~ bash\ngit clone https://github.com/mermshaus/horne.git\ncd horne\ncomposer install\nchmod +x horne\n./horne --version\n~~~\n\n### As a dependency via Composer\n\n~~~ json\n{\n    \"repositories\": [\n        {\n            \"type\": \"vcs\",\n            \"url\": \"https://github.com/mermshaus/horne\"\n        }\n    ],\n    \"require\": {\n        \"mermshaus/horne\": \"~0.3\"\n    }\n}\n~~~\n\nSorry, no `composer require` yet.\n\nRun with `vendor/bin/horne --version`.\n\n\n\n## Building bundled demo projects\n\nFrom Horne’s root directory run:\n\n~~~ bash\n./horne build --working-dir demos/hello-world\n./horne build --working-dir demos/blog\n~~~\n\nThe HTML output will be written to `demos/hello-world/output` and\n`demos/blog/output`. You should be able to open the respective `index.html`\nfiles with a browser to view the result. Take a look at the contents of the\nproject directories in `demos` to get an idea what the output is based on.\n\n\n\n## API\n\nYou have access to the following methods in `*.phtml` files via the `$api`\nvariable.\n\n- `getPathToRoot() : string`\n\n  Returns the relative path to the project’s root directory (without\n  trailing slash).\n\n- `getMetasByType(string $type, array $order = array(), int $limitCount = -1, int $limitOffset = 0) : array`\n\n  Retrieves a set of `MetaBag` instances specified by certain criteria.\n\n- `e(string $s) : string`\n\n  Escapes strings for insertion into HTML code. Use extensively.\n\n- `datef(string $date) : string`\n\n  Reformats a date (`Y-m-d H:i:s`) in a nicer way. This method will probably\n  be deprecated.\n\n- `getSetting(string $key) : mixed`\n\n  Returns a config value (e. g. from `_horne.json`) by dot-separated key.\n  The `modules` index may be omitted. `blog.useTags` is interpreted as\n  `modules.blog.useTags`.\n\n- `url(string $id) : string`\n\n  Returns a link to a Horne resource. Use for internal links.\n\n- `render(string $id, array $vars = array()) : string`\n\n  Generates and returns the output of a Horne resource for the given\n  parameters. Useful to avoid redundancy.\n\n- `getAllMetas() : array`\n\n  Returns all MetaBags known to the Horne instance. Use this where\n  `getMetasByType` is too limited.\n\n- `getModule(string $id) : Horne\\Module`\n\n  Gives access to module instances.\n\n- `getMetasByTag(string $tag) : array`\n\n  Retrieves all Horne resources (`MetaBag`) with a specific tag. Might be\n  deprecated.\n\n- `getMetaById(string $id) : Horne\\MetaBag`\n\n  Retrieves a specific MetaBag by Horne resource id.\n\n- `syntax(string $source, string $lang = 'text') : string`\n\n  Returns a syntax-highlighted string. The PHTML renderer uses GeSHi for\n  syntax highlighting.\n\n\n\n## Modules\n\n(This list is incomplete.)\n\n- Blog\n  - `bool showArticleCounter = true`\n  - `bool showAuthor = true`\n  - `bool showInfoline = true`\n  - `bool useTags = true`\n- Debug\n- Linkblog\n  - `string dataFile = \"linkblog.rss\"`\n  - `int    entriesPerPage = 40` (-1 for no limit)\n- System\n  - `string siteName = null`\n  - `string siteSlogan = null`\n- Theme\n  - `string name`\n\n\n\n## License\n\nThe MIT License (MIT). See LICENSE for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmermshaus%2Fhorne","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmermshaus%2Fhorne","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmermshaus%2Fhorne/lists"}