Explorar el Código

Merge pull request #7413 from cpuguy83/7319_use_blackfriday_not_pandoc_for_manfile_gen

Use pure go markdown processor to generate man files
Tianon Gravi hace 11 años
padre
commit
45a239c168
Se han modificado 4 ficheros con 26 adiciones y 19 borrados
  1. 7 1
      Dockerfile
  2. 7 5
      docs/man/Dockerfile
  3. 11 12
      docs/man/README.md
  4. 1 1
      docs/man/md2man-all.sh

+ 7 - 1
Dockerfile

@@ -42,7 +42,6 @@ RUN	apt-get update && apt-get install -y \
 	libsqlite3-dev \
 	lxc=1.0* \
 	mercurial \
-	pandoc \
 	parallel \
 	reprepro \
 	ruby1.9.1 \
@@ -63,6 +62,7 @@ RUN	cd /usr/local/lvm2 && ./configure --enable-static_link && make device-mapper
 RUN	curl -sSL https://golang.org/dl/go1.3.src.tar.gz | tar -v -C /usr/local -xz
 ENV	PATH	/usr/local/go/bin:$PATH
 ENV	GOPATH	/go:/go/src/github.com/docker/docker/vendor
+ENV PATH /go/bin:$PATH
 RUN	cd /usr/local/go/src && ./make.bash --no-clean 2>&1
 
 # Compile Go for cross compilation
@@ -80,6 +80,12 @@ RUN	go get code.google.com/p/go.tools/cmd/cover
 # TODO replace FPM with some very minimal debhelper stuff
 RUN	gem install --no-rdoc --no-ri fpm --version 1.0.2
 
+# Install man page generator
+RUN mkdir -p /go/src/github.com/cpuguy83 \
+    && git clone -b v1 https://github.com/cpuguy83/go-md2man.git /go/src/github.com/cpuguy83/go-md2man \
+    && cd /go/src/github.com/cpuguy83/go-md2man \
+    && go get -v ./...
+
 # Get the "busybox" image source so we can build locally instead of pulling
 RUN	git clone -b buildroot-2014.02 https://github.com/jpetazzo/docker-busybox.git /docker-busybox
 

+ 7 - 5
docs/man/Dockerfile

@@ -1,5 +1,7 @@
-FROM fedora:20
-MAINTAINER ipbabble <emailwhenry@redhat.com>
-# Update and install pandoc
-RUN yum -y update; yum clean all;
-RUN yum -y install pandoc;
+FROM golang:1.3
+RUN mkdir -p /go/src/github.com/cpuguy83
+RUN mkdir -p /go/src/github.com/cpuguy83 \
+    && git clone -b v1 https://github.com/cpuguy83/go-md2man.git /go/src/github.com/cpuguy83/go-md2man \
+    && cd /go/src/github.com/cpuguy83/go-md2man \
+    && go get -v ./...
+CMD ["/go/bin/go-md2man", "--help"]

+ 11 - 12
docs/man/README.md

@@ -44,27 +44,26 @@ Markdown (*.md) files.
 
 # Generating man pages from the Markdown files
 
-The recommended approach for generating the man pages is via a  Docker 
-container. Using the supplied Dockerfile, Docker will create a Fedora based 
-container and isolate the Pandoc installation. This is a seamless process, 
-saving you from dealing with Pandoc and dependencies on your own computer.
+The recommended approach for generating the man pages is via a Docker
+container using the supplied `Dockerfile` to create an image with the correct
+environment. This uses `go-md2man`, a pure Go Markdown to man page generator.
 
-## Building the Fedora / Pandoc image
+## Building the md2man image
 
-There is a Dockerfile provided in the `docker/docs/man` directory.
+There is a `Dockerfile` provided in the `docker/docs/man` directory.
 
-Using this Dockerfile, create a Docker image tagged `fedora/pandoc`:
+Using this `Dockerfile`, create a Docker image tagged `docker/md2man`:
 
-    docker build  -t fedora/pandoc .
+    docker build -t docker/md2man .
 
-## Utilizing the Fedora / Pandoc image
+## Utilizing the image
 
 Once the image is built, run a container using the image with *volumes*:
 
-    docker run -v /<path-to-git-dir>/docker/docs/man:/pandoc:rw \
-    -w /pandoc -i fedora/pandoc /pandoc/md2man-all.sh
+    docker run -v /<path-to-git-dir>/docker/docs/man:/docs:rw \
+    -w /docs -i docker/md2man /docs/md2man-all.sh
 
-The Pandoc Docker container will process the Markdown files and generate
+The `md2man` Docker container will process the Markdown files and generate
 the man pages inside the `docker/docs/man/man1` directory using
 Docker volumes. For more information on Docker volumes see the man page for
 `docker run` and also look at the article [Sharing Directories via Volumes]

+ 1 - 1
docs/man/md2man-all.sh

@@ -18,5 +18,5 @@ for FILE in *.md; do
 		continue
 	fi
 	mkdir -p "./man${num}"
-	pandoc -s -t man "$FILE" -o "./man${num}/${name}"
+	go-md2man -in "$FILE" -out "./man${num}/${name}"
 done