{"id":28530222,"url":"https://github.com/jasiek-net/google-docs-to-markdown","last_synced_at":"2026-05-08T05:32:14.535Z","repository":{"id":218058967,"uuid":"525058584","full_name":"jasiek-net/google-docs-to-markdown","owner":"jasiek-net","description":"Save Google Docs in Markdown format","archived":false,"fork":false,"pushed_at":"2022-08-26T16:00:54.000Z","size":74,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-09T14:17:09.998Z","etag":null,"topics":["gatsby","gatsby-markdown","google-docs","google-drive","jekyll","jekyll-markdow","markdown"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jasiek-net.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-08-15T16:26:41.000Z","updated_at":"2023-01-24T00:58:03.000Z","dependencies_parsed_at":"2024-01-19T14:06:02.263Z","dependency_job_id":null,"html_url":"https://github.com/jasiek-net/google-docs-to-markdown","commit_stats":null,"previous_names":["jasiek-net/google-docs-to-markdown"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jasiek-net/google-docs-to-markdown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasiek-net%2Fgoogle-docs-to-markdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasiek-net%2Fgoogle-docs-to-markdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasiek-net%2Fgoogle-docs-to-markdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasiek-net%2Fgoogle-docs-to-markdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jasiek-net","download_url":"https://codeload.github.com/jasiek-net/google-docs-to-markdown/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jasiek-net%2Fgoogle-docs-to-markdown/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264042762,"owners_count":23548446,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gatsby","gatsby-markdown","google-docs","google-drive","jekyll","jekyll-markdow","markdown"],"created_at":"2025-06-09T14:13:56.757Z","updated_at":"2026-05-08T05:32:09.508Z","avatar_url":"https://github.com/jasiek-net.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GD2MD\n\nThis is a simple wrapper around [gatsby-source-google-docs](https://github.com/cedricdelpoux/gatsby-source-google-docs). It allows you to export Google Drive to Markdown with keeping folders structure and downloading all images. Before running the script prepare `.env` file and run steps below. For more details checkout offical documentation of [gatsby-source-google-docs](https://github.com/cedricdelpoux/gatsby-source-google-docs).\n\n```\nyarn install\ncp ./gatsby-source-filesystem.js ./node_modules/gatsby-source-filesystem/index.js\ncp ./gsgd-google-drive.js ./node_modules/gatsby-source-google-docs/utils/google-drive.js\ncp ./gsgd-google-document.js ./node_modules/gatsby-source-google-docs/utils/google-document.js\nts-node index.ts\n```\n\n#### Structure of the .env file\n```\nGOOGLE_OAUTH_CLIENT_ID=\nGOOGLE_OAUTH_CLIENT_SECRET=\nGOOGLE_DOCS_TOKEN=\nGOOGLE_DOCS_FOLDER=\nMARKDOWN_PATH=\nIMAGES_PATH=\n```\nTo generate google oauth variables, you can use script from `gatsby-source-google-docs`:\n```\nnpx gatsby-source-google-docs-token\n```\n## Features\n- save markdown locally\n- save images locally\n- first image as cover\n- frontmatter in Google Docs\n- jekyll filename convention\n\n### Cover image\nIf you put image as a first element in Google Docs, it will be moved to frontmatter.\n```\ncover:\n  image: /path/to/image.png\n  alt: 'Alt text'\n  title: 'Title text'\n```\n\n### Frontmatter in Docs\nJust put frontmatter in your Google Docs, this script will remove it from markdown body and put in the header!\n```\ntags: [Hello, World]\ndescription: 'Some important description'\n```\n\n### Filename convention\nIf you use jekyll naming convention in Google Drive (`2022-08-22 Hello world!`), it will be treated in jekyll's way:\n\nFields where date will be kept:\n```\nname: 2022-08-22 Hello world!\npath: /post/2022-08-22-hello-world\n```\n\nFields were date will be removed:\n```\ntitle: Hello world!\nslug: /post/hello-world\nbreadcrumbs: \n    - { name: post, slug: /post }\n    - { name: 'Hello world!', slug: /post/hello-world }\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasiek-net%2Fgoogle-docs-to-markdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjasiek-net%2Fgoogle-docs-to-markdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjasiek-net%2Fgoogle-docs-to-markdown/lists"}