v1.6.0 Editor-only Zero dependencies MIT License

Stop copy-pasting docs into your Unity project.

gdoc pulls Google Docs into your project as clean Markdown, extracts images, and renders everything with 11 professional themes. Automatically.


Documentation breaks when it's maintained by hand.

Your team writes in Google Docs because that's where collaboration happens. But your Unity project needs those docs as local files — for reference, for onboarding, for AI agents that read your codebase.

So someone copies. Pastes. Reformats. Extracts images manually. Does it again next week when the doc changes. Over time, local docs drift from their source. New team members can't tell which version is current.

The problem isn't the writing. It's the absence of a pipeline between where you write and where you need it.

  • Sync decay. Every manual copy is a snapshot that starts aging immediately. Docs drift within days.
  • Image extraction. Embedded images require manual export, naming, and folder organization. Per document. Per update.
  • Multiplicative cost. Each additional document multiplies the maintenance. Ten docs means ten manual syncs.
  • Agent blindness. AI agents reading your project see stale or missing documentation. Their output quality drops accordingly.

Three steps. Then it runs itself.

gdoc exports Google Docs via their public Markdown endpoint, normalizes the output, and keeps everything organized. No API keys. No OAuth. No build step.

1

Configure sources

Add Google Doc URLs or document IDs to a centralized settings asset. Set your output directory. Toggle auto-pull on editor startup.

2

Sync automatically

gdoc downloads each doc as Markdown, normalizes line endings, and extracts base64 images to organized folders. Files are named from the doc title. Status and errors are tracked per source.

3

View inside Unity

Open any .md file in the built-in viewer. Full GFM rendering with sidebar navigation, document outline, and your choice of 11 themes.


Read documentation without leaving the editor.

Full GitHub Flavored Markdown rendering with headings, code blocks, tables, blockquotes, task lists, alerts, clickable links, and inline HTML — all themed.

gdoc Viewer — Design Guide.md Dark

Project Design Guide

The system uses a ComponentPool<T> to manage entity lifecycle. See the Architecture Overview for the full dependency graph.

Note
All pool sizes are configurable at runtime via PoolConfig ScriptableObjects.

Entity Spawn Flow

csharp var entity = pool.Get(); entity.Initialize(spawnPoint.position); entity.OnDespawn += () => pool.Return(entity);
  • Implement object pooling
  • Add configurable pool sizes
  • Profile allocation pressure under load

Everything you need. Nothing you don't.

gdoc is editor-only by design. No runtime overhead. No build impact. No external dependencies.

Auto-Sync Engine

Pulls on editor startup with a configurable minimum interval. Batch all sources or sync individually. Tracks timestamps and errors per document.

🖼

Image Extraction

Detects base64-encoded images in Google Doc exports and saves them to organized folders alongside each document. No manual work required.

Full GFM Support

Tables with column alignment, fenced and indented code blocks, task lists, nested blockquotes, strikethrough, GitHub-style alerts, and inline HTML tags.

🔗

Clickable Links

External URLs open in your browser. Relative .md paths open in the viewer. Multi-link paragraphs show a dropdown. Bare URLs and emails auto-link.

Sidebar Navigation

Toggleable sidebar with document outline, project-wide file browser, pinned favorites, and recent files. Resizable between 140-500px.

Inspector Integration

Select any .md file in the Project window — a "View as Markdown" button appears in the Inspector. Access settings and sync from the xrcadia menu.


Pick the theme that fits your workflow.

8 dark themes. 3 light themes. Built on an Open-Closed architecture — add your own without touching the renderer. Click any swatch to try it.

Dark
The original. Clean and focused. config.Init();
Dark
Solarized Dark
Ethan Schoonover's precision palette. config.Init();
Solarized Dark
Nord
Arctic Ice Studio's polar palette. config.Init();
Nord
Dracula
Dark with cyan and purple. config.Init();
Dracula
Monokai
Classic Sublime Text palette. config.Init();
Monokai
One Dark
Atom editor's iconic theme. config.Init();
One Dark
Gruvbox Dark
Retro groove color scheme. config.Init();
Gruvbox Dark
GitHub Dark
GitHub's dark mode palette. config.Init();
GitHub Dark
Paperwhite
Warm cream e-ink inspired. config.Init();
Paperwhite
Solarized Light
Schoonover's light variant. config.Init();
Solarized Light
GitHub
Clean white GitHub match. config.Init();
GitHub

Built for a specific workflow.

Built for

  • Unity teams that author documentation in Google Docs
  • Projects where AI agents need to reference local project docs
  • Teams managing multiple living documents across a project
  • Developers who want to read rendered Markdown without leaving the editor

Not built for

  • Runtime Markdown rendering — gdoc is editor-only by design
  • Pulling from private Google Docs that aren't published to the web
  • Replacing a full documentation site generator
  • Non-Google-Docs sources (Notion, Confluence, etc.)

Common questions.

Will it handle my Markdown syntax?
Full GitHub Flavored Markdown support. Tables with column alignment, fenced and indented code blocks, task lists, nested blockquotes, strikethrough, GitHub-style alerts (NOTE, TIP, IMPORTANT, WARNING, CAUTION), inline HTML tags, bare URL auto-linking, and language labels on code fences. 30+ compiled regex patterns cover the edge cases.
Will it affect my build size or runtime performance?
No. The entire package uses an editor-only assembly definition with includePlatforms: ["Editor"]. Zero code ships in your player build. Zero runtime overhead.
What about dependencies?
None. gdoc has no package dependencies. It uses only Unity's built-in UIElements and UnityWebRequest APIs. No third-party libraries.
Can I use it with private Google Docs?
Docs must be accessible via their public export URL. For restricted docs, use File → Share → Publish to web in Google Docs to make the content available. The published version updates as you edit the original.
How does auto-sync work?
On editor startup, gdoc checks the elapsed time since each source's last pull. If the configurable minimum interval has passed, it re-downloads all sources. Pull manually at any time from the settings panel. Status timestamps and errors are tracked per source.
Can I add custom themes?
Yes. The theme system follows the Open-Closed Principle. Create a sealed class extending MarkdownTheme, implement the 16 color properties, add it to the registry. No changes to rendering code required.
What Unity versions are supported?
Unity 6000.3 and above. The package uses UIElements for its editor UI, which is stable in Unity 6.

Add gdoc to your project.

Add the package via Unity Package Manager using the git URL, or add it directly to your project's manifest.

manifest.json

// Packages/manifest.json → "dependencies"
"com.xrcadia.gdoc": "https://github.com/xrcadia/gdoc.git"

Or copy the gdoc/ folder directly into your project's Packages/ directory.