I did a thing, I'm gonna blog about it
This commit is contained in:
parent
f6c113102d
commit
8b4653769c
1 changed files with 25 additions and 0 deletions
25
posts/2025-02-13-go-module-imports.md
Normal file
25
posts/2025-02-13-go-module-imports.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
title: Custom import paths for Go modules
|
||||||
|
published_on: '2025-02-13'
|
||||||
|
---
|
||||||
|
|
||||||
|
Go modules are great. URL-based imports, generally, are great. One of the things that makes them so great is that putting them on your own domain provides a good way of verifying ownership without going through a third party or a complicated review process. Plus, it looks cool.
|
||||||
|
|
||||||
|
So, how exactly do you do such a thing? Well, it's [buried in the documentation](https://pkg.go.dev/cmd/go#hdr-Remote_import_paths), but it's really pretty simple. For each import path (e.g. `mysite.com/mypackage`), just put a page on your website with a `go-import` meta tag:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="go-import" content="mysite.com/mypackage git https://ultragreatgithost.com/me/mypackage">
|
||||||
|
```
|
||||||
|
|
||||||
|
_(`git` can be replaced with `bzr`, `fossil`, `hg`, or `svn` for different VCSs — see the docs page linked above.)_
|
||||||
|
|
||||||
|
This website, for instance, builds these pages from a hash in [`build.rb`](https://git.farthergate.com/sites/farthergate.com/-/blob/main/build.rb):
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
def go_modules = {
|
||||||
|
"farthergate.com/stack" => "https://git.farthergate.com/aleks/stack",
|
||||||
|
# ...
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
See [farthergate.com/stack](/stack) for the generated page. Look in the web inspector for the `meta` tag!
|
Loading…
Add table
Add a link
Reference in a new issue