# prettier-plugin-go-template [![NPM Badge](https://img.shields.io/npm/v/prettier-plugin-go-template)](https://www.npmjs.com/package/prettier-plugin-go-template) [![CodeCov Badge](https://img.shields.io/codecov/c/github/niklaspor/prettier-plugin-go-template)](https://codecov.io/gh/NiklasPor/prettier-plugin-go-template) [![Contributions Badge](https://img.shields.io/github/all-contributors/niklaspor/prettier-plugin-go-template)](#contributors-) Formatter plugin for go template files. The only peer dependency is [prettier](https://www.npmjs.com/package/prettier). ```bash npm install --save-dev prettier prettier-plugin-go-template ``` Starting with Prettier 3 auto-discovery has been removed. Configuration is required ⬇️ ```json // .prettierrc { "plugins": ["prettier-plugin-go-template"] } ``` The following file types will be detected automatically: `.gohtml`, `.gotmpl`, `.go.tmpl`, `.tmpl`, `.tpl`, `.html.tmpl` If you want to add support for `.html` read the section on it below the examples.
Input Output
```html {{ if or .Prev .Next -}} {{ $p := where site.Pages }}
{{ with $p.Next . -}}
{{ .Title }}
{{ end -}}
{{ end -}} ```
```html {{ if or .Prev .Next -}} {{ $p := where site.Pages }}
{{ with $p.Next . -}}
{{ .Title }}
{{ end -}}
{{ end -}} ```
## GoHugo / `.html` To use it with GoHugo and basic `.html` files, you'll have to override the used parser inside your `.prettierrc` file: ```json { "plugins": ["prettier-plugin-go-template"] "overrides": [ { "files": ["*.html"], "options": { "parser": "go-template", }, }, ], } ``` ## VSCode Make sure to always have installed **both** dependencies: - `prettier` - `prettier-plugin-go-template` Also make sure that they are installed inside the same scope. Install both globally (`npm i -g`) or locally – otherwise prettier may not pick up the plugin. > Note: The global setup additional requires setting your VSCode prettier path to your global prettier path. You can read in [this issue](https://github.com/NiklasPor/prettier-plugin-go-template/issues/58#issuecomment-1085060511) how to set it up – should be doable in less than a minute if you have npm & VSCode already running. ## Additional Options ```js // .prettierrc { /** * Enables & disables spacing between go statements. * E.g. {{ statement }} vs {{statement}}. * Default: true */ "goTemplateBracketSpacing": true } ``` ## Ignoring Code #### Single Block ```html
{{if }} {{end }}
``` #### Multiline ```html {{/* prettier-ignore-start */}} {{/* prettier-ignore-end */}} ``` ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

alqu

🐛 ⚠️ 💻

Gabriel Monteagudo

🐛

Bryan

🐛

Andreas Richter

🐛

Noah Brenner

💻 📖

silverwind

🤔

Charles Pence

🐛

Caleb Jasik

🐛 📖 💡 🤔 🚧 💬

Dan Gold

🐛

Michael Lynch

🐛
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!