Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

blogTitle not working #10045

Open
5 of 7 tasks
root-io opened this issue Apr 14, 2024 · 4 comments
Open
5 of 7 tasks

blogTitle not working #10045

root-io opened this issue Apr 14, 2024 · 4 comments
Labels
bug An error in the Docusaurus core causing instability or issues with its execution
Milestone

Comments

@root-io
Copy link

root-io commented Apr 14, 2024

Have you read the Contributing Guidelines on issues?

Prerequisites

  • I'm using the latest version of Docusaurus.
  • I have tried the npm run clear or yarn clear command.
  • I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
  • I have tried creating a repro with https://new.docusaurus.io.
  • I have read the console error message carefully (if applicable).

Description

blogTitle not working

Someone at the end of this thread seems to have a similar issue: #5119

Reproducible demo

No response

Steps to reproduce

  presets: [
    [
      'classic',
      {
        blog: {
          routeBasePath: "/",
          blogTitle: "Blog",
        },
      } satisfies Preset.Options,
    ],
  ],

Expected behavior

I want the title of the page to be: "Blog | Foo"

Actual behavior

The blogTitle is not showing, I get the config title twice: "Foo | Foo".

Your environment

  • Public source code:
  • Public site URL:
  • Docusaurus version used: 3.2.1
  • Environment name and version (e.g. Chrome 89, Node.js 16.4):
  • Operating system and version (e.g. Ubuntu 20.04.2 LTS):

Self-service

  • I'd be willing to fix this bug myself.
@root-io root-io added bug An error in the Docusaurus core causing instability or issues with its execution status: needs triage This issue has not been triaged by maintainers labels Apr 14, 2024
@root-io root-io changed the title . blogTitle not working Apr 14, 2024
@OzakIOne
Copy link
Collaborator

OzakIOne commented Apr 14, 2024

Hello I tried when creating a minimal repo and I can't reproduce your issue

https://stackblitz.com/edit/github-srzyqm?file=docusaurus.config.js

image

Please provide a minimal repro on stackblitz with what you want as output so we can further assist you

@OzakIOne OzakIOne added closed: working as intended This issue is intended behavior, there's no need to take any action. closed: can't repro This bug is because of some local setup that can't be reproduced. and removed bug An error in the Docusaurus core causing instability or issues with its execution status: needs triage This issue has not been triaged by maintainers labels Apr 14, 2024
@root-io
Copy link
Author

root-io commented Apr 14, 2024

Hey OzaklOne thanks for the stackblitz, I was able to repro using your code with few changes, the important part is routeBasePath: "/", because I want the blog to be hosted on root with no docs or pages. I also deleted the src/pages folder

          blog: {
            blogTitle: 'My blog',
            routeBasePath: "/",
         }
         ...
          // {
          //   type: 'docSidebar',
          //   sidebarId: 'tutorialSidebar',
          //   position: 'left',
          //   label: 'Tutorial',
          // },
          { to: '/', label: 'Blog', position: 'left' },

@OzakIOne
Copy link
Collaborator

From what I tried and understand, when you are in blog only mode blogTitle is not the title of the page anymore, blogTitle is the title of the page when routeBasePath is not set to '/' because title will take the priority over blogTitle and indeed on the route / of your website you will have title twice so by default 'My blog | My blog'

@slorber slorber added this to the 4.0 milestone Apr 15, 2024
@slorber
Copy link
Collaborator

slorber commented Apr 15, 2024

Yes that looks like we have this historical behavior in the theme:

function BlogListPageMetadata(props: Props): JSX.Element {
  const {metadata} = props;
  const {
    siteConfig: {title: siteTitle},
  } = useDocusaurusContext();
  const {blogDescription, blogTitle, permalink} = metadata;
  const isBlogOnlyMode = permalink === '/';
  const title = isBlogOnlyMode ? siteTitle : blogTitle;
  return (
    <>
      <PageMetadata title={title} description={blogDescription} />
      <SearchMetadata tag="blog_posts_list" />
    </>
  );
}

I'd consider it a bug because that looks wrong to me.

Having a blog homepage at / does not mean a site only contains a blog. You might have a blog at the root of your site and yet have docs.

I'm not sure how we'll fix it yet, but this will likely be done as part of a global siteTitle breaking-change PR where we change other things as well.

In the meantime you can swizzle BlogListPageMetadata and fix that behavior, use the siteConfig.title if you only host a blog.

@slorber slorber reopened this Apr 15, 2024
@slorber slorber added bug An error in the Docusaurus core causing instability or issues with its execution and removed closed: working as intended This issue is intended behavior, there's no need to take any action. closed: can't repro This bug is because of some local setup that can't be reproduced. labels Apr 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug An error in the Docusaurus core causing instability or issues with its execution
Projects
None yet
Development

No branches or pull requests

3 participants