public visitProperty()

in src/docgen/render/markdown-render.ts [486:539]


  public visitProperty(
    prop: PropertySchema,
  ): MarkdownDocument {
    const optionality = prop.optional
      ? 'Optional'
      : 'Required';

    const md = new MarkdownDocument({
      id: this.anchorFormatter({
        id: prop.id,
        displayName: prop.displayName,
        fqn: prop.fqn,
        ...this.metadata,
      }),
      header: {
        title: prop.displayName,
        sup: optionality,
        pre: true,
        strike: prop.docs.deprecated,
      },
    });

    if (prop.docs.deprecated) {
      md.bullet(
        `${MarkdownDocument.italic('Deprecated:')} ${prop.docs.deprecationReason}`,
      );
      md.lines('');
    }

    if (prop.usage) {
      md.code(this.language.toString(), prop.usage);
    }

    const metadata: Record<string, string> = {
      Type: this.typeFormatter(prop.type, this.metadata, this.linkFormatter),
    };

    if (prop.default) {
      metadata.Default = MarkdownDocument.sanitize(prop.default);
    }

    for (const [key, value] of Object.entries(metadata)) {
      md.bullet(`${MarkdownDocument.italic(`${key}:`)} ${value}`);
    }
    md.lines('');

    if (prop.docs) {
      md.docs(prop.docs);
    }

    md.split();

    return md;
  }