Port html2pdf and CI improvements from the DeLiKo@DNB poster project

ci/html2pdf:
- Temporarily inject CSS that forces exact A0 dimensions and prevents
  Chrome's print shrinking (restored via trap, also on failure)
- Enable automatic hyphenation with full google-chrome by seeding a
  persistent profile with the hyphen-data component; chrome-headless-shell
  (CI) bundles the dictionaries and needs no help. Language-aware via
  <html lang> with a build-time warning if no dictionary is found
- Work from the input file's directory so relative asset links resolve
- Honor the optional output-path argument (previously silently ignored);
  URLs still bypass injection for the CI smoke test

.gitlab-ci.yml:
- Apt mirror auto-selection with retries and timeouts
- Cache apt archives, ccache, and the R library between runs
- Install Node.js 24 LTS (distro Node 18 is EOL and too old for
  current @puppeteer/browsers)
- Install emoji/symbol fonts; add ghostscript and an A1 downscale step

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Change-Id: I704f1c1749690f3a86619ad724fa3e4484c0824a
2 files changed
tree: 4412bca1d504155a5591f14b02e7b87c4d819cf2
  1. .github/
  2. ci/
  3. images/
  4. inst/
  5. man/
  6. R/
  7. vignettes/
  8. .gitattributes
  9. .gitignore
  10. .gitlab-ci.yml
  11. .Rbuildignore
  12. .travis.yml
  13. DESCRIPTION
  14. LICENSE
  15. NAMESPACE
  16. posterdown.ids.Rproj
  17. README.md
README.md

IDS Mannheim CD adaptation to the posterdown R package

Example Poster

Automatically generated from skeleton.Rmd:

Getting Started

Install with:

remotes::install_git("https://korap.ids-mannheim.de/gerrit/IDS-Mannheim/posterdown")

Now add this to the YAML options of your rmarkdown (.Rmd) file:

---
output: 
  posterdown.ids::posterdown_ids
---

For further customization options please see the (currently in progress :hammer:) wiki

Additional metadata / customization for IDS version, e.g.:

subtitle: Using RMarkdown and `posterdown.ids::posterdown_ids`
contact:
    name: Marc Kupietz
    department: Digital Linguistics
    email: kupietz@ids-mannheim.de
    website: "http://korap.ids-mannheim.de/instance/icc"
    qrlink: >
      `r posterdown.ids::qrlink('https://gitlab.ids-mannheim.de/ids/posterdown')`
second_logo:
  url: https&#58;//raw.githubusercontent.com/brentthorne/posterdown/master/images/betterhexlogo.png
  margin-left: 14.5cm

To switch to German language, add the following to the YAML options:

lang:
  de: true

Use without R for plain markdown

Install pandoc, create a simple poster.md file, for example:

---
title: "A Simple Test Poster"
contact:
  name: "Marc Kupietz"
  website: "https://corpora.ids-mannheim.de/derekovecs"
  department: "Digital Linguistics"
  email: "kupietz@ids-mannheim.de"
author:
  - name: "Marc Kupietz"
date: "2024-06-05"
affiliation:
  address: "IDS Mannheim"
---

# Introduction

bla bla bla

# Methods

bla bla bla

# Results

bla bla bla

# Discussion

bla bla bla

Then run the following command:

pandoc poster.md --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --wrap preserve --section-divs --template https://gitlab.ids-mannheim.de/ids/posterdown/-/raw/master/inst/rmarkdown/templates/posterdown_ids/resources/template.html?ref_type=heads --highlight-style pygments '--mathjax=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --citeproc --output poster.html

View the resulting poster.html in your browser and print it as a PDF (don“t forget to tick print backgrounds and possibly select only the first page).