Neatly Packaged Modules

    prettier-plugin-go-template
    TypeScript icon, indicating that this package has built-in type declarations

    0.0.13 • Public • Published

    prettier-plugin-go-template

    NPM Badge CodeCov Badge Contributions Badge

    Formatter plugin for go template files. The only peer dependency is prettier. Test you own code on the playground.

    npm install --save-dev prettier prettier-plugin-go-template

    The following file types are detected automatically: .gohtml, .gotmpl, .go.tmpl, .tmpl, .tpl, .html.tmpl

    Input Output
    {{ if or .Prev .Next -}}
    {{ $p := where site.Pages }}
    <div class="my-navigation">
    {{ with $p.Next . -}}
    <a href="{{ .RelPermalink }}">
    <div class="row">
    <div class="cell py-2">
      {{ .Title }} 
    </div> </div> </a>
    {{ end -}}
    </div>
    {{ end -}}
    {{ if or .Prev .Next -}}
      {{ $p := where site.Pages }}
      <div class="my-navigation">
        {{ with $p.Next . -}}
          <a href="{{ .RelPermalink }}">
            <div class="row">
              <div class="cell py-2">{{ .Title }}</div>
            </div>
          </a>
        {{ end -}}
      </div>
    {{ end -}}

    GoHugo / .html

    To use it with GoHugo and basic .html files, you'll have to override the used parser inside your .prettierrc file:

    {
      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 how to set it up – should be doable in less than a minute if you have npm & VSCode already running.

    Additional Options

    // .prettierrc
    {
      /**
       * Enables & disables spacing between go statements.
       * E.g. {{ statement }} vs {{statement}}.
       * Default: true
       */
      "goTemplateBracketSpacing": true
    }

    Ignoring Code

    Single Block

    <div>
      <!-- prettier-ignore -->
      {{if }}
      {{end }}
    </div>

    Multiline

    <html>
      {{/* prettier-ignore-start */}}
      <script>
        {{if }}
        Whatever.
        {{else }}
        Psych.
        {{end }}
      </script>
      {{/* prettier-ignore-end */}}
    </html>

    Changelog

    v0.0.12

    • Fix several formatting issues
    • Improve unformattable script & style detection
    • Huge thanks to @jasikpark for validating & cleaning up the issues 🎉

    v0.0.11

    • AST rewrite
    • Fix inline actions
    • If / Else / Else-If support
    • Ignore formatting for blocks with `{{/* prettier-ignore */}}
    • Ignore large code sections with `{{/* prettier-ignore-start /}}...{{/ prettier-ignore-end */}}
    • Tweak general formatting
    • Support for multiline actions

    v0.0.10

    • Resolve bug #19: Fix template comments.

    v0.0.9

    • Resolve bug of single line if statements.

    v0.0.8

    • Go block statements will now be indented accordingly. Except for else.
      • if, range, block, with, define, end

    v0.0.7

    • Fix broken shortcodes. Thanks to @alqu for discovering & fixing the bug.

    Contributors

    Thanks goes to these wonderful people (emoji key):


    alqu

    🐛 ⚠️ 💻

    Gabriel Monteagudo

    🐛

    Bryan

    🐛

    Andreas Richter

    🐛

    Noah Brenner

    💻 📖

    silverwind

    🤔

    Charles Pence

    🐛

    Caleb Jasik

    🐛 📖 💡 🤔 🚧 💬

    Dan Gold

    🐛

    This project follows the all-contributors specification. Contributions of any kind welcome!

    Install

    npm i prettier-plugin-go-template

    DownloadsWeekly Downloads

    6,549

    Version

    0.0.13

    License

    MIT

    Unpacked Size

    76.3 kB

    Total Files

    9

    Last publish

    Collaborators

    • niklaspor