{"id":22621088,"url":"https://github.com/millironx/kelpie.jl","last_synced_at":"2026-03-03T21:02:52.207Z","repository":{"id":42429987,"uuid":"476509369","full_name":"MillironX/Kelpie.jl","owner":"MillironX","description":":dog2: I accidentally built an HTML templating engine in Julia","archived":false,"fork":false,"pushed_at":"2022-04-06T19:34:41.000Z","size":206,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-08T20:51:57.717Z","etag":null,"topics":["html","julia","template-engine"],"latest_commit_sha":null,"homepage":"","language":"Julia","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/MillironX.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.bib","codeowners":null,"security":null,"support":null}},"created_at":"2022-03-31T23:26:31.000Z","updated_at":"2025-01-25T06:57:24.000Z","dependencies_parsed_at":"2022-08-19T01:10:19.462Z","dependency_job_id":null,"html_url":"https://github.com/MillironX/Kelpie.jl","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/MillironX/Kelpie.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillironX%2FKelpie.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillironX%2FKelpie.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillironX%2FKelpie.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillironX%2FKelpie.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MillironX","download_url":"https://codeload.github.com/MillironX/Kelpie.jl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MillironX%2FKelpie.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060677,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["html","julia","template-engine"],"created_at":"2024-12-08T22:17:42.755Z","updated_at":"2026-03-03T21:02:52.189Z","avatar_url":"https://github.com/MillironX.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kelpie\n\n[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://MillironX.github.io/Kelpie.jl/stable)\n[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://MillironX.github.io/Kelpie.jl/dev)\n[![Build Status](https://github.com/MillironX/Kelpie.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/MillironX/Kelpie.jl/actions/workflows/CI.yml?query=branch%3Amaster)\n[![Coverage](https://codecov.io/gh/MillironX/Kelpie.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/MillironX/Kelpie.jl)\n[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)\n[![PkgEval](https://JuliaCI.github.io/NanosoldierReports/pkgeval_badges/K/Kelpie.svg)](https://JuliaCI.github.io/NanosoldierReports/pkgeval_badges/report.html)\n[![Genie Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/Kelpie)](https://pkgs.genieframework.com?packages=Kelpie)\n\n:dog2: I accidentally built an HTML templating engine in Julia. It looked a lot\nlike [Pug](https://pugjs.org), but I like working dogs better, so I named it\nKelpie.\n\n## Installation\n\nYou can install straight from the [Julia REPL]. Press `]` to enter [pkg mode],\nthen:\n\n```julia\nadd Kelpie\n```\n\n## Usage\n\nMost HTML elements[^1] now have functions of the same name: simply pass the contents\nas a positional argument, and attributes as keyword arguments, and everything\nwill be returned as an [EzXML](https://github.com/JuliaIO/EzXML.jl) Document or\nNode.\n\n```julia\nimport EzXML: prettyprint\n\ndoc = html(\n  head(\n    title(\"Kelpie.jl is awesome!\"),\n  ),\n  body(\n    header(\n      h1(\"Dogs are cool\"),\n      h2(\"Julia is cool\"),\n    ),\n    main(\n      img(;\n        src=\"/kelpie-on-sheep-back.jpg\",\n        alt=\"A Kelpie herding sheep\"\n      ),\n      [\n        p(\"Kelpies make great herding dogs for $animal.\")\n        for animal in [\"cows\", \"sheep\", \"chickens\"]\n      ]...,\n    ),\n  ),\n)\n\nprettyprint(doc)\n```\n\nTurns into\n\n```html\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?\u003e\n\u003c!DOCTYPE html SYSTEM \"about:legacy-compat\"\u003e\n\u003chtml\u003e\n  \u003chead\u003e\n    \u003ctitle\u003eKelpie.jl is awesome!\u003c/title\u003e\n  \u003c/head\u003e\n  \u003cbody\u003e\n    \u003cheader\u003e\n      \u003ch1\u003eDogs are cool\u003c/h1\u003e\n      \u003ch2\u003eJulia is cool\u003c/h2\u003e\n    \u003c/header\u003e\n    \u003cmain\u003e\n      \u003cimg src=\"/kelpie-on-sheep-back.jpg\" alt=\"A Kelpie herding sheep\" /\u003e\n      \u003cp\u003eKelpies make great herding dogs for cows.\u003c/p\u003e\n      \u003cp\u003eKelpies make great herding dogs for sheep.\u003c/p\u003e\n      \u003cp\u003eKelpies make great herding dogs for chickens.\u003c/p\u003e\n    \u003c/main\u003e\n  \u003c/body\u003e\n\u003c/html\u003e\n```\n\nEverything is pure Julia, so your imagination is the limit!\n\n[^1]:\n    Exception: `div` is the division function, and I wanted to leave it that\n    way. To make `\u003cdiv\u003e`s, you need to use `html_div`.\n\n[julia repl]: https://docs.julialang.org/en/v1/manual/getting-started/\n[pkg mode]: https://docs.julialang.org/en/v1/stdlib/Pkg/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmillironx%2Fkelpie.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmillironx%2Fkelpie.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmillironx%2Fkelpie.jl/lists"}