gfmhtml/render.py (24 lines of code) (raw):

#!/usr/bin/env python3 # # Test script for using GitHub's REST endpoint for rendering # GFM (on stdin) into HTML (to stdout). # # USAGE: # # A Personal Access Token (PAT) is needed. Generate one at # https://github.com/settings/tokens?type=beta ... set an # expiration and read-only for all public repositories. No # fine-grained permissions are needed. # # Save the PAT somewhere safe. # # Put the PAT into the environment variable GITHUB_TOKEN: # # $ read GITHUB_TOKEN # <paste> # # Using read will ensure the PAT does not appear in your # shell history. # # $ ./render.py < /some/file.md > /some/where.html # import os import sys import json import requests ENDPOINT = 'https://api.github.com/markdown' API_VERSION = '2022-11-28' def main(): token = os.environ['GITHUB_TOKEN'] # Fail if missing markdown = sys.stdin.read() sys.stdout.write(render(token, markdown)) def render(token, markdown): headers = { 'Accept': 'application/vnd.github+json', 'Authorization': f'Bearer {token}', 'X-GitHub-Api-Version': API_VERSION, } params = { 'text': markdown, 'mode': 'gfm', #'context': None, } r = requests.post(ENDPOINT, headers=headers, json=params) return r.text if __name__ == '__main__': main()