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.