# \[ANN\] PkgTemplatesShikiPlugin.jl - Add ShikiStyle Syntax Highlighting (Presenting at JuliaLang Japan 2025, Dec 13)

**URL:** <https://discourse.julialang.org/t/ann-pkgtemplatesshikiplugin-jl-add-shikistyle-syntax-highlighting-presenting-at-julialang-japan-2025-dec-13/134487>\
**Category:** Package Announcements\
**Tags:** package, documentation, documenter\
**Created:** [December 11, 2025, 3:16am UTC](https://discourse.julialang.org/t/ann-pkgtemplatesshikiplugin-jl-add-shikistyle-syntax-highlighting-presenting-at-julialang-japan-2025-dec-13/134487 "2025-12-11T03:16:08Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hiroharu\_Sugawara](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/hiroharu_sugawara/32/9400_2.png) [@Hiroharu\_Sugawara](https://discourse.julialang.org/u/Hiroharu_Sugawara)\
**Post date:** [December 11, 2025, 3:16am UTC](https://discourse.julialang.org/t/ann-pkgtemplatesshikiplugin-jl-add-shikistyle-syntax-highlighting-presenting-at-julialang-japan-2025-dec-13/134487/1 "2025-12-11T03:16:08Z")

</div>

I’m excited to announce **PkgTemplatesShikiPlugin.jl**! 🎉

This plugin makes it easy to add beautiful, VS Code-quality syntax highlighting to your Julia package documentation.

## TL;DR - Try it now!

```julia
using PkgTemplates, PkgTemplatesShikiPlugin

t = Template(;
    user="YourName",
    plugins=[
        GitHubActions(),
        DocumenterShiki{GitHubActions}() ##
    ]
)

t("MyPackage")

```

Your new package will have beautiful syntax highlighting powered by Shiki! ✨

## Demo

See it in action: **[DocumenterShikiDemo.jl](https://hsugawa8651.github.io/DocumenterShikiDemo.jl/dev/)**

Compare the syntax highlighting quality and check out the unique multi-line background coloring feature.

## What You Get

- **VS Code-quality syntax highlighting** : Powered by Shiki, which uses the same TextMate grammars as VS Code
- **Automatic setup** : No manual configuration needed - everything is set up when you create your package
- **Multi-line background coloring** : Unique feature that adds background colors based on nesting levels, making code structure more visible
- **Works with existing Documenter.jl workflow** : No need to change your documentation workflow

## Quick Start

### Installation

```julia
using Pkg
Pkg.add("PkgTemplates")
Pkg.add("PkgTemplatesShikiPlugin")

```

### Creating a New Package

```julia
using PkgTemplates, PkgTemplatesShikiPlugin

t = Template(;
    user="YourGitHubUsername",
    plugins=[
        GitHubActions(),
        DocumenterShiki{GitHubActions}()
    ]
)

t("MyAwesomePackage")

```

That’s it! Your package now has Shiki-powered syntax highlighting.

## What Gets Generated

The plugin automatically:

- Adds `DocumenterShiki` configuration to your `docs/make.jl`
- Includes the necessary `ShikiHighlighter.jl` module
- Sets up GitHub Actions to build and deploy your docs with Shiki highlighting
- Configures themes (light/dark mode support)

## Background: Why This Plugin?

Currently, Documenter.jl uses highlight.js for syntax highlighting. While @fredrikekre greatly improved Julia support in highlight.js ([see his blog post](https://fredrikekre.se/posts/highlight-julia/)), it still has limitations due to being regex-based.

The community has been discussing better syntax highlighting solutions (see [Documenter.jl issue #2224](https://github.com/JuliaDocs/Documenter.jl/issues/2224)), where @rbeeli created a [proof-of-concept Shiki integration](https://rbeeli.github.io/Documenter.jl/docs/build/man/guide/). Other options like JuliaSyntaxHighlighting.jl have also been discussed, but these solutions are not yet integrated into Documenter.jl.

There’s also DocumenterVitepress.jl, which leverages VitePress’s built-in Shiki support. However, migrating existing projects to VitePress requires significant changes to your documentation workflow.

**PkgTemplatesShikiPlugin** takes a different approach:

- Extends Documenter.jl directly with Shiki support
- Maintains your existing Documenter.jl workflow
- Makes it easy to start new projects with high-quality syntax highlighting

## Links

- **GitHub** : [GitHub - hsugawa8651/PkgTemplatesShikiPlugin.jl](https://github.com/hsugawa8651/PkgTemplatesShikiPlugin.jl)
- **Demo** : [Home · DocumenterShikiDemo](https://hsugawa8651.github.io/DocumenterShikiDemo.jl/dev/)

## Feedback Welcome!

I’d love to hear your thoughts and feedback. Please try it out and let me know what you think!

If you encounter any issues or have suggestions, please open an issue on GitHub.

Happy documenting! 📚

## Upcoming Talk

**[JuliaLang Japan 2025](https://julialangja.github.io/julialangja2025/)** - December 13, 2025, 13:00-18:20 JST. Available online via Zoom. The talk will be in Japanese only, sorry!

---

<div class="post-metadata">

**Author:** ![jakobjpeters](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jakobjpeters/32/207797_2.png) [@jakobjpeters](https://discourse.julialang.org/u/jakobjpeters)\
**Post date:** [December 11, 2025, 3:55am UTC](https://discourse.julialang.org/t/ann-pkgtemplatesshikiplugin-jl-add-shikistyle-syntax-highlighting-presenting-at-julialang-japan-2025-dec-13/134487/2 "2025-12-11T03:55:21Z")

</div>

Love this! Better syntax highlighting would across the ecosystem would be awesome.  
Here’s a link to the comparison gallery for curious folks:

> **[Shiki vs Highlight.js Quality Comparison - Gallery · DocumenterShikiDemo](https://hsugawa8651.github.io/DocumenterShikiDemo.jl/dev/gallery/#Shiki-vs-Highlight.js-Quality-Comparison)**
>
> Documentation for DocumenterShikiDemo.
