{"id":13777119,"url":"https://github.com/madx/honk","last_synced_at":"2026-03-11T16:41:03.929Z","repository":{"id":490561,"uuid":"116843","full_name":"madx/honk","owner":"madx","description":"my blogging engine - sinatra + yaml","archived":false,"fork":false,"pushed_at":"2009-07-24T17:26:17.000Z","size":172,"stargazers_count":9,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-16T13:06:34.214Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://yapok.org/","language":"Ruby","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/madx.png","metadata":{"files":{"readme":"README.textile","changelog":"CHANGELOG","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":"2009-01-28T20:34:30.000Z","updated_at":"2019-08-13T13:56:51.000Z","dependencies_parsed_at":"2022-08-16T10:25:24.910Z","dependency_job_id":null,"html_url":"https://github.com/madx/honk","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhonk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhonk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhonk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhonk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madx","download_url":"https://codeload.github.com/madx/honk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249127928,"owners_count":21217050,"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-08-03T18:00:37.977Z","updated_at":"2026-03-11T16:41:03.890Z","avatar_url":"https://github.com/madx.png","language":"Ruby","funding_links":[],"categories":["Blogging"],"sub_categories":[],"readme":"h1. Honk\n\nA minimalistic, text-based blogging engine.\n\nh2. Features\n\n* Posts,\n* Comments,\n* Tags,\n* That'it.\n\nh2. Requirements, install \u0026 setup\n\nYou'll need \"Sinatra\":http://github.com/sinatra/sinatra and, optionnaly,\n\"Thor\":http://github.com/wycats/thor.\n\nThor is used for convenience scripts (regenerating the taglist, managing your\nposts) so I strongly recommend that you install it. The formatter may be used to\nease the editing of your posts. Honk will treat the contents as raw HTML if you\ndon't specify a formatter (see below).\n\nOnce you've got this, clone this repository or grab a tarball and extract it\nwhere you want to install your blog. Run @ruby honk.rb@ to start your blog.\n\nYou can run @thor script:bootstrap@ to build the default files and start \nediting them right away!\n\nh2. Usage \n\nHonk relies on two main files, plus your posts and the comments for your posts,\nwhich will be automatically generated.\n\nh3. Index\n\nThe @index.yml@ files contains a sequence of mappings in which each key is a\nshort name for your post, and the value is the path for your post (relative to\nHonk's root) or @~@ to automatically build the path.\n\n\u003cpre\u003e\u003ccode\u003e--- !honk.yapok.org,2009/Index\n- my_first_post: my_first_post.yml\n- another_one: another_one.yml\n- alias: this_post_is_aliased.yml\n- magic: ~ # will map to magic.yml\n- more_magic: foo_~.yml # will map to foo_more_magic.yml\n\u003c/code\u003e\u003c/pre\u003e\n\nThe way Honk works allows you to write posts without publishing them. They will\nbe available only when you add them to the index. Be careful that it is a\nsequence, which mean it's ordered: the most recent post goes at the bottom of\nthis file.\n\nh3. Tags\n\nNext, the @tags.yml@ file is simply a mapping that associates each tag with a\nlist of posts. \n\nHere's an example @tags.yml@\n\n\u003cpre\u003e\u003ccode\u003e--- !honk.yapok.org,2009/Tags\na_tag:\n  - a_post\nanother_one:\n  - a_post\n\u003c/code\u003e\u003c/pre\u003e\n\nh3. Posts\n\nPosts are stored in YAML files as well, the format is self-explanatory enough:\n\n\u003cpre\u003e\u003ccode\u003e--- !honk.yapok.org,2009/Post\n:title: A post about something\n:tags:\n  - miscellaneous\n  - another tag\n:timestamp: 2009-01-27T21:42:21+01:00\n:commentable: yes\n:contents: |-\n  \u003cp\u003eThis is my \u003cstrong\u003efirst post\u003c/strong\u003e\u003c/p\u003e\n  \u003cp\u003eAs you can see I write raw HTML\u003c/p\u003e\n\u003c/code\u003e\u003c/pre\u003e\n\nRemember that in order to publish a post, you have to add it to the @index.yml@\nfile!\n\nh3. Comments\n\nComments are stored in one file per post, so if you have a post stored in \n@my_post.yml@, the comments file would be @my_post.comments.yml@. The format is\nrather simple too:\n\n\u003cpre\u003e\u003ccode\u003e--- !honk.yapok.org,2009/Comment\n:author: Jonh Doe\n:email: john@doe.com\n:website: http://johndoe.com/\n:timestamp: 2009-01-27T21:42:21+01:00\n:contents: |-\n  Wow dude, that post is awesome!\n\u003c/code\u003e\u003c/pre\u003e\n\nThe comments file is a stream of comments, from the oldest to the latest.\n\nh2. Configuring and tweaking\n\nThe basic configuration is done through the Honk.setup block it lets you define\nsome basic parameters for your blog such as pagination. Just open the @config.rb@\nand follow the instructions.\n\nh3. Configuration options\n\n* @paginate@: defines how many posts are showed per page.\n* @root@: tells honk where to find the posts, index and tags files, default is\n  the same dir as you blog, but you can change this to put your content\n  elsewhere.\n* @comment_filter@: a proc that returns the filtered text for a comment. This is\n  useful for escaping HTML, allowing formatting, etc.\n* @meta@: defines metadata for your blog such as author's name, email, a\n  title...\n\nIf you want more tweaking, you can still hack the source, it's open.\n\nh3. Theme \u0026 layout\n\nOf course, Honk's layout can be overriden. Just take a look at\n@public/master.css@ and @views/@.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadx%2Fhonk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadx%2Fhonk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadx%2Fhonk/lists"}