Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions src/app/[locale]/(markdown)/associacions/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ async function localizedMDX(locale: string) {
return (await import(`./${locale}.mdx`)).default;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
} catch (error) {
console.log(`Defaulting to ${routing.defaultLocale}`);
console.info(`Defaulting to ${routing.defaultLocale}`);
try {
return (await import(`./${routing.defaultLocale}.mdx`)).default;
} catch (error) {
if (error instanceof Error) console.log(error.stack);
if (error instanceof Error) console.error(error.stack);
notFound();
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/app/[locale]/(markdown)/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,5 @@ export default async function Layout({
const { locale } = await params;
setRequestLocale(locale);

return (
<div className="flex flex-col-reverse lg:flex-row flex-1">{children}</div>
);
return children;
}
2 changes: 1 addition & 1 deletion src/app/[locale]/(markdown)/noticies/posts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ async function getPostsFiles(directory: string) {
return await readdir(directory);
} catch (error) {
if (error instanceof Error) {
console.log(error.stack);
console.error(error.stack);
}

return [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import { Scaffold } from "@/components/scaffold";
import { route } from "@/lib/route";
import { getTranslations, setRequestLocale } from "next-intl/server";
import { OrguesOrgueParams } from "./layout";
import { TOC } from "@/components/toc";
import { findMDXHeadings } from "@/mdx-components";

export default async function Page({
params,
Expand All @@ -18,6 +20,12 @@ export default async function Page({
const { provincia, comarca, municipi, edifici, orgue } =
orgueNavigation(navigation);

const Content = (
await import(
`/src/content/orgues/${provincia.link}/${comarca.link}/${municipi.link}/${edifici.link}/${orgue.link}.md`
)
).default;

return (
<Scaffold
breadcrumbFragments={[
Expand Down Expand Up @@ -61,6 +69,7 @@ export default async function Page({
},
{ label: orgue.nom, position: 7 },
]}
aside={<TOC headings={findMDXHeadings(Content({}))} />}
>
<h1>
{edifici.nom}
Expand All @@ -84,6 +93,7 @@ export default async function Page({
}
/>
</div>
<Content />
</Scaffold>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import { Scaffold } from "@/components/scaffold";
import { route } from "@/lib/route";
import { getTranslations, setRequestLocale } from "next-intl/server";
import { OrguesEdificiParams } from "./layout";
import { TOC } from "@/components/toc";
import { findMDXHeadings } from "@/mdx-components";

export default async function Page({
params,
Expand All @@ -17,6 +19,12 @@ export default async function Page({
const t = await getTranslations("metadata");
const { provincia, comarca, municipi, edifici } = orgueNavigation(navigation);

const Content = (
await import(
`/src/content/orgues/${provincia.link}/${comarca.link}/${municipi.link}/${edifici.link}.md`
)
).default;

return (
<Scaffold
breadcrumbFragments={[
Expand Down Expand Up @@ -50,6 +58,7 @@ export default async function Page({
},
{ label: edifici.nom, position: 6 },
]}
aside={<TOC headings={findMDXHeadings(Content({}))} />}
>
<h1>{edifici.nom}</h1>
<div className="not-prose flex justify-between items-baseline">
Expand All @@ -69,6 +78,7 @@ export default async function Page({
}
/>
</div>
<Content />
</Scaffold>
);
}
36 changes: 19 additions & 17 deletions src/components/scaffold.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,24 +14,26 @@ export function Scaffold({
>) {
return (
<>
<main
className={cn(
"col-span-2 prose dark:prose-invert pt-8 mx-auto sm:max-md:px-8 px-4 md:px-0",
aside && "lg:ms-auto lg:me-0",
)}
>
<PageBreadcrumb
fragments={breadcrumbFragments}
className="not-prose mb-8"
/>
{children}
<main className="flex flex-col-reverse lg:flex-row flex-1">
<div
className={cn(
"prose dark:prose-invert col-span-2 pt-8 mx-auto sm:max-md:px-8 px-4 md:px-0",
aside && "lg:ms-auto lg:me-0",
)}
>
<PageBreadcrumb
fragments={breadcrumbFragments}
className="not-prose mb-8"
/>
{children}
</div>
{aside ? (
// TODO(albertms10): mostra la TOC a la versió mòbil
<aside className="container prose hidden lg:block sm:max-md:px-8 md:px-0 w-full lg:max-w-[14rem] lg:pt-20 mx-auto lg:ms-10 lg:me-auto lg:pb-32">
{aside}
</aside>
) : null}
</main>
{aside ? (
// TODO(albertms10): mostra la TOC a la versió mòbil
<aside className="container prose hidden lg:block sm:max-md:px-8 md:px-0 w-full lg:max-w-[14rem] lg:pt-20 mx-auto lg:ms-10 lg:me-auto lg:pb-32">
{aside}
</aside>
) : null}
</>
);
}
54 changes: 38 additions & 16 deletions src/components/toc.tsx
Original file line number Diff line number Diff line change
@@ -1,37 +1,59 @@
"use client";

import { cn } from "@/lib/utils";
import type { HeadingElement } from "@/mdx-components";
import type { ReactNode } from "react";
import ScrollSpy from "react-scrollspy-navigation";

export function TOC({
headings,
}: Readonly<{ headings: { id: string; label: ReactNode }[] }>) {
export interface TOCItem {
id: string;
heading: HeadingElement;
headings?: TOCItem[];
label: ReactNode;
}

export interface TOCProps {
headings: TOCItem[];
}

export function TOC({ headings }: Readonly<TOCProps>) {
function tocList(items: TOCItem[], className?: string) {
return (
<ol className={cn("flex flex-col gap-2", className)}>
{items.map((item) => tocListItem(item))}
</ol>
);
}

function tocListItem(item: TOCItem) {
return (
<li key={item.id} className="leading-tight flex flex-col gap-2">
<a
href={`#${item.id}`}
className="text-primary/80 hover:text-primary data-[active=true]:text-aco data-[active=true]:font-bold"
>
{item.label}
</a>
{item.headings?.length ? tocList(item.headings, "ps-4") : <></>}
</li>
);
}

return (
<ScrollSpy
activeAttr
rootMargin="180px"
onClickEach={(e) => {
const heading = (e.target as HTMLElement).getAttribute("href");
if (!heading || !/^#[a-z-]+$/.test(heading)) return;
if (!heading || !/^#[0-9a-z-]+$/.test(heading)) return;
window.location.href = heading;
}}
>
<nav className="not-prose sticky top-24 text-sm">
<header className="font-bold uppercase tracking-wide text-primary/60 mb-4">
Taula de continguts
</header>
<ul className="flex flex-col gap-2">
{headings.map(({ label, id }) => (
<li key={id} className="leading-tight">
<a
href={`#${id}`}
className="text-primary/80 hover:text-primary data-[active=true]:text-aco data-[active=true]:font-bold"
>
{label}
</a>
</li>
))}
</ul>
{tocList(headings)}
</nav>
</ScrollSpy>
);
Expand Down
3 changes: 3 additions & 0 deletions src/content/orgues/barcelona.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
layout: base/bc-provincia
---
3 changes: 3 additions & 0 deletions src/content/orgues/barcelona/alt-penedes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
layout: base/bc-comarca
---
3 changes: 3 additions & 0 deletions src/content/orgues/barcelona/alt-penedes/santa-fe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
layout: base/bc-municipi
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
layout: base/orgue
redirect_from:
- pages/orgues/barcelona/alt-penedes/santa-fe/santa-maria
- orgues/santa-fe

fotos:
- nom: santa-fe-2.jpg
alt: Façana de l'orgue
autor: Isidre Vallès
portada: 38%
- nom: santa-fe-4.jpg
alt: Consola de l'orgue
autor: Isidre Vallès
- nom: santa-fe-1.jpg
alt: Tubs
autor: Isidre Vallès
- nom: santa-fe-5.jpg
alt: Façana de l'orgue
caption: Isidre Vallès tocant el seu orgue.
autor: Isidre Vallès
---

L'orgue fou construït per Isidre Vallès i Vallès l'any 2001 i acabat l'any 2003. La primera part de
l'orgue es va inaugurar el 6 d'octubre 2001 (dia de santa Fe). Amb una benedicció acompanyada a
l'orgue per Pere Güell i un concert a càrrec de Jonatan Carbó, orgue, Neus Calaf, soprano, Jesús Salius,
oboè i Miquel Benito, flauta de bec.

La inauguració de l'orgue acabat es va fer el 6 d'octubre de 2003. L'orgue va ser re-beneït per mossèn
Jaume Verdoy i el concert inaugural el va oferir Josep Maria Escalona i Canyet, organista de la catedral de Barcelona.
Des de la primera inauguració, l'orgue s'ha tocat a totes les festes de precepte. Cada any, pels vols de
Santa Fe, s'organitza un concert d'orgue sol o amb altres instruments. Enguany (2022) s'ha celebrat la XXI edició.

### Disposició

Els vuit primers tubs del violó sonen sempre.

{% include disposicions/disposicio.html %}

### Galeria fotogràfica

{% include orgues/gallery-grid.html %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
layout: base/bc-municipi
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
layout: base/orgue
redirect_from:
- pages/orgues/barcelona/alt-penedes/santa-margarida-i-els-monjos/santa-margarida
- orgues/santa-margarida-i-els-monjos

fotos:
- nom: IMG_6715.jpg
alt: Façana de l'orgue
autor: Berenguer Montserrat
- nom: IMG_6716.jpg
alt: Façana de l'orgue
autor: Berenguer Montserrat
- nom: IMG_6720.jpg
alt: Manual
autor: Berenguer Montserrat
- nom: IMG_6724.jpg
alt: Registres
autor: Berenguer Montserrat
- nom: IMG_6725.jpg
alt: Placa de l'orguener
autor: Berenguer Montserrat
- nom: IMG_6722.jpg
alt: Pedaler
autor: Berenguer Montserrat
- nom: IMG_6726.jpg
alt: Façana de l'orgue
autor: Berenguer Montserrat
- nom: IMG_6727.jpg
alt: Façana de l'orgue
autor: Berenguer Montserrat
portada: 50%
- nom: IMG_6729.jpg
alt: Reducció del manual
caption: Reducció del manual. La mecànica és de balancí, molt comuna en orgues de factura alemanya.
autor: Berenguer Montserrat
- nom: IMG_6730.jpg
alt: Tubs del Subbaix
caption: Tubs del Subbaix.
autor: Berenguer Montserrat
- nom: IMG_6738.jpg
alt: Tubs del manual
caption: Tubs del manual
autor: Berenguer Montserrat
- nom: IMG_6762.jpg
alt: Nau de l'església
autor: Berenguer Montserrat
- nom: IMG_6714.jpg
alt: Façana de l'església
autor: Berenguer Montserrat

links:
- nom: Späth Orgelbau AG
link: http://spaeth.ch/Orgelbau/Orgeln/santa-margarida-i-els-monjos-cataluna/
---

{% include autor.html autor="Isidre Vallès i Vallès" %}

Aquest orgue va ser construït els anys 60 per la suïssa Späth. Va ser muntat a la parròquia de Santa Margarida a
principis de març del 2005. L'orgue, que és mecànic, consta d’un sol teclat manual de 56 notes de marfil i banús i un
teclat pedaler de 30 notes.

L’estrena es va fer el dia 23 d’abril, dia de Sant Jordi, a les 6 de la tarda. Aquest dia es va fer una exposició
fotogràfica de les obres de muntatge de l’orgue. La Sra. Carmen Späth va fer la presentació de l’orgue i a continuació
es va oferir un concert a càrrec de l’organista de la catedral de Barcelona, Sr. Josep Maria Escalona.

La benedicció la va fer el Sr. Arquebisbe de Barcelona, Mn. Lluís Martínez i Sistach el dia 20 de juliol,
Santa Margarida, del 2005 a les 12 del migdia.

### Disposició

{% include disposicions/disposicio.html %}

### Galeria fotogràfica

{% include orgues/gallery-grid.html %}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
layout: base/bc-municipi
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: base/orgue
redirect_from:
- pages/orgues/barcelona/alt-penedes/vilafranca-del-penedes/forum
- orgues/forum-vilafranca-del-penedes

fotos:
- nom: forum-1.jpg
alt: Façana de l'orgue
autor: Berenguer Montserrat
portada: 53%

links:
- nom: Associació d'Amics dels Orgues de Vilafranca
link: https://www.orguesdevilafranca.cat
---

L'orgue va ser construït per Gabriel Blancafort el 1988. Va ser inaugurat el 10 de juny de 1988 per l'organista David Philip Dobson[^1] dins
l'acte oficial del 75è aniversari de la Caixa Penedès.

### Disposició

{% include disposicions/disposicio.html %}

### Galeria fotogràfica

{% include orgues/gallery-grid.html %}

[^1]: Font: [El 3 de Vuit](https://xacpremsa.cultura.gencat.cat/pandora/viewer.vm?id=0001358751&page=20)
Loading