{"id":21607236,"url":"https://github.com/harentius/blog","last_synced_at":"2025-04-11T04:26:33.322Z","repository":{"id":33310658,"uuid":"36955400","full_name":"harentius/blog","owner":"harentius","description":"Simple blog, on the top of https://github.com/harentius/blog-bundle","archived":false,"fork":false,"pushed_at":"2024-11-20T22:02:48.000Z","size":4892,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-20T23:18:26.784Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://folkprog.net/","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/harentius.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":"support/dev/vhost.conf","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-05T21:07:01.000Z","updated_at":"2024-11-02T18:26:47.000Z","dependencies_parsed_at":"2024-08-29T22:51:25.823Z","dependency_job_id":"976c8472-a908-416f-b9d9-f516828f28e1","html_url":"https://github.com/harentius/blog","commit_stats":{"total_commits":950,"total_committers":2,"mean_commits":475.0,"dds":0.4652631578947368,"last_synced_commit":"83aaaa494668ee2cdc6478862a027c4caaacdc47"},"previous_names":["harentius/blog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harentius%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harentius%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harentius%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harentius%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harentius","download_url":"https://codeload.github.com/harentius/blog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226225505,"owners_count":17592200,"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-24T20:29:29.148Z","updated_at":"2025-04-11T04:26:33.311Z","avatar_url":"https://github.com/harentius.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blog\n\n## Overview\n\n`harentius/blog` is a minimalistic blogging engine.  \nIt is designed to use Markdown files for content and transform them into blog posts.  \nThe directory structure represents a categories tree.  \n\nIt consists of the following parts:\n\n### Symfony application (`src/BlogBundle`)\n\nIt is used to store and display blog posts.\nProvides an API to manage blog and a UI to display it.\nIt is also available as a standalone Symfony bundle [harentius/blog-bundle](https://github.com/harentius/blog-bundle),\nwhich is a subsplit of this engine.\n\n### Markdown renderer and publisher (`src/publisher`)\n\nRenders markdown and publish it in a blogging application.\n\n## Installation\n*Requirements: docker, make, nodejs (for publisher)*\n\n1. Clone the repository\n\n```\ngit clone git@github.com:harentius/blog.git\n```\n\n2. Start containers and do initial setup\n```\nmake up\n```\n\n3. Build a DB schema\n```\nmake build-db\n```\n\n4. Install npm modules for publisher\n```\ncd src/publisher \u0026\u0026 npm install\n```\n\n3. The blog application should be available on the address\n[http://localhost:8080](http://localhost:8080)\n\nMentioned steps run required containers and mounts source folder and can be used for development and experimenting.\nFor more check `support/examples` configs for more production-ready setup.\n\n## Usage\n\n1. Generate API token\n```\nmake api-key\n```\n\n2. Create a blog post\nIt is an markdown file with the following structure:\n\n```\n# Title (is required)\n\n###### Meta Description: Blog Post Meta Description (Optional)\n###### Meta Keywords: Blog Post Meta Keywords (Optional)\n###### Published at: Publication date (Default is \"now\")\n\nHere starts the content.\nIt also can contain an image\n![](blog-post-url/some-image.png)\n\nAnd a youtube video\n[Video](https://www.youtube.com/embed/video_id?wmode=transparent)\n```\n\nThe publisher also supports images and other files, including the cover file.\nThey should be stored in the directory with the same name as the blog, but without \".md\".\nFor example:\n```\n/path/to/dir/with-blog-files/ Category/Subcategory/blog-post-url/\n```\n\n3. Publish the blog post\n\n```\nHOST=https://blog.url API_TOKEN=your_api_token src/publisher/src/main.mjs add /path/to/dir/with-blog-files/ Category/Subcategory/blog-post-url.md\n```\n\n## Development\n\n### Build docker images\n```\nmake build\n```\n\n### Publish to dockerhub\n```\nmake publish\n```\n\n### Publish to BlogBundle to blog-bundle repository\n```\nmake publish-blog-bundle\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharentius%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharentius%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharentius%2Fblog/lists"}