{"id":13777109,"url":"https://github.com/madx/haze","last_synced_at":"2025-04-15T18:26:49.923Z","repository":{"id":776285,"uuid":"463790","full_name":"madx/haze","owner":"madx","description":"A minimalistic blogging engine, the successor of Honk","archived":false,"fork":false,"pushed_at":"2010-08-26T14:31:53.000Z","size":118,"stargazers_count":18,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-16T13:06:34.183Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://github.com/madx/haze","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.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":"2010-01-08T14:25:50.000Z","updated_at":"2020-07-27T02:23:12.000Z","dependencies_parsed_at":"2022-08-16T10:50:34.495Z","dependency_job_id":null,"html_url":"https://github.com/madx/haze","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/madx%2Fhaze","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhaze/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhaze/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/madx%2Fhaze/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/madx","download_url":"https://codeload.github.com/madx/haze/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249127983,"owners_count":21217056,"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.788Z","updated_at":"2025-04-15T18:26:49.906Z","avatar_url":"https://github.com/madx.png","language":"Ruby","funding_links":[],"categories":["Blogging"],"sub_categories":[],"readme":"Haze\n====\n\nHaze is a minimalistic blogging engine, in the spirit of\n[Honk](http://github.com/madx/honk), it's predecessor.\n\nIt has very few features compared to other blog engines. Exhaustively:\n\n* Entries, stored in flat text files\n* Tags\n* An archive page that lists every entry\n* An Atom feed\n* Drafts\n* A very simple comment system\n\nWhy so few? Well, I simply don't need more.\n\nHaze's source code is very short (~200LOC) thus the app is light and quick.\n\n## Requirements ##############################################################\n\n* sinatra (tested with 0.9.4)\n\n## Install ###################################################################\n\n    $ git clone git://github.com/madx/haze.git\n\nCopy the files where you want to install it, then edit `config.ru` if you\nwant to change the defaults. Use plain ruby to do the configuration, like\nthis:\n\n    require File.join(File.dirname(__FILE__), 'lib', 'haze')\n\n    Haze.set :title,  \"Blog title\"\n    Haze.set :author, \"Your name\"\n    Haze.set :domain, \"http://example.com/\"\n    Haze.set :email,  \"me@example.com\"\n    # Replace KEY by a sha1sum of something\n    Haze.set :key,    \"KEY\"\n\n    Haze.reload!\n\n    run Haze::App\n\nCreate the folder where you will put your entries: `mkdir entries`.\nThen run the app with `$ rackup -E production config.ru`.\n\n## Source ####################################################################\n\nHaze's Git repo is available on GitHub, which can be browsed at\n\u003chttp://github.com/madx/haze\u003e and cloned with:\n\n    git clone git://github.com/madx/haze.git\n\n## Usage #####################################################################\n\nHaze entry format enforces a few conventions:\n\nAn entry is split in two parts. The first is a header and the second the entry\nbody. The separator is a succession of at least three `-` put on a line of their\nown.\n\nThe header will be the title of your entry. Every word starting with a `#` will\ncreate a new tag. Tags are automatically lowercase'd. You can add tags that\nwon't show up in the title by enclosing them in braces (`{}`).\n\nTo determine the order of entries and their URLs, you have to give a correct\nname to the file they are stored into.\n\nThe format is: `\u003cdate\u003e[+\u003ccounter\u003e]_\u003cslug\u003e.(hz/draft)`.\n\n`\u003cdate\u003e` must be parseable by `Time.parse`, the handiest format to use is\nprobably `\u003cyear\u003e-\u003cmonth\u003e-\u003cday\u003e`. The `+\u003ccounter\u003e` part allows you to write\nmultiple entries with on single `\u003cdate\u003e`. Behind the scenes, it simply adds\n`\u003ccounter\u003e` seconds to the parsed date.\n\n`\u003cslug\u003e` will be the name of the URL for your entry. `hz` or `draft` tells if\nthe file is a regular entry or a draft.\n\nDrafts are viewable using the url `/draft/\u003cslug\u003e`.\n\nExample:\n\n    $ cat entries/2009-01-08_helloworld.hz\n    A #Ruby Hello world program {#tutorial,#programming}\n    ---\n    \u003cp\u003eHello world is the most common program used to demonstrate a language's\n    syntax. Here is one in Ruby: \u003c/p\u003e\n\n    \u003cpre\u003e\u003ccode\u003eputs \"hello world\"\u003c/code\u003e\u003c/pre\u003e\n\n* Title: A Ruby Hello world program\n* Tags: ruby, tutorial, programming\n* Date: 2009-01-08\n* Slug: helloworld\n\n## Syncing content ############################################################\n\nTo synchronize the blog with contents, just hit the url `/_sync_?key=\u003cKEY\u003e`,\nreplacing `\u003cKEY\u003e` with the value set in `config.ru`.\n\nTo automatically update your post as you update the files, you may use\nmynyml's [watchr][1] or ttilley's [fssm][2] and integrate a script in the\n`config.ru` or using an external tool such as `inotifywait`.\n\n## Static pages ###############################################################\n\nHaze supports static pages. Just create a `static` folder in the root directory\nand put raw HTML pages in it. They will be rendered inside the layout and are\navailable at `/static/\u003cfile name\u003e`.\n\n## Issues #####################################################################\n\nThere may be a bug with the Encoding class and HAML under Ruby 1.9, something\nabout `Encoding.default_internal`. To fix it, add this somewhere in your\n`config.ru`:\n\n    class ::Encoding\n      def self.default_internal\n        \"utf-8\" # Or the right encoding\n      end\n    end\n\n[1]: http://github.com/mynyml/watchr\n[2]: http://github.com/ttiley/fssm\n\n## License ####################################################################\n\nHaze is published under the terms of the MIT license, you can find a copy of\nthat license in the `LICENSE` file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadx%2Fhaze","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmadx%2Fhaze","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmadx%2Fhaze/lists"}