{"id":23191056,"url":"https://github.com/olaven/markblog","last_synced_at":"2025-08-18T19:32:07.721Z","repository":{"id":38019908,"uuid":"163771294","full_name":"olaven/markblog","owner":"olaven","description":"The way to blog with markdown.","archived":false,"fork":false,"pushed_at":"2022-10-15T09:00:22.000Z","size":233,"stargazers_count":16,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-09T16:51:12.399Z","etag":null,"topics":["blog","blog-engine","deno","markdown","rss"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/olaven.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/contributing.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["olaven"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2019-01-01T22:34:50.000Z","updated_at":"2024-09-26T05:57:55.000Z","dependencies_parsed_at":"2023-01-19T14:46:16.371Z","dependency_job_id":null,"html_url":"https://github.com/olaven/markblog","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olaven%2Fmarkblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olaven%2Fmarkblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olaven%2Fmarkblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/olaven%2Fmarkblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/olaven","download_url":"https://codeload.github.com/olaven/markblog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230268704,"owners_count":18199806,"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":["blog","blog-engine","deno","markdown","rss"],"created_at":"2024-12-18T12:16:05.884Z","updated_at":"2024-12-18T12:16:06.429Z","avatar_url":"https://github.com/olaven.png","language":"TypeScript","funding_links":["https://github.com/sponsors/olaven","https://github.com/sponsors/olaven/"],"categories":["TypeScript"],"sub_categories":[],"readme":"![Test](https://github.com/olaven/markblog/workflows/Test/badge.svg) [![codebeat badge](https://codebeat.co/badges/b9a1453a-7b64-4392-bde6-947ce7d96c79)](https://codebeat.co/projects/github-com-olaven-markblog-master)\n# Markblog \nThe way to blog with markdown. \n\nIf you or your company is benefitting from Markblog, consider becoming a [sponsor](https://github.com/sponsors/olaven/). \nThis way I can work on new features and continue to maintain it worry-free. \n\n- [Markblog](#markblog)\n  - [About](#about)\n  - [Installation](#installation)\n  - [Getting started](#getting-started)\n  - [Contributions](#contributions)\n  - [Versions](#versions)\n  - [Documentation](#documentation)\n    - [Commands](#commands)\n    - [RSS](#rss)\n    - [Options](#options)\n\n## About \nMarkblog is a small `cli` that converts markdown files into a lightweight blog. \nIt is not tied to any platform, and you own your files. In other words, you are the only one owning your content. \nMarkblog aims to be easy to use and uncomplicated.\n\n## Installation \n* Install [deno](https://deno.land)\n* `deno install --allow-read --allow-write --unstable --allow-run --name markblog https://raw.githubusercontent.com/olaven/markblog/master/mod.ts`\n* Grab the location path at end of logging \n* Update your path: `export PATH=\"\u003cTHE_LOCATION\u003e:$PATH\"`\n\n## Getting started\n* Run `markblog init` in an empty folder.\n* Write posts in the generated `./posts`, in `.md`-files.\n* Run `markblog build` to build pages.\n\nSee [this guide](https://olaven.org/out/guides/blog_with_git_and_markdown.html) for a git/CI-integrated setup. \nThis is, of course, just one of the many ways you could use Markblog. \n\n## Contributions\nAll kinds of contributions are welcome. \nFeature requests, bug reports, code, \nartwork, documentation, or just feedback in general. \n\nDo not hesitate to [post an issue](https://github.com/olaven/markblog/issues/new) :honey_pot:\n\n## Versions \nVersions are managed using [Deno's version tool](https://deno.land/x/version@v1.1.0). \nTo update, use `version patch`, `version minor` or `version major` according to [semver](https://semver.org/). \nThis updates the `VERSION` file and creates a git tag for the version.\n\n## Documentation\n### Commands\n* `markblog init` will set up everything (AKA 1 file and 1 folder 😅)\n  * (_optional_) pass [options](#options) customize. Make sure to use the same options when building!\n* `markblog build` actually builds your webpage. \n  * (_optional_) pass [options](#options) customize.\n* `markblog help` if you are stuck \n\n### RSS \nMarkblog automatically generates an rss-feed, `feed.xml` if `rss_options` is specified \nin the options file. See the RSS-option under [options](#options) for more details.\n### Options \nOptions enable you to specify where Markblog should look for files \nwhen generating your blog. There are default settings, and specifying \ncustom options can be emitted entirely. If however, you want to use custom options, provide `./options.json` at the \nroot of your blog directory. If you want options in a custom location, use \n`--options`-flag, like: `--options path/to/options.json`. \n\nAs an example, custom location of posts _and_ custom stylesheet for posts would look \nsomething like this: \n```json\n{\n    \"post_source\": \"./path/to/posts\", \n    \"post_style\": \"./path/to/custom/style.css\",\n}\n```\n\n* Title of blog \n  * `blog_title`\n  * Title of the page, displayed in the browser tab\n  * \"Blog\" by default\n* Source of posts\n  * `post_source`\n  * the directory where Markblog will search for blog-posts\n  * `./posts` by default\n* Destination of posts \n  * `post_destination`\n  * The Directory where posts will go after building \n  * `./out` by default \n* CSS stylesheet of posts\n  * `post_style`\n  * The location of stylesheet for the posts, relative to `post_destination`\n  * `../style.css` by default \n* CSS stylesheet of index\n  * `index_style`\n  * The location of stylesheet for the front page, relative to root folder\n  * `./style.css` by default \n* Custom favicon \n  * `favicon`\n  * Custom favicon\n  * `\"\"` by default \n* RSS feed \n  * `rss_options`\n  * Specified necessary information for RSS. If present, feed is automatically generated. \n  * `title`, `description` and `link` must be present, i.e.:\n    ```json\n    {\n      \"rss_options\": {\n        \"title\": \"My amazing blog!\", \n        \"description\": \"This is a blog about amazing stuff\", \n        \"link\": \"https://amazing-example-blog.com\"\n      }\n    }\n    ```  \n* Git History Integration\n  * `git_history`\n  * Integrates with git to 1) show the latest commit message of a post and 2) link to the latest changelog at the bottom of the page \n  * `enabled` specifies it is enabled or not. `false` by default.\n  * `host` specifies where the git repo is hosted, for correct links. `\"none\"` by default. Can be either `\"github\"`, `\"sourcehut\"` or `\"none\"`. In the latter case, no links will be shown.\n    ```json\n    {\n     \"git_history\": {\n        \"enabled\": true,\n        \"host\": \"sourcehut\", \n        \"username\": \"olaven\", \n        \"repo_name\": \"markblog\"\n      }\n    }\n    ```  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folaven%2Fmarkblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Folaven%2Fmarkblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Folaven%2Fmarkblog/lists"}