* feat: add docs update command for editing Google Docs * fix: handle document content range correctly for replace * docs: add Jarbas avatar * feat(gogcli): add markdown formatting support for Google Docs Phase 1 & 2 complete: - Markdown parser supporting headings, lists, code blocks, blockquotes, links - Google Docs API integration for formatting - --format markdown flag for docs update command - Heading styles (H1-H6), horizontal rules, list indentation - Code blocks with monospace font Pending (Phase 3): - Inline formatting (bold, italic, inline code) - index calculation issues - Links - index calculation issues Usage: gog docs update <docId> --content-file ./doc.md --format markdown * fix(gogcli): fix inline formatting indices in markdown formatter - Simplified document generation to avoid index calculation errors - Fixed ParseInlineFormatting to correctly track positions - Preserves: headings, code blocks, blockquotes, lists, horizontal rules Pending: inline formatting (bold, italic, code, links) - indices still need work * fix(gogcli): use UTF-16 code units for Google Docs API indexing - Fixed markdown formatter to use UTF-16 code units instead of UTF-8 bytes - Added utf16Len() helper function for accurate character counting - Fixed inline formatting indices (bold, italic, code, links) - Added empty line handling (MDEmptyLine) - Successfully tested with Docker course doc (21KB, emojis, diagrams) This resolves index mismatch errors caused by multi-byte characters like emojis which are 4 bytes in UTF-8 but 2 code units in UTF-16. * feat(gogcli): add slides commands with markdown support - Add 'gog slides update' command with markdown formatting - Create slides_formatter.go for Google Slides API batch updates - Create slides_markdown.go for markdown parsing (titles, bullets, code) - Add slides.go with update/create/read operations - Update googleauth service for Slides scope Related: PR #219 * fix(gogcli): use shapes for slides text boxes instead of direct insertion - Fixed slides creation to use CreateShape with TEXT_BOX instead of inserting text directly - Direct text insertion into slides is not supported by Google Slides API - Added title text box with bold 36pt font - Added body text box for content (bullets, paragraphs, code) - Supports markdown formatting (bold, bullets, code blocks) Tested: Successfully created 20-slide presentation from Docker course outline * feat: add markdown table support (formatted text output) * feat: implement native Google Docs table insertion with multi-step API * feat(slides): add --template flag for creating presentations from templates * fix: stabilize docs/slides markdown + auth flow (#219) (thanks @goncaloalves) --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
21 lines
513 B
Go
21 lines
513 B
Go
package googleapi
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"google.golang.org/api/slides/v1"
|
|
|
|
"github.com/steipete/gogcli/internal/googleauth"
|
|
)
|
|
|
|
func NewSlides(ctx context.Context, email string) (*slides.Service, error) {
|
|
if opts, err := optionsForAccount(ctx, googleauth.ServiceSlides, email); err != nil {
|
|
return nil, fmt.Errorf("slides options: %w", err)
|
|
} else if svc, err := slides.NewService(ctx, opts...); err != nil {
|
|
return nil, fmt.Errorf("create slides service: %w", err)
|
|
} else {
|
|
return svc, nil
|
|
}
|
|
}
|