docs: haystack doc bug fixes (#11078)

* fix: remove video iframe

* fix: md table repsonsive

* docs: add responsive youtube video

* docs: add support for pagination next/prev globally

* docs: update contributing readme

* Revert "fix: md table repsonsive"

This reverts commit 5112f2da06.

* fix: table css responsiveness

---------

Co-authored-by: Stefano Fiorucci <[email protected]>
This commit is contained in:
Sriniketh J
2026-04-16 10:40:04 +02:00
committed by GitHub
co-authored by Stefano Fiorucci
parent 8d22008fd1
commit bd0b4b1aa2
16 changed files with 126 additions and 133 deletions
+10
View File
@@ -389,6 +389,16 @@ For transparent PNGs that need better visibility in dark mode, add a background
</div>
```
**Youtube Embed**
For embedding YouTube videos, use the `YouTubeEmbed` component:
```mdx
import YouTubeEmbed from "@site/src/components/YouTubeEmbed";
<YouTubeEmbed videoId="dQw4w9WgXcQ" title="Example Video" />
```
## Pull Request Process
### Pull Request Checklist
+2 -9
View File
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -68,15 +69,7 @@ These behaviors reduce the need for glue components like `Joiners` and `OutputAd
See [Smart Pipeline Connections](pipelines/smart-pipeline-connections.mdx) for details and examples.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
+1 -1
View File
@@ -1,5 +1,5 @@
{
"name": "my-website",
"name": "haystack-docs-website",
"version": "0.0.0",
"private": true,
"scripts": {
@@ -0,0 +1,34 @@
// SPDX-FileCopyrightText: 2022-present deepset GmbH <[email protected]>
//
// SPDX-License-Identifier: Apache-2.0
import React from "react";
import styles from "./styles.module.css";
interface YouTubeEmbedProps {
videoId: string;
title?: string;
className?: string;
}
export default function YouTubeEmbed({
videoId,
title = "YouTube video",
className,
}: YouTubeEmbedProps) {
return (
<div className={`${styles.wrapper} ${className || ""}`}>
<div className={styles.aspectRatio}>
<iframe
src={`https://www.youtube.com/embed/${videoId}`}
title={title}
frameBorder="0"
allow="autoplay; encrypted-media; picture-in-picture"
allowFullScreen
loading="lazy"
className={styles.iframe}
/>
</div>
</div>
);
}
@@ -0,0 +1,29 @@
/* SPDX-FileCopyrightText: 2022-present deepset GmbH <[email protected]>
*
* SPDX-License-Identifier: Apache-2.0
*/
.wrapper {
width: 100%;
margin: 2rem auto;
display: block;
}
/* 16:9 ratio */
.aspectRatio {
position: relative;
width: 100%;
padding-bottom: 56.25%;
height: 0;
}
/* Responsive iframe */
.iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
border-radius: 8px;
}
+27 -46
View File
@@ -146,11 +146,6 @@ button, .button {
border-radius: 8px;
}
.pagination-nav {
display: none;
}
/* Top Navbar active state styling - using dc-docs approach with haystack-docs colors */
.navbar__item.navbar__link--active,
.navbar__item.navbar__link--active:hover {
@@ -880,65 +875,51 @@ html[data-theme='dark'] .navbar__item.navbar-version-badge-dropdown:hover > .nav
KEY-VALUE TABLE STYLING - Headerless Tables
======================================== */
/* Hide header visually in key-value tables */
.key-value-table {
width: 100%;
overflow-x: auto;
}
.key-value-table thead {
display: none;
}
/* Ensure wrapper doesn't overflow */
.key-value-table {
overflow-x: auto;
max-width: 100%;
}
/* Force table to use full width and fixed layout */
.key-value-table table {
table-layout: fixed !important;
width: 100% !important;
max-width: 100% !important;
width: 100%;
border-collapse: collapse;
table-layout: auto;
}
.key-value-table td {
padding: 0.6rem 0.75rem;
vertical-align: top;
}
/* Style the first column (keys) as bold and nowrap */
.key-value-table td:first-child {
font-weight: 600;
white-space: nowrap;
width: 1%;
min-width: 180px;
padding-right: 1rem;
width: 30% !important;
min-width: 200px;
}
/* Style the second column (values) to wrap text properly */
.key-value-table td:last-child {
width: 70% !important;
max-width: 0 !important; /* Force wrapping */
white-space: normal !important;
overflow-wrap: break-word !important;
word-wrap: break-word !important;
white-space: normal;
overflow-wrap: break-word;
word-break: break-word;
}
/* Ensure content inside cells wraps properly */
.key-value-table td:last-child * {
white-space: normal !important;
overflow-wrap: break-word !important;
word-wrap: break-word !important;
.key-value-table td a {
word-break: break-word;
}
/* Ensure links wrap properly */
.key-value-table td:last-child a {
white-space: normal !important;
word-break: break-all !important;
overflow-wrap: break-word !important;
}
@media (max-width: 600px) {
.key-value-table {
overflow-x: auto;
}
/* General cell styling */
.key-value-table td {
vertical-align: top;
padding: 0.25rem 0.5rem;
}
/* Add subtle spacing between rows for readability */
.key-value-table tr + tr td {
padding-top: 0.4rem;
.key-value-table table {
min-width: 500px;
}
}
/* ========================================
@@ -1,11 +1,14 @@
---
title: "Pipelines"
id: pipelines
sidebar_class_name: hidden-sidebar-item
sidebar_position: 0
slug: "/pipelines"
description: "To build modern search pipelines with LLMs, you need two things: powerful components and an easy way to put them together. The Haystack pipeline is built for this purpose and enables you to design and scale your interactions with LLMs."
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -56,10 +59,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe width="560" height="315" src="https://www.youtube.com/embed/SxAwyeCkguc"
title="YouTube video player" frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -56,10 +57,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe width="560" height="315" src="https://www.youtube.com/embed/SxAwyeCkguc"
title="YouTube video player" frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -57,14 +58,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -57,14 +58,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -57,14 +58,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -57,14 +58,7 @@ While the data (the initial query) flows through the entire pipeline, individual
To connect components and integrations in a pipeline, you must know the names of their inputs and outputs. The output of one component must be accepted as input by the following component. When you connect components in a pipeline with `Pipeline.connect()`, it validates if the input and output types match.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -68,15 +69,7 @@ These behaviors reduce the need for glue components like `Joiners` and `OutputAd
See [Smart Pipeline Connections](pipelines/smart-pipeline-connections.mdx) for details and examples.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -68,15 +69,7 @@ These behaviors reduce the need for glue components like `Joiners` and `OutputAd
See [Smart Pipeline Connections](pipelines/smart-pipeline-connections.mdx) for details and examples.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -5,7 +5,8 @@ slug: "/pipelines"
description: "To build modern search pipelines with LLMs, you need two things: powerful components and an easy way to put them together. The Haystack pipeline is built for this purpose and enables you to design and scale your interactions with LLMs."
---
import ClickableImage from "@site/src/components/ClickableImage";
import ClickableImage from "@site/src/components/ClickableImage"
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -68,15 +69,7 @@ These behaviors reduce the need for glue components like `Joiners` and `OutputAd
See [Smart Pipeline Connections](pipelines/smart-pipeline-connections.mdx) for details and examples.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained
@@ -6,6 +6,7 @@ description: "To build modern search pipelines with LLMs, you need two things: p
---
import ClickableImage from "@site/src/components/ClickableImage";
import YoutubeEmbed from "@site/src/components/YoutubeEmbed";
# Pipelines
@@ -68,15 +69,7 @@ These behaviors reduce the need for glue components like `Joiners` and `OutputAd
See [Smart Pipeline Connections](pipelines/smart-pipeline-connections.mdx) for details and examples.
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/SxAwyeCkguc"
frameBorder="0"
allow="autoplay; encrypted-media"
allowFullScreen
></iframe>
<YoutubeEmbed videoId="SxAwyeCkguc" title="Introduction to Haystack Pipelines" />
## Steps to Create a Pipeline Explained