From 83f9f05c39ec34f3cfafd9b93ba92429eec6442a Mon Sep 17 00:00:00 2001 From: James Taylor Date: Thu, 24 Mar 2022 16:04:39 +0000 Subject: [PATCH] [WIP] Add github pages documentation Generate API documentation for the .proto files Signed-off-by: James Taylor --- .gitignore | 1 + Makefile | 17 ++- buf.gen.yaml | 6 + docs/.gitignore | 7 + docs/404.md | 6 + docs/Gemfile | 7 + docs/Gemfile.lock | 286 +++++++++++++++++++++++++++++++++++++ docs/README.md | 1 + docs/_config.yaml | 20 +++ docs/_includes/footer.html | 0 docs/_includes/header.html | 22 +++ docs/index.md | 38 +++++ 12 files changed, 410 insertions(+), 1 deletion(-) create mode 100644 docs/.gitignore create mode 100644 docs/404.md create mode 100644 docs/Gemfile create mode 100644 docs/Gemfile.lock create mode 100644 docs/README.md create mode 100644 docs/_config.yaml create mode 100644 docs/_includes/footer.html create mode 100644 docs/_includes/header.html create mode 100644 docs/index.md diff --git a/.gitignore b/.gitignore index 4a01c6b6..12aff8f1 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,6 @@ .idea .vscode +/docs/protos.md /google /bindings/node/src diff --git a/Makefile b/Makefile index e0364f9b..6338781f 100644 --- a/Makefile +++ b/Makefile @@ -30,6 +30,7 @@ BUF_VERSION := 1.1.1 BUF_INSTALL_FROM_SOURCE := false PROTOC_VERSION := 3.19.4 +PROTOC_GEN_DOC_VERSION := 1.5.1 GRPC_TOOLS_VERSION := 1.11.2 TS_PROTOC_GEN_VERSION := 0.15.0 @@ -103,6 +104,20 @@ $(PROTOC): @mkdir -p $(dir $(PROTOC)) @touch $(PROTOC) +# PROTOC_GEN_DOC points to the marker file for the installed version. +# +# If PROTOC_GEN_DOC_VERSION is changed, the binary will be re-downloaded. +PROTOC_GEN_DOC := $(CACHE_VERSIONS)/protoc-gen-doc/$(PROTOC_GEN_DOC_VERSION) +$(PROTOC_GEN_DOC): + @rm -f $(CACHE_BIN)/protoc-gen-doc + @mkdir -p $(CACHE_BIN) + $(eval PROTOC_GEN_DOC_TMP := $(shell mktemp -d)) + cd $(PROTOC_GEN_DOC_TMP); go get github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@v$(PROTOC_GEN_DOC_VERSION) + @rm -rf $(PROTOC_GEN_DOC_TMP) + @rm -rf $(dir $(PROTOC_GEN_DOC)) + @mkdir -p $(dir $(PROTOC_GEN_DOC)) + @touch $(PROTOC_GEN_DOC) + # GRPC_TOOLS points to the marker file for the installed version. # # If GRPC_TOOLS_VERSION is changed, the binary will be re-downloaded. @@ -172,7 +187,7 @@ $(GRPC_STATUS_PROTO): -o "$(GRPC_STATUS_PROTO)" .PHONY: genprotos -genprotos: $(BUF) $(PROTOC) $(GRPC_TOOLS) $(TS_PROTOC_GEN) $(GRPC_STATUS_PROTO) +genprotos: $(BUF) $(PROTOC) $(PROTOC_GEN_DOC) $(GRPC_TOOLS) $(TS_PROTOC_GEN) $(GRPC_STATUS_PROTO) buf generate --template buf.gen.yaml .PHONY: gennode diff --git a/buf.gen.yaml b/buf.gen.yaml index b32c25c2..9f1c5c1b 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -1,5 +1,11 @@ version: v1 plugins: + - name: doc + out: docs + opt: + - markdown + - protos.md + strategy: all - name: js out: bindings/node/src opt: diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000..74a9223a --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,7 @@ +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata +# Ignore folders generated by Bundler +.bundle/ +vendor/ diff --git a/docs/404.md b/docs/404.md new file mode 100644 index 00000000..2eb2593a --- /dev/null +++ b/docs/404.md @@ -0,0 +1,6 @@ +--- +title: "404 - Page Not Found" +permalink: /404.html +--- + +## The page you wanted does not exist diff --git a/docs/Gemfile b/docs/Gemfile new file mode 100644 index 00000000..d3e4e787 --- /dev/null +++ b/docs/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + +gem 'rake' +gem 'github-pages' +gem 'jekyll-optional-front-matter' +gem 'jekyll-titles-from-headings' +gem 'jekyll-relative-links' diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock new file mode 100644 index 00000000..fa30fb9c --- /dev/null +++ b/docs/Gemfile.lock @@ -0,0 +1,286 @@ +GEM + remote: https://rubygems.org/ + specs: + activesupport (6.0.4.7) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + zeitwerk (~> 2.2, >= 2.2.2) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + coffee-script (2.4.1) + coffee-script-source + execjs + coffee-script-source (1.11.1) + colorator (1.1.0) + commonmarker (0.23.4) + concurrent-ruby (1.1.10) + dnsruby (1.61.9) + simpleidn (~> 0.1) + em-websocket (0.5.3) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0) + ethon (0.15.0) + ffi (>= 1.15.0) + eventmachine (1.2.7) + execjs (2.8.1) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.3) + multipart-post (>= 1.2, < 3) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + ffi (1.15.5) + forwardable-extended (2.6.0) + gemoji (3.0.1) + github-pages (225) + github-pages-health-check (= 1.17.9) + jekyll (= 3.9.0) + jekyll-avatar (= 0.7.0) + jekyll-coffeescript (= 1.1.1) + jekyll-commonmark-ghpages (= 0.2.0) + jekyll-default-layout (= 0.1.4) + jekyll-feed (= 0.15.1) + jekyll-gist (= 1.5.0) + jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) + jekyll-mentions (= 1.6.0) + jekyll-optional-front-matter (= 0.3.2) + jekyll-paginate (= 1.1.0) + jekyll-readme-index (= 0.3.0) + jekyll-redirect-from (= 0.16.0) + jekyll-relative-links (= 0.6.1) + jekyll-remote-theme (= 0.4.3) + jekyll-sass-converter (= 1.5.2) + jekyll-seo-tag (= 2.8.0) + jekyll-sitemap (= 1.4.0) + jekyll-swiss (= 1.0.0) + jekyll-theme-architect (= 0.2.0) + jekyll-theme-cayman (= 0.2.0) + jekyll-theme-dinky (= 0.2.0) + jekyll-theme-hacker (= 0.2.0) + jekyll-theme-leap-day (= 0.2.0) + jekyll-theme-merlot (= 0.2.0) + jekyll-theme-midnight (= 0.2.0) + jekyll-theme-minimal (= 0.2.0) + jekyll-theme-modernist (= 0.2.0) + jekyll-theme-primer (= 0.6.0) + jekyll-theme-slate (= 0.2.0) + jekyll-theme-tactile (= 0.2.0) + jekyll-theme-time-machine (= 0.2.0) + jekyll-titles-from-headings (= 0.5.3) + jemoji (= 0.12.0) + kramdown (= 2.3.1) + kramdown-parser-gfm (= 1.1.0) + liquid (= 4.0.3) + mercenary (~> 0.3) + minima (= 2.5.1) + nokogiri (>= 1.12.5, < 2.0) + rouge (= 3.26.0) + terminal-table (~> 1.4) + github-pages-health-check (1.17.9) + addressable (~> 2.3) + dnsruby (~> 1.60) + octokit (~> 4.0) + public_suffix (>= 3.0, < 5.0) + typhoeus (~> 1.3) + html-pipeline (2.14.1) + activesupport (>= 2) + nokogiri (>= 1.4) + http_parser.rb (0.8.0) + i18n (0.9.5) + concurrent-ruby (~> 1.0) + jekyll (3.9.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (>= 1.17, < 3) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-avatar (0.7.0) + jekyll (>= 3.0, < 5.0) + jekyll-coffeescript (1.1.1) + coffee-script (~> 2.2) + coffee-script-source (~> 1.11.1) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.2.0) + commonmarker (~> 0.23.4) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) + rouge (>= 2.0, < 4.0) + jekyll-default-layout (0.1.4) + jekyll (~> 3.0) + jekyll-feed (0.15.1) + jekyll (>= 3.7, < 5.0) + jekyll-gist (1.5.0) + octokit (~> 4.2) + jekyll-github-metadata (2.13.0) + jekyll (>= 3.4, < 5.0) + octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) + jekyll-mentions (1.6.0) + html-pipeline (~> 2.3) + jekyll (>= 3.7, < 5.0) + jekyll-optional-front-matter (0.3.2) + jekyll (>= 3.0, < 5.0) + jekyll-paginate (1.1.0) + jekyll-readme-index (0.3.0) + jekyll (>= 3.0, < 5.0) + jekyll-redirect-from (0.16.0) + jekyll (>= 3.3, < 5.0) + jekyll-relative-links (0.6.1) + jekyll (>= 3.3, < 5.0) + jekyll-remote-theme (0.4.3) + addressable (~> 2.0) + jekyll (>= 3.5, < 5.0) + jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) + rubyzip (>= 1.3.0, < 3.0) + jekyll-sass-converter (1.5.2) + sass (~> 3.4) + jekyll-seo-tag (2.8.0) + jekyll (>= 3.8, < 5.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-swiss (1.0.0) + jekyll-theme-architect (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-cayman (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-dinky (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-hacker (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-leap-day (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-merlot (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-midnight (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-minimal (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-modernist (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-primer (0.6.0) + jekyll (> 3.5, < 5.0) + jekyll-github-metadata (~> 2.9) + jekyll-seo-tag (~> 2.0) + jekyll-theme-slate (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-tactile (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-theme-time-machine (0.2.0) + jekyll (> 3.5, < 5.0) + jekyll-seo-tag (~> 2.0) + jekyll-titles-from-headings (0.5.3) + jekyll (>= 3.3, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + jemoji (0.12.0) + gemoji (~> 3.0) + html-pipeline (~> 2.2) + jekyll (>= 3.0, < 5.0) + kramdown (2.3.1) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.3) + listen (3.7.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + minima (2.5.1) + jekyll (>= 3.5, < 5.0) + jekyll-feed (~> 0.9) + jekyll-seo-tag (~> 2.1) + minitest (5.15.0) + multipart-post (2.1.1) + nokogiri (1.13.3-x86_64-darwin) + racc (~> 1.4) + octokit (4.22.0) + faraday (>= 0.9) + sawyer (~> 0.8.0, >= 0.5.3) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + public_suffix (4.0.6) + racc (1.6.0) + rake (13.0.6) + rb-fsevent (0.11.1) + rb-inotify (0.10.1) + ffi (~> 1.0) + rexml (3.2.5) + rouge (3.26.0) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + safe_yaml (1.0.5) + sass (3.7.4) + sass-listen (~> 4.0.0) + sass-listen (4.0.0) + rb-fsevent (~> 0.9, >= 0.9.4) + rb-inotify (~> 0.9, >= 0.9.7) + sawyer (0.8.2) + addressable (>= 2.3.5) + faraday (> 0.8, < 2.0) + simpleidn (0.2.1) + unf (~> 0.1.4) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thread_safe (0.3.6) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (1.2.9) + thread_safe (~> 0.1) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.1) + unicode-display_width (1.8.0) + zeitwerk (2.5.4) + +PLATFORMS + x86_64-darwin-20 + +DEPENDENCIES + github-pages + jekyll-optional-front-matter + jekyll-relative-links + jekyll-titles-from-headings + rake + +BUNDLED WITH + 2.2.15 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..c68d8bc6 --- /dev/null +++ b/docs/README.md @@ -0,0 +1 @@ +This is a template for the Jeykll site published to the gh-pages branch. diff --git a/docs/_config.yaml b/docs/_config.yaml new file mode 100644 index 00000000..a8d92716 --- /dev/null +++ b/docs/_config.yaml @@ -0,0 +1,20 @@ +theme: minima +title: "fabric-protos" +header_pages: + - protos.md + +defaults: + - + scope: + path: "" + type: "pages" + values: + layout: "page" + +optional_front_matter: + remove_originals: true + +plugins: + - jekyll-optional-front-matter + - jekyll-titles-from-headings + - jekyll-relative-links diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/_includes/header.html b/docs/_includes/header.html new file mode 100644 index 00000000..f8ebe23e --- /dev/null +++ b/docs/_includes/header.html @@ -0,0 +1,22 @@ + diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..23d00f5d --- /dev/null +++ b/docs/index.md @@ -0,0 +1,38 @@ +--- +layout: home +--- + +Hyperledger Fabric Protocol buffers + +## Download + +Pregenerated libraries are available for Go, Java, and Node.js + +### Go + +``` +go get -u github.com/hyperledger/fabric-protos-go +``` + +### Java + +``` + + org.hyperledger.fabric + fabric-protos + ${fabricProtosVersion} + +``` + +### Node.js + +``` +npm install @hyperledger/fabric-protos +``` + +## Documentation + +- [API](protos.md) +- [Java library](https://search.maven.org/artifact/org.hyperledger.fabric/fabric-protos) +- [Go module](https://pkg.go.dev/github.com/hyperledger/fabric-protos-go?tab=doc) +- [Node module](https://www.npmjs.com/package/@hyperledger/fabric-protos)