From 715940234cf76a84726d0e2d637774af791c0bc3 Mon Sep 17 00:00:00 2001 From: Trevor Slocum Date: Tue, 5 Oct 2021 19:06:33 -0700 Subject: [PATCH] Add --disable-filter option Relates to #7. --- CHANGELOG | 3 +++ README.md | 1 - go.mod | 10 +++++----- go.sum | 23 ++++++++++++----------- main.go | 18 +++++++++++++++++- 5 files changed, 37 insertions(+), 18 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 9f9ddfd..9a1f6b3 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +0.2.1: +- Add --disable-filter option + 0.2.0: - Add --quiet option diff --git a/README.md b/README.md index 3a4b11a..b662c10 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # godoc-static -[![CI status](https://code.rocketnine.space/tslocum/godoc-static/raw/branch/master/badge.svg)](https://code.rocketnine.space/tslocum/godoc-static/commits/master) [![Donate](https://img.shields.io/liberapay/receives/rocketnine.space.svg?logo=liberapay)](https://liberapay.com/rocketnine.space) Generate static Go documentation diff --git a/go.mod b/go.mod index d8c2ef0..19782e7 100644 --- a/go.mod +++ b/go.mod @@ -3,10 +3,10 @@ module code.rocketnine.space/tslocum/godoc-static go 1.15 require ( - github.com/PuerkitoBio/goquery v1.6.1 - github.com/andybalholm/cascadia v1.2.0 // indirect - github.com/yuin/goldmark v1.3.5 - golang.org/x/mod v0.4.2 - golang.org/x/net v0.0.0-20210502030024-e5908800b52b + github.com/PuerkitoBio/goquery v1.7.1 + github.com/andybalholm/cascadia v1.3.1 // indirect + github.com/yuin/goldmark v1.4.1 + golang.org/x/mod v0.5.1 + golang.org/x/net v0.0.0-20211005215030-d2e5035098b3 golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect ) diff --git a/go.sum b/go.sum index b6616ca..2443338 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,21 @@ -github.com/PuerkitoBio/goquery v1.6.1 h1:FgjbQZKl5HTmcn4sKBgvx8vv63nhyhIpv7lJpFGCWpk= -github.com/PuerkitoBio/goquery v1.6.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= -github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= -github.com/andybalholm/cascadia v1.2.0 h1:vuRCkM5Ozh/BfmsaTm26kbjm0mIOM3yS5Ek/F5h18aE= +github.com/PuerkitoBio/goquery v1.7.1 h1:oE+T06D+1T7LNrn91B4aERsRIeCLJ/oPSa6xB9FPnz4= +github.com/PuerkitoBio/goquery v1.7.1/go.mod h1:XY0pP4kfraEmmV1O7Uf6XyjoslwsneBbgeDjLYuN8xY= github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxBp0T0eFw1RUQY= -github.com/yuin/goldmark v1.3.5 h1:dPmz1Snjq0kmkz159iL7S6WzdahUTHnHB5M56WFVifs= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c= +github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA= +github.com/yuin/goldmark v1.4.1 h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/mod v0.4.2 h1:Gz96sIWK3OalVv/I/qNygP42zyoKp3xptRVCWRFEBvo= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210502030024-e5908800b52b h1:jCRjgm6WJHzM8VQrm/es2wXYqqbq0NZ1yXFHHgzkiVQ= -golang.org/x/net v0.0.0-20210502030024-e5908800b52b/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211005215030-d2e5035098b3 h1:G64nFNerDErBd2KdvHvIn3Ee6ccUQBTfhDZEO0DccfU= +golang.org/x/net v0.0.0-20211005215030-d2e5035098b3/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= diff --git a/main.go b/main.go index e502fbe..558825c 100644 --- a/main.go +++ b/main.go @@ -37,6 +37,7 @@ var ( siteFooterFile string siteDestination string siteZip string + disableFilter bool linkIndex bool excludePackages string quiet bool @@ -67,6 +68,7 @@ func main() { flag.StringVar(&siteFooterFile, "site-footer-file", "", "path to markdown file containing site footer") flag.StringVar(&siteDestination, "destination", "", "path to write site HTML") flag.StringVar(&siteZip, "zip", "docs.zip", "name of site ZIP file (blank to disable)") + flag.BoolVar(&disableFilter, "disable-filter", false, `do not exclude packages named "testdata", "internal", or "cmd"`) flag.BoolVar(&linkIndex, "link-index", false, "set link targets to index.html instead of folder") flag.StringVar(&excludePackages, "exclude", "", "list of packages to exclude from index") flag.BoolVar(&quiet, "quiet", false, "disable all logging except errors") @@ -82,15 +84,25 @@ func main() { } } +var skipPackages = []string{"cmd", "internal", "testdata"} + func filterPkgsWithExcludes(pkgs []string) []string { excludePackagesSplit := strings.Split(excludePackages, " ") var tmpPkgs []string PACKAGEINDEX: for _, pkg := range pkgs { for _, excludePackage := range excludePackagesSplit { - if strings.Contains(pkg, "\\") || strings.Contains(pkg, "testdata") || strings.Contains(pkg, "internal") || pkg == "cmd" || pkg == excludePackage || strings.HasPrefix(pkg, excludePackage+"/") { + if pkg == excludePackage || strings.HasPrefix(pkg, excludePackage+"/") { continue PACKAGEINDEX } + + if !disableFilter { + for _, skipPackage := range skipPackages { + if strings.Contains(pkg, "/"+skipPackage+"/") || strings.HasSuffix(pkg, "/"+skipPackage) { + continue PACKAGEINDEX + } + } + } } tmpPkgs = append(tmpPkgs, pkg) } @@ -381,6 +393,10 @@ func run() error { return strings.ToLower(pkgs[i]) < strings.ToLower(pkgs[j]) }) + if !disableFilter { + filterPkgs = pkgs + } + done := make(chan error) go func() { var (