Repository: facebook/docusaurus
File: packages/docusaurus-plugin-content-blog/src/plugin-content-blog.d.ts (TypeScript)

Code before:
     */
    key?: string;
  };

  /**
   * Blog post authors can be declared in front matter as a string key
   * (referencing an author in authors map), an object (partially overriding the
   * data in authors map, or a completely new author), or an array of a mix of
   * both.
   */
  export type BlogPostFrontMatterAuthors =
    | string
    | BlogPostFrontMatterAuthor
    | (string | BlogPostFrontMatterAuthor)[];

  export type BlogPostMetadata = LastUpdateData & {
    /** Path to the Markdown source, with `@site` alias. */
    readonly source: string;
    /**
     * Used to generate the page h1 heading, tab title, and pagination title.
     */
    readonly title: string;
    /**
     * Used to generate the <head><title> and <meta>.
     */
    readonly title_meta?: string;
    /**
     * The publish date of the post. On client side, this will be serialized
     * into a string.
     */
    readonly date: Date;
    /** Full link including base URL. */
    readonly permalink: string;
    /**
     * Description used in the meta. Could be an empty string (empty content)
     */
    readonly description: string;
    /**
     * Absolute URL to the editing page of the post. Undefined if the post
     * shouldn't be edited.
     */
    readonly editUrl?: string;
    /**
     * Reading time in minutes calculated based on word count.
     */
    readonly readingTime?: number;
    /**
     * Whether the truncate marker exists in the post's content.
     */
    readonly hasTruncateMarker: boolean;
    /**

Review comment (suggestion):
The solution we implement here is temporary until I find a better way (where `title` will be used in priority for SEO)

We don't need to add this new `metadata.title_meta` because we'll likely remove it in the future. `frontMatter.title_meta` will be enough for now.

Code after:
     */
    key?: string;
  };

  /**
   * Blog post authors can be declared in front matter as a string key
   * (referencing an author in authors map), an object (partially overriding the
   * data in authors map, or a completely new author), or an array of a mix of
   * both.
   */
  export type BlogPostFrontMatterAuthors =
    | string
    | BlogPostFrontMatterAuthor
    | (string | BlogPostFrontMatterAuthor)[];

  export type BlogPostMetadata = LastUpdateData & {
    /** Path to the Markdown source, with `@site` alias. */
    readonly source: string;
    /**
     * Used to generate the page h1 heading, tab title, and pagination title.
     */
    readonly title: string;
    /**
     * The publish date of the post. On client side, this will be serialized
     * into a string.
     */
    readonly date: Date;
    /** Full link including base URL. */
    readonly permalink: string;
    /**
     * Description used in the meta. Could be an empty string (empty content)
     */
    readonly description: string;
    /**
     * Absolute URL to the editing page of the post. Undefined if the post
     * shouldn't be edited.
     */
    readonly editUrl?: string;
    /**
     * Reading time in minutes calculated based on word count.
     */
    readonly readingTime?: number;
    /**
     * Whether the truncate marker exists in the post's content.
     */
    readonly hasTruncateMarker: boolean;
    /**
     * Used in pagination. Generated after the other metadata, so not readonly.
     * Content is just a subset of another post's metadata.
     */
    nextItem?: {readonly title: string; readonly permalink: string};