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.json
The 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.json
downloaded from the google docs API. Needed to use thefetch
command.fetch
: Download a document and optionally convert it.gdexport help fetch
for more information.convert
: Convert a document on disk.gdexport help convert
for more information.serve
: Boot the UI to do online conversions. Starts onhttp://localhost:4000
by 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