EmGitHub

Shortcode to embed GitHub source file into Markdown content.

Syntax

1{{< emgithub >}}

Parameters

owner

PositionNameTypeRequiredDefaultSince
#0ownerstring--

The repository owner.

repo

PositionNameTypeRequiredDefaultSince
#1repostring--

The repository name.

file

PositionNameTypeRequiredDefaultSince
#2filestring--

The filename.

branch

PositionNameTypeRequiredDefaultSince
-branchstring-main-

The branch name.

style

PositionNameTypeRequiredDefaultSince
-stylestring-default-

The render style.

Available options: default, a11y-dark, a11y-light, agate, an-old-hope, androidstudio, arduino-light, arta, ascetic, atom-one-dark, atom-one-dark-reasonable, atom-one-light, brown-paper, codepen-embed, color-brewer, dark, devibeans, docco, far, felipec, foundation, github, github-dark, github-dark-dimmed, gml, googlecode, gradient-dark, gradient-light, grayscale, hybrid, idea, intellij-light, ir-black, isbl-editor-dark, isbl-editor-light, kimbie-dark, kimbie-light, lightfair, lioshi, magula, mono-blue, monokai, monokai-sublime, night-owl, nnfx-dark, nnfx-light, nord, obsidian, panda-syntax-dark, panda-syntax-light, paraiso-dark, paraiso-light, pojoaque, purebasic, qtcreator-dark, qtcreator-light, rainbow, routeros, school-book, shades-of-purple, srcery, stackoverflow-dark, stackoverflow-light, sunburst, tokyo-night-dark, tokyo-night-light, tomorrow-night-blue, tomorrow-night-bright, vs, vs2015, xcode, xt256, base16/3024, base16/apathy, base16/apprentice, base16/ashes, base16/atelier-cave, base16/atelier-cave-light, base16/atelier-dune, base16/atelier-dune-light, base16/atelier-estuary, base16/atelier-estuary-light, base16/atelier-forest, base16/atelier-forest-light, base16/atelier-heath, base16/atelier-heath-light, base16/atelier-lakeside, base16/atelier-lakeside-light, base16/atelier-plateau, base16/atelier-plateau-light, base16/atelier-savanna, base16/atelier-savanna-light, base16/atelier-seaside, base16/atelier-seaside-light, base16/atelier-sulphurpool, base16/atelier-sulphurpool-light, base16/atlas, base16/bespin, base16/black-metal, base16/black-metal-bathory, base16/black-metal-burzum, base16/black-metal-dark-funeral, base16/black-metal-gorgoroth, base16/black-metal-immortal, base16/black-metal-khold, base16/black-metal-marduk, base16/black-metal-mayhem, base16/black-metal-nile, base16/black-metal-venom, base16/brewer, base16/bright, base16/brogrammer, base16/brush-trees, base16/brush-trees-dark, base16/chalk, base16/circus, base16/classic-dark, base16/classic-light, base16/codeschool, base16/colors, base16/cupcake, base16/cupertino, base16/danqing, base16/darcula, base16/dark-violet, base16/darkmoss, base16/darktooth, base16/decaf, base16/default-dark, base16/default-light, base16/dirtysea, base16/dracula, base16/edge-dark, base16/edge-light, base16/eighties, base16/embers, base16/equilibrium-dark, base16/equilibrium-gray-dark, base16/equilibrium-gray-light, base16/equilibrium-light, base16/espresso, base16/eva, base16/eva-dim, base16/flat, base16/framer, base16/fruit-soda, base16/gigavolt, base16/github, base16/google-dark, base16/google-light, base16/grayscale-dark, base16/grayscale-light, base16/green-screen, base16/gruvbox-dark-hard, base16/gruvbox-dark-medium, base16/gruvbox-dark-pale, base16/gruvbox-dark-soft, base16/gruvbox-light-hard, base16/gruvbox-light-medium, base16/gruvbox-light-soft, base16/hardcore, base16/harmonic16-dark, base16/harmonic16-light, base16/heetch-dark, base16/heetch-light, base16/helios, base16/hopscotch, base16/horizon-dark, base16/horizon-light, base16/humanoid-dark, base16/humanoid-light, base16/ia-dark, base16/ia-light, base16/icy-dark, base16/ir-black, base16/isotope, base16/kimber, base16/london-tube, base16/macintosh, base16/marrakesh, base16/materia, base16/material, base16/material-darker, base16/material-lighter, base16/material-palenight, base16/material-vivid, base16/mellow-purple, base16/mexico-light, base16/mocha, base16/monokai, base16/nebula, base16/nord, base16/nova, base16/ocean, base16/oceanicnext, base16/one-light, base16/onedark, base16/outrun-dark, base16/papercolor-dark, base16/papercolor-light, base16/paraiso, base16/pasque, base16/phd, base16/pico, base16/pop, base16/porple, base16/qualia, base16/railscasts, base16/rebecca, base16/ros-pine, base16/ros-pine-dawn, base16/ros-pine-moon, base16/sagelight, base16/sandcastle, base16/seti-ui, base16/shapeshifter, base16/silk-dark, base16/silk-light, base16/snazzy, base16/solar-flare, base16/solar-flare-light, base16/solarized-dark, base16/solarized-light, base16/spacemacs, base16/summercamp, base16/summerfruit-dark, base16/summerfruit-light, base16/synth-midnight-terminal-dark, base16/synth-midnight-terminal-light, base16/tango, base16/tender, base16/tomorrow, base16/tomorrow-night, base16/twilight, base16/unikitty-dark, base16/unikitty-light, base16/vulcan, base16/windows-10, base16/windows-10-light, base16/windows-95, base16/windows-95-light, base16/windows-high-contrast, base16/windows-high-contrast-light, base16/windows-nt, base16/windows-nt-light, base16/woodland, base16/xcode-dusk, base16/zenburn.

type

PositionNameTypeRequiredDefaultSince
-typestring-markdown-

Available options: markdown, code, ipynb.

border

PositionNameTypeRequiredDefaultSince
-borderboolean-true-

Whether to show the border.

lineNumbers

PositionNameTypeRequiredDefaultSince
-lineNumbersboolean-true-

Whether to show the line numbers.

fileMeta

PositionNameTypeRequiredDefaultSince
-fileMetaboolean-true-

Whether to show the file meta.

fullPath

PositionNameTypeRequiredDefaultSince
-fullPathboolean-true-

Whether to show the full path in meta.

copyButton

PositionNameTypeRequiredDefaultSince
-copyButtonboolean-true-

Whether to show the copy button.

jsDelivr

PositionNameTypeRequiredDefaultSince
-jsDelivrboolean-false-

Whether to fetch raw files from jsDelivr instead of GitHub repository, could be faster but may experience the cache issue (new changes may not be reflected timely).

Tweak the Styles

If it looks strange when embedded into the target web pages, you’ll need to tweak the styles. Learn more on get started section.

Site Parameters

You can also tweak the default values of those parameters globally.

hugo.yaml

 1params:
 2  emgithub:
 3    border: true
 4    branch: main
 5    copy_button: true
 6    endpoint: https://emgithub.com/embed-v2.js
 7    file_meta: true
 8    full_path: true
 9    js_delivr: false
10    line_numbers: true
11    style: default
12    type: markdown

hugo.toml

 1[params]
 2  [params.emgithub]
 3    border = true
 4    branch = 'main'
 5    copy_button = true
 6    endpoint = 'https://emgithub.com/embed-v2.js'
 7    file_meta = true
 8    full_path = true
 9    js_delivr = false
10    line_numbers = true
11    style = 'default'
12    type = 'markdown'

hugo.json

 1{
 2   "params": {
 3      "emgithub": {
 4         "border": true,
 5         "branch": "main",
 6         "copy_button": true,
 7         "endpoint": "https://emgithub.com/embed-v2.js",
 8         "file_meta": true,
 9         "full_path": true,
10         "js_delivr": false,
11         "line_numbers": true,
12         "style": "default",
13         "type": "markdown"
14      }
15   }
16}

Examples

Markdown Example

Source
1{{< emgithub
2  owner="hugomods"
3  repo="shortcodes"
4  file="README.md"
5>}}
Result

Raw Code Example

Source
1{{< emgithub
2  owner=hugomods
3  repo=shortcodes
4  file="hugo.toml"
5  type=code
6>}}
Result