In this repository lives the gdexport command which will fetch Google Docs by URL and attempt to convert them to Markdown or just download them in the JSON representation that Google docs provides. It also provides a minimal UI if you'd prefer to go that route.
The formatting is not perfect yet and may not be for some time. This is still a beta work. Check out the examples directory for some output examples.
Check out the releases page.
Building requires a golang version 1.14 or greater currently. Many system packages will not work, so install Golang by hand if you need to.
First, create a credentials.json per this example (click on "enable the Google Docs API" and follow the prompts).
If you do not do the import-credentials step below, the fetch command will not work.
gdexport import-credentials credentials.jsonThe first time you launch the program to fetch a document, you will be prompted to visit something in your browser and insert a code to STDIN.
export GOBIN=$HOME/bin
go get -u github.com/erikh/gdocs-export/...There are the following sub-commands:
import-credentials: import acredentials.jsondownloaded from the google docs API. Needed to use thefetchcommand.fetch: Download a document and optionally convert it.gdexport help fetchfor more information.convert: Convert a document on disk.gdexport help convertfor more information.serve: Boot the UI to do online conversions. Starts onhttp://localhost:4000by default.
- Consolas is the font used to make code blocks. Set the font in gdocs to consolas to enable them.
- Image tags are not
![](), they are<img>in markdown; this is legal and we can use dimensions safer this way. - The markdown & html sanitizing code is not safe for automated use. Always validate the docs before you publish them.
- Bullets are differently laid out in html specifically with regards to inline paragraph and image content, because of the differences between gdocs and html in this regard.
Erik Hollensbe github@hollensbe.org