The gap
gog slides has no paragraph-level command. style-text covers character style, bullets toggles list bullets, and table cell style --content-align covers vertical alignment inside a table cell. Nothing reaches updateParagraphStyle, so there is no way to set:
alignment (START / CENTER / END / JUSTIFIED)
lineSpacing
spaceAbove / spaceBelow
indentStart / indentEnd / indentFirstLine
direction
Why it bites
Corporate templates commonly set body placeholder paragraphs to centred. Text written into a shape with insert-text inherits the paragraph style in force, so a left-reading list of bullet lines lands centred and reads as a ragged column. A deck built as native shapes, which is the only route on tenants where image insertion is refused, is therefore unfinished after create-shape + style + insert-text + style-text: the text is the right size, weight and colour, and still in the wrong place.
There is also no way back. element style does not touch text, and re-inserting the text inherits the same paragraph style again.
The practical consequence is that a script otherwise entirely driven by gog has to open a Google API client library for one updateParagraphStyle request, purely because the CLI cannot express it. That is a single-purpose second auth path for one field.
Manual bullets are the second symptom
With no indentFirstLine / indentStart, a manually written bullet line that wraps returns flush left on its second line and reads as a new item. bullets creates native list bullets but gives no control over the hanging indent, so hand-drawn bullet glyphs inside a shape cannot be made to hang.
Proposed surface
Mirror style-text, which already takes an object id and a UTF-16 range:
gog slides paragraph-style <presentationId> <objectId> [flags]
--range=STRING UTF-16 text range as start:end; defaults to all text
--row=INT-64 --col=INT-64 Target a table cell instead of a shape
--align=START|CENTER|END|JUSTIFIED
--line-spacing=FLOAT-64 Percent, 100 = single
--space-above=FLOAT-64 Points
--space-below=FLOAT-64 Points
--indent-start=FLOAT-64 Points
--indent-end=FLOAT-64 Points
--indent-first-line=FLOAT-64
--direction=LEFT_TO_RIGHT|RIGHT_TO_LEFT
One UpdateParagraphStyleRequest, fields built from whichever flags were passed, same as style-text does for textStyle. Table cells need the cellLocation on the request, which is why --row / --col appear here as they do on table cell style.
read-slide --detail already reports alignment on each text element, so the CLI can show that a placeholder is centred and has no command to change it. That asymmetry is the clearest statement of the gap.
The gap
gog slideshas no paragraph-level command.style-textcovers character style,bulletstoggles list bullets, andtable cell style --content-aligncovers vertical alignment inside a table cell. Nothing reachesupdateParagraphStyle, so there is no way to set:alignment(START / CENTER / END / JUSTIFIED)lineSpacingspaceAbove/spaceBelowindentStart/indentEnd/indentFirstLinedirectionWhy it bites
Corporate templates commonly set body placeholder paragraphs to centred. Text written into a shape with
insert-textinherits the paragraph style in force, so a left-reading list of bullet lines lands centred and reads as a ragged column. A deck built as native shapes, which is the only route on tenants where image insertion is refused, is therefore unfinished aftercreate-shape+style+insert-text+style-text: the text is the right size, weight and colour, and still in the wrong place.There is also no way back.
element styledoes not touch text, and re-inserting the text inherits the same paragraph style again.The practical consequence is that a script otherwise entirely driven by
goghas to open a Google API client library for oneupdateParagraphStylerequest, purely because the CLI cannot express it. That is a single-purpose second auth path for one field.Manual bullets are the second symptom
With no
indentFirstLine/indentStart, a manually written bullet line that wraps returns flush left on its second line and reads as a new item.bulletscreates native list bullets but gives no control over the hanging indent, so hand-drawn bullet glyphs inside a shape cannot be made to hang.Proposed surface
Mirror
style-text, which already takes an object id and a UTF-16 range:One
UpdateParagraphStyleRequest,fieldsbuilt from whichever flags were passed, same asstyle-textdoes fortextStyle. Table cells need thecellLocationon the request, which is why--row/--colappear here as they do ontable cell style.read-slide --detailalready reportsalignmenton each text element, so the CLI can show that a placeholder is centred and has no command to change it. That asymmetry is the clearest statement of the gap.