Grund: vad module-pdfs är

module-pdfs är PDF-varianten av portfolio-motorn i CCMS och används för att visa dokument i ett kortgrid.

Typiska use-cases är rapporter, prislistor, menyer, manualer och andra dokument som ska kunna läsas direkt på sidan.

Modulen är enkel att underhålla eftersom innehållet styrs av samma portfolio-struktur som andra mediavarianter.

Val 1: top-level och items-struktur

Top-level ligger i portfolio med module_type: "module-pdfs", samt vanliga fält som id, aria_label, columns, section_title och background.*.

Innehållet ligger i items[]. Varje item använder normalt display, appearance, is_pdf, src, alt och text_html.

Översättningslager följer mönstret <lang>_portfolio.

Val 2: is_pdf och iframe-beteende

När is_pdf=true renderas kortet som en <iframe> med src + #toolbar=0&navpanes=0&scrollbar=0&view=FitH.

Detta ger en inbäddad förhandsvisning av PDF i portfoliokortet utan full PDF-UI.

Om is_pdf=false går samma item i stället via bildgrenen med <picture> och bildmanifest-fält.

Val 3: columns, kort och PDF-ratio

Griden använder portfolio.columns via CSS-variabeln --cols och blir flerkolumn på större skärmar.

PDF-ramen har egen klass .portfolio-frame med aspect-ratio: 210 / 297, vilket motsvarar A4-proportioner.

appearance per item fungerar även för PDF-kort och kompileras till auto_class/auto_style.

Val 4: kompilatorflöde och gränser

Builden expanderar portfolio.items[] till portfolio.media1..mediaN genom den generella array-normaliseringen.

Template renderar i nuläget kort upp till media12, så fler än tolv items kräver template-utökning.

portfolio.auto_display sätts automatiskt baserat på synliga media-poster, vilket styr om sektionen renderas.

Val 5: schema, SEO och AI-optimering

För PDF-samlingar är ItemList en bra bas, med ett dokumentobjekt per post (t.ex. DigitalDocument, Report eller Menu beroende på innehåll).

Varje dokument bör ha tydlig titel/beskrivning och encoding med MediaObject samt encodingFormat: application/pdf.

Synlig text i korten och schema-beskrivningarna ska uttrycka samma sak för starkare AI- och söksignaler.