{"id":17182107,"url":"https://github.com/jmtd/hakyll-ikiwiki","last_synced_at":"2026-01-19T07:32:44.809Z","repository":{"id":66798997,"uuid":"203613490","full_name":"jmtd/hakyll-ikiwiki","owner":"jmtd","description":"Code for converting IkiWiki sites to Hakyll","archived":false,"fork":false,"pushed_at":"2021-01-26T11:52:59.000Z","size":31,"stargazers_count":2,"open_issues_count":6,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-12T11:17:42.746Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmtd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-21T15:31:12.000Z","updated_at":"2021-01-26T11:53:02.000Z","dependencies_parsed_at":"2023-07-31T11:45:20.495Z","dependency_job_id":null,"html_url":"https://github.com/jmtd/hakyll-ikiwiki","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fhakyll-ikiwiki","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fhakyll-ikiwiki/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fhakyll-ikiwiki/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmtd%2Fhakyll-ikiwiki/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmtd","download_url":"https://codeload.github.com/jmtd/hakyll-ikiwiki/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247440208,"owners_count":20939211,"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-10-15T00:36:01.278Z","updated_at":"2026-01-19T07:32:44.798Z","avatar_url":"https://github.com/jmtd.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hakyll-IkiWiki\n\nExperimental code for interpreting IkiWiki-format wiki-links and directives\nin a Hakyll site.\n\nI'm exploring whether/how easily I could migrate from\n[IkiWiki](http://ikiwiki.info) to [Hakyll](https://jaspervdj.be/hakyll/). I'm\nkeen to continue to use the IkiWiki link syntax (`[[example]]`), as well as\nsome of the features that are obtained via plugins via directives (`[[!example\nlabel=value]]`), and IkiWiki's link-resolving logic.\n\nThe wikilink-and-directive finding is implemented as a Parsec parser, that\nshould run prior to the content being passed to Pandoc. This can't easily be\nachieved with a Pandoc filter (operating on the Pandoc AST) because the tokens\nwe want might be split up across any kind of different text nodes. The approach\nwe use is to substitute, where possible, the link syntax with a HTML link.\nPandoc then later will interpret the result. This means that thing will only\nwork if the underlying markup language supports in-line HTML. Markdown does,\nTextile does, HTML obviously does, restructuredText does not.\n\nI've begun implementing logic for some IkiWiki plugins in the Directive handling.\nPresently they can generate plain text or updated Metadata. I still need to figure\nout how to plumb the collated Metadata back into Hakyll.\n\nI want to support IkiWiki's `[[!template]]`, where possible, and plan to see if\ntranslating them into Hakyll's template tokens (e.g.\n`$partial(\"filename.html\")$`) as inline text works or not.\n\n## Example in use\n\nThe `site.hs` is a simple example Hakyll program, derived from the basic template\nthat `hakyll-init` generates for you. I've trimmed it a little bit and integrated\n`IkiWiki.hs` into it. The content in `css` and `images` is unchanged; `posts` has\nblog posts that demonstrate IkiWiki-style interlinks and directives in use.\n\n`hakyll-ikiwiki.cabal` and `stack.yaml` are (for now) specific to this\ndemonstration. You can use either [Haskell Stack](https://docs.haskellstack.org/en/stable/README/)\nor [Cabal](https://www.haskell.org/cabal/) to build the demo site.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmtd%2Fhakyll-ikiwiki","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmtd%2Fhakyll-ikiwiki","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmtd%2Fhakyll-ikiwiki/lists"}