Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Support text formatting information (bold, italic, links) or provide markdown output

Đang mở
#563 0 bình luận 2 reaction 1 người được giao Xem trên GitHub

@vinay-google đang làm issue này rồi.

Từ ngày 22/9/2025.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

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

  1. Form Documentation: Generate accurate documentation that preserves all formatting across all form elements
  2. Custom Form Renderers: Display complete forms in external applications with proper formatting for all text elements
  3. Form Migration: Move forms between platforms while preserving text styling in titles, descriptions, choices, and help text
  4. Accessibility: Maintain semantic meaning of formatted text throughout the entire form
  5. Content Management: Export complete form content for editing in external systems
  6. 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 → - Item or 1. 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.

Ngôn ngữ chính
JavaScript
Star
5.2k
Fork
2k
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của googleworkspace/apps-script-samples

Tất cả issue của googleworkspace/apps-script-samples

Issue tương tự

Thêm issue về JavaScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.