Inkgitπ« is a simple tool to serve frequently changing content from a Git repo and show it on your website without requiring to go through CMS updates or build pipelines.
-
Showing frequently updated section on your website: For example, a TIL, reading list, project updates, or a changelog β that you want to maintain separately from your main content because you don't want to rebuild your entire site for every small update.
-
Showing updates from AI agents: For example, an AI agent collecting daily market data and showing it on your site without giving it access to your website CMS.
- You update the markdown files in the
data/folder (eg.data/til.md) - A GitHub Action converts them to minified HTML and outputs to
dist/ - GitHub Pages serves the
dist/directory - Your site fetches and displays them with a one-line embed.
Click Fork on GitHub. Rename it if you like.
Go to Settings β Pages and set the source to GitHub Actions.
Your files will be available at https://<username>.github.io/<repo-name>/<filename>.html.
Edit or add markdown files in the data/ folder:
data/
sample.til.md β sample TIL entries (delete or rename)
sample.books.md β sample reading list
sample.hydroponics_updates.md β sample project updates
til.md β add your own files
Push to main. The GitHub Action will automatically build the .html files and an index.html for standalone viewing.
Add the embed script and a div for each page you want to display:
<!-- The container β one per page -->
<div data-inkgit="https://<username>.github.io/<repo>/til.html"></div>
<!-- The embed script β once, anywhere on the page -->
<script async src="https://<username>.github.io/<repo>/inkgit.min.js"></script>That's it. The script finds all [data-inkgit] divs and fetches their content.
<h2>TIL</h2>
<div data-inkgit="https://user.github.io/repo/til.html"></div>
<h2>Books</h2>
<div data-inkgit="https://user.github.io/repo/books.html"></div>
<script async src="https://user.github.io/repo/inkgit.min.js"></script>The build also generates index.html β a minimal styled page that shows all your markdown files in one place. Visit it directly at:
https://<username>.github.io/<repo>/index.html
Take a look at the index page for this repo: https://vishnuharidas.github.io/inkgit/index.html
View the raw HTML generated from the markdown files in /data directory:
The generated HTML is unstyled β it inherits your site's CSS when the content is displayed on your website. The generated HTML uses standard tags (<h1>, <ul>, <li>, <code>, <pre>, <strong>, etc.), so your existing styles will apply.
You can also add a class to the container:
<div data-inkgit="..." data-inkgit-class="til-section"></div>Use any standard markdown. A simple list format works well for TIL-style entries:
- **2026-03-06** β Honey never spoils. Archaeologists have found 3,000-year-old honey in Egyptian tombs that was still perfectly edible.
- **2026-03-05** β Sharks are older than trees. Sharks have been around for about 400 million years; trees appeared roughly 350 million years ago.To build locally without waiting for the Action:
pip install markdown-it-py minify-html rjsmin
python build.pyThis outputs everything to dist/. Open dist/index.html in a browser to preview.
βββ build.py # Markdown β HTML converter
βββ assets/
β βββ inkgit.js # Lightweight embed script for your site
β βββ index.html # Template for the standalone viewer
βββ data/
β βββ sample.til.md # Sample files (delete or rename)
β βββ sample.books.md
β βββ sample.hydroponics_updates.md
βββ dist/ # Build output (auto-generated, not committed)
β βββ sample.til.html
β βββ sample.books.html
β βββ index.html # Standalone viewer
β βββ inkgit.js # Full version (for debugging)
β βββ inkgit.min.js # Minified (use this)
βββ .github/
β βββ workflows/
β βββ build.yml # GitHub Action
βββ README.md
I keep running into interesting things every day β a handy CLI flag, a language quirk, a debugging trick β and I wanted to share a TIL list on my personal blog. But rebuilding my entire website for a one-line TIL entry felt like overkill. I didn't want to open my blog content, edit it, trigger a deploy, and wait for a build pipeline every time just to jot down a line of text.
So I built Inkgitπ«. Now I just edit a markdown file β right on GitHub or from my local repo and push, and it shows up on my blog. The website itself doesn't change at all; a tiny script fetches the latest content at load time. The TIL stays separate, lives in its own repo, and updates independently.
/ΛΙͺΕk.Ι‘Ιͺt/ β ink as in writing, git as in Git.
Ink is the oldest form of publishing β putting thoughts on a surface. Git is how developers share and version their work. Inkgitπ« is where the two meet: you write in markdown, Git delivers it to the world. Simple writing, simple delivery.
Copyright (c) 2026 Vishnu Haridas
This software is published under MIT License. See LICENSE.txt for more details