withastro / compiler

The Astro compiler. Written in Go. Distributed as WASM.
Other
502 stars 59 forks source link

šŸ› BUG: #1049

Open lifeisfakenews opened 3 weeks ago

lifeisfakenews commented 3 weeks ago

What version of @astrojs/compiler are you using?

2.10.3

What package manager are you using?

npm

What operating system are you using?

Linux

Describe the Bug

The document title gets split in a way it shouldnt when using ternarys

The code

---
interface Props {
  title?: string;
}
const { title } = Astro.props;
---
<!doctype html>
<html lang="en">
  <head>
    ... other head ...        
    <meta name="generator" content={Astro.generator} />
    <title>{title ? `${title} - ` : ""}Doctor 9 Tutoring</title>
  </head>
  <body class="dark">
    ...
 </body>
</html>

Will produce a site where the document/page title is <title> - (title is the correct value as passed to the component), and first child of the body would be "Doctor 9 Tutoring", rather than being correctly wrapped within the <title> tag. I did also notice that the is not being returned, however the content of the body is returned when looking at the network tab. image

It works fine however if i put {title} - Doctor 9 Tutoring in the <title> tag instead

Link to Minimal Reproducible Example

https://stackblitz.com/edit/github-jsi3lg?file=src%2Fpages%2Fwith-title.astro