grpc / grpc.io

Repository for the gRPC website and documentation
https://grpc.io
Other
424 stars 449 forks source link

gRPC website

The grpc.io site, built using Hugo and hosted on Netlify.

Build prerequisites

To build and serve the site, you'll need the latest LTS release of Node. Install it using nvm, for example:

$ nvm install --lts

Setup

  1. Clone this repo.
  2. From a terminal window, change to the cloned repo directory.
  3. Get NPM packages and git submodules, including the the Docsy theme:
    $ npm install 

Build the site

Run the following command to have Hugo generate the site files:

$ npm run build

You'll find the generated site files in the public folder.

Serve the site locally

To locally serve the site at localhost:8888, run the following command:

$ npm run serve

Setup Google Analytics (GA) and Google Tag Manager (GTM)

  1. Google Analytics (GA):

    • Follow the GA setup guide to create your account, property, and data stream.
    • Update config.yaml with your GA Measurement ID:
    params:
     googleAnalytics: "G-XXXXXXXXXX" # Replace with your GA Measurement ID

    Verify GA setup using real-time reports to ensure data from your website is being tracked.

  2. Google Tag Manager (GTM):

    • Follow the GTM setup guide to create your account and container.
    • Update config.yaml with your GTM ID:
    params:
     gtmID: "GTM-XXXXXXXX" # Replace with your GTM ID

    Check GTM setup using Preview mode and verify that Tag Assistant displays "Connected" for your website URL.

Build the site by setting Hugo environment to production to make sure GA and GTM work.

$ HUGO_ENV=production npm run serve

Site deploys and PR previews

If you submit a PR, Netlify will create a deploy preview so that you can review your changes. Once your PR is merged, Netlify deploys the updated site to the production server.

Note: PR previews include draft pages, but production builds do not.

To see deploy logs and more, visit project's dashboard -- Netlify login required.

Check links

If you have htmltest in your path, then you can check the site's internal links by running this command:

$ npm run check-links

You can check all links (internal and external) as well:

$ npm run check-links:all

Contribute

We welcome issues and PRs! For details, see Contribute.