Support text formatting information (bold, italic, links) or provide markdown output
@vinay-google ci sta già lavorando.
Dal 22/9/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Problem
Currently, Google Apps Script and Google Forms API do not provide access to text formatting information for any text fields in forms. This means that rich text formatting like bold, italic, underline, and links are lost when retrieving form data programmatically.
Current Behavior
When using FormApp.openById() to retrieve form data, all text fields return only plain text:
var form = FormApp.openById(formId);
// Form level
var title = form.getTitle(); // Plain text only
var description = form.getDescription(); // Plain text only
form.getItems().forEach(function(item) {
// Item level
var title = item.getTitle(); // Plain text only
var helpText = item.getHelpText(); // Plain text only
// Type-specific text fields
switch (item.getType()) {
case FormApp.ItemType.SECTION_HEADER:
var section = item.asSectionHeaderItem();
var sectionTitle = section.getTitle(); // Plain text only
var sectionDescription = section.getHelpText(); // Plain text only
break;
case FormApp.ItemType.TEXT:
case FormApp.ItemType.PARAGRAPH_TEXT:
var text = item.asTextItem();
var title = section.getTitle(); // Plain text only
var description = section.getHelpText(); // Plain text only
break;
.....
}
});
All formatting is stripped and only plain text is returned from:
- Form title and description
- Item titles and help text
- Section header titles and descriptions
- Choice values and labels
- Scale labels (upper/lower bound labels)
- Any other text content in forms
Expected Behavior
The API should provide markdown output for all text fields that support rich formatting:
var form = FormApp.openById(formId);
// Form level with markdown
var title = form.getTitle({ format: 'markdown' });
var description = form.getDescription({ format: 'markdown' });
form.getItems().forEach(function(item) {
// Item level with markdown
var title = item.getTitle({ format: 'markdown' });
var helpText = item.getHelpText({ format: 'markdown' });
switch (item.getType()) {
case FormApp.ItemType.SECTION_HEADER:
var section = item.asSectionHeaderItem();
var sectionTitle = section.getTitle({ format: 'markdown' });
var sectionDescription = section.getHelpText({ format: 'markdown' });
break;
case FormApp.ItemType.TEXT:
case FormApp.ItemType.PARAGRAPH_TEXT:
var text = item.asTextItem();
var title = section.getTitle({ format: 'markdown' });
var description = section.getHelpText({ format: 'markdown' });
break;
.....
}
});
Current API Response Example
Currently, the API returns plain text even when the original content has formatting:
{
"itemId": "42f47236",
"textItem": {},
"title": "Simple Text",
"description": "with Link Suneo"
}
Expected API Response with Markdown
With markdown support, the same content should return:
{
"itemId": "42f47236",
"textItem": {},
"title": "Simple Text",
"description": "with [Link Suneo](https://example.com)"
}
Use Cases
- Form Documentation: Generate accurate documentation that preserves all formatting across all form elements
- Custom Form Renderers: Display complete forms in external applications with proper formatting for all text elements
- Form Migration: Move forms between platforms while preserving text styling in titles, descriptions, choices, and help text
- Accessibility: Maintain semantic meaning of formatted text throughout the entire form
- Content Management: Export complete form content for editing in external systems
- Form Analysis: Analyze form content while preserving the visual hierarchy and emphasis
Impact
This limitation affects all text content in forms:
- Form Structure: Titles and descriptions lose formatting
- Navigation: Section headers and descriptions lose emphasis
- User Guidance: Help text and instructions lose important formatting
- Choices: Multiple choice and checkbox options lose formatting
- Scales: Rating scale labels lose formatting
- Content Hierarchy: Visual emphasis and structure is lost
Proposed Solution
Add an optional format parameter to all text retrieval methods:
// Form level
form.getTitle({ format: 'markdown' })
form.getDescription({ format: 'markdown' })
// Item level
item.getTitle({ format: 'markdown' })
item.getHelpText({ format: 'markdown' })
// Section headers
sectionHeaderItem.getTitle({ format: 'markdown' })
sectionHeaderItem.getHelpText({ format: 'markdown' })
// Scale labels
scaleItem.getLowerBoundLabel({ format: 'markdown' })
scaleItem.getUpperBoundLabel({ format: 'markdown' })
// Choice values
choice.getValue({ format: 'markdown' })
This would convert rich text formatting to markdown equivalents:
- Bold text →
**Bold text** - Italic text →
*Italic text* Strikethrough→~~Strikethrough~~- Link text →
[Link text](url) - Underlined text →
<u>Underlined text</u> - Lists →
- Itemor1. Item
Environment
- Google Apps Script
- Google Forms API
- FormApp service
Related
This issue addresses the comprehensive need for preserving text formatting across all form elements in the Google Forms API.
- Lingua principale
- JavaScript
- Stelle
- 5.2k
- Fork
- 2k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di googleworkspace/apps-script-samples
-
Alvin Litana MirasolAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
googleworkspace/apps-script-samples#659 · 1 commento · 1 reazione ·
-
Password resetAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 15/100
googleworkspace/apps-script-samples#654 · 2 reazioni ·
-
cod gsAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
googleworkspace/apps-script-samples#651 · 1 reazione ·
-
tespogromeAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
googleworkspace/apps-script-samples#624 · 1 reazione ·
-
Get_order_manually.gsForse di nuovo libera @vinay-google l’ha presa 240 giorni fa e non c’è nessuna pull request aperta. Aperta
googleworkspace/apps-script-samples#616 · 1 assegnatario ·
Tutte le issue di googleworkspace/apps-script-samples
Issue simili
-
bug release:v5.56
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Jason-Vaughan/TangleClaw#2270 ·
I maintainer di solito rispondono entro 1 giorno
-
priority: medium tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
LeeAdcock/robocodeJs.com#411 ·
I maintainer di solito rispondono entro 1 giorno
-
status: needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
mastra-ai/mastra#26635 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
chore good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pedrorchagas/blog-api#21 ·