How to render pr and issue template markdown as github html
- Step 1Open the template file — Upload
PULL_REQUEST_TEMPLATE.md, anISSUE_TEMPLATE/*.md, or paste the body. One file at a time. - Step 2Strip frontmatter if present — If the file starts with a
---YAML block, remove it before previewing — this tool feeds the whole file to marked and does not strip frontmatter, so the block would render as a rule plus text. - Step 3Run the render — Click Run. marked converts the body with GFM and the GitHub dark theme is applied. No options to configure.
- Step 4Check the checklist and headings — Confirm
- [ ]items render as checkboxes and section headings sit at the right level — the two things most often broken in templates. - Step 5Confirm comments stay hidden — Verify HTML comment placeholders are invisible in the rendered preview, matching GitHub's composer behaviour.
- Step 6Fix and re-run, then commit — Edit in your branch, re-preview until clean, then commit the
.github/change with confidence.
Template content: what renders and how
Behaviour for the parts of a typical Markdown PR/issue template, based on marked 14.1.4 default config.
| Template element | Renders as | Notes for templates |
|---|---|---|
Task list (- [ ]) | Disabled checkbox | The review checklist contributors will tick — verify it here |
Headings (## Description) | Styled heading | Confirms section order and level |
HTML comment (<!-- ... -->) | Invisible | Guidance placeholders stay hidden, like GitHub |
YAML frontmatter (--- block) | Rendered, not stripped | Remove it before previewing the body; validate fields with md-frontmatter-builder |
| Markdown link to CONTRIBUTING | Clickable link | Relative repo links will not resolve in the preview |
GitHub issue-form YAML (.yml) | Not applicable | Form schemas are not Markdown; this tool does not render them |
[!NOTE] callout in a template | Literal text | Not a callout here — shows verbatim |
Which template type this tool fits
GitHub supports two template systems. This tool previews only the Markdown one.
| Template system | File | Previewable here? |
|---|---|---|
| Markdown PR template | .github/PULL_REQUEST_TEMPLATE.md | Yes — paste the body (no frontmatter) |
| Markdown issue template | .github/ISSUE_TEMPLATE/bug.md | Yes — strip the leading --- block first |
| YAML issue form | .github/ISSUE_TEMPLATE/bug.yml | No — it is a form schema, not Markdown |
| Config | .github/ISSUE_TEMPLATE/config.yml | No — configuration, nothing to render |
Cookbook
Real .github/ template snippets and what the preview shows. Boilerplate <head> omitted.
A PR template review checklist
The core of most PR templates. The checklist renders as checkboxes; headings give it structure.
Input (PULL_REQUEST_TEMPLATE.md): ## Summary <!-- what does this change? --> ## Checklist - [ ] Tests added - [ ] Docs updated - [ ] No breaking changes Preview: 'Summary' and 'Checklist' headings, the comment is hidden, and three disabled checkboxes appear under Checklist.
Issue template with frontmatter — strip it first
Markdown issue templates begin with a YAML block. Because this tool does not strip it, you preview the body only.
Raw file: --- name: Bug report about: Report a defect labels: bug --- ## Steps to reproduce 1. ... If you paste the whole file, the --- block renders as a rule plus 'name: Bug report ...' text. Paste from '## Steps' down to preview the body as contributors will see it.
HTML comment placeholders stay invisible
Templates use comments for guidance that should not appear in the submitted issue. Confirm they are hidden.
Input: ## Expected behaviour <!-- Describe what you expected to happen --> ## Actual behaviour <!-- Describe what actually happened --> Preview: two headings, no visible comment text — exactly how the GitHub composer renders it.
An alert marker in a template renders literally
If a template author adds a [!IMPORTANT] alert, preview here to see it does not become a callout box.
Input: > [!IMPORTANT] > Fill in every section or the issue will be closed. Preview: <blockquote> <p>[!IMPORTANT] Fill in every section or the issue will be closed.</p> </blockquote> The coloured callout appears only on github.com.
Relative link to CONTRIBUTING
Templates often link to contributing docs. Relative repo links do not resolve in the preview.
Input: Please read our [contributing guide](../CONTRIBUTING.md) first. Preview: the link text renders and is clickable, but the relative target will not resolve in the preview. It resolves on github.com once the template is merged.
Edge cases and what actually happens
Frontmatter is rendered, not stripped
ExpectedThis tool passes the whole file to marked. A leading --- YAML block renders as a horizontal rule followed by the field text. Remove the block before previewing the body, and validate the YAML fields separately with md-frontmatter-builder.
YAML issue forms are not Markdown
Not applicableGitHub's issue-form schemas (.github/ISSUE_TEMPLATE/*.yml) are structured YAML, not Markdown bodies, and are not rendered here. Use GitHub's own form preview for those; this tool is for Markdown templates.
HTML comments are hidden (as intended)
By design<!-- guidance --> placeholders are invisible in the rendered preview, matching GitHub. If you expected to see the comment text, that is the point — it should not appear in the submitted issue either.
Relative repo links do not resolve
Expected[guide](../CONTRIBUTING.md) renders as a clickable link but the relative target has no base in the preview. It resolves on github.com after merge. Use an absolute URL to verify the destination in the preview.
GitHub alert markers stay literal
Not supported[!NOTE] / [!IMPORTANT] in a template render as plain blockquote text, not callout boxes. Preview here to confirm the degradation before relying on the callout look.
Checkbox pre-checking does not carry meaning
Expected- [x] renders pre-checked in the preview, but template checkboxes are widgets for the contributor to tick — the rendered state is cosmetic. Author them as - [ ] so contributors start from an unchecked list.
Multiple template variants at once
rejectedOne file per run. To compare variants, preview each separately, or concatenate them with md-merger into one scratch file for a side-by-side read.
Preview needs internet for styling
By designThe Primer theme loads from CDN, so offline the template preview is unstyled (but structurally correct). Layout checks still work offline; only the GitHub look needs the network.
Template body exceeds character cap
rejectedFree tier caps input at 500,000 characters / 1 MB. Templates are tiny, so this is unlikely — but a giant pasted doc would be rejected. Pro raises the cap to 5,000,000 / 10 MB.
Empty template
ExpectedAn empty body renders a styled blank page with no error — confirms the wrapper, not content.
Frequently asked questions
Does this strip YAML frontmatter from issue templates?
No. The file is passed straight to marked, so a leading --- block renders as a rule plus its field text. Remove the block before previewing the body, and use md-frontmatter-builder to validate the YAML fields.
Can I preview GitHub issue forms (the .yml ones)?
No. Issue forms are YAML schemas, not Markdown. This tool renders the Markdown template body only. Use GitHub's built-in form preview for .yml forms.
Do the review checklist checkboxes render?
Yes — - [ ] and - [x] become disabled checkboxes, matching the GitHub composer, so you can confirm a PR template's checklist looks right before merge.
Will HTML comment placeholders show up?
No — they are hidden in the rendered preview, exactly as on GitHub. That is the intended behaviour: the guidance comment helps the author but should not appear in the submitted issue.
Why does my relative link to CONTRIBUTING not work in the preview?
Relative repo paths have no base origin in the preview, so they cannot resolve. They resolve on github.com once the template is merged. Use an absolute URL if you want to test the destination here.
Does the GitHub alert syntax render as a callout?
No. [!NOTE] / [!IMPORTANT] stay as literal text inside a plain blockquote. The coloured callout box only appears on github.com.
Is my unmerged template uploaded anywhere?
No. Conversion is fully in-browser, so unreleased .github/ content stays on your machine. If the template references internal tooling or tokens, run md-secret-redactor first.
What can I drop?
.md, .mdx, .markdown, .txt, or pasted text — one file per run. Multiple files are not accepted.
Is there a light theme?
Not in the tool — the preview is dark-only. Layout is theme-independent, so it still validates structure. Edit the downloaded <link> for a light file.
What are the size limits?
Free: 1 MB / 500,000 chars / 1 file. Pro: 10 MB / 5,000,000 / 10. Pro-media: 50 MB / 20,000,000 / 50. Developer: 500 MB / unlimited. Templates are well within free limits.
How do I check my template's links are valid?
Run md-link-validator over the template to flag broken or malformed links before merge.
Can I export the rendered template to share with my team?
Yes — download <name>-github.html. It links the theme from CDN, so viewers need internet. For a self-contained file use md-to-html.
Privacy first
All Markdown processing runs locally in your browser using JavaScript. No file is ever uploaded to JAD Apps servers — only metadata counters are saved for signed-in dashboard stats.