diff --git a/docs/examples.js b/docs/examples.js index d636abb6..80691fff 100644 --- a/docs/examples.js +++ b/docs/examples.js @@ -275,6 +275,7 @@ function renderHighlight(ex, categoryId) { const screenshot = ex.screenshot || ''; const pdf = ex.pdf || ''; + const code = ex.code || '#'; const badge = CATEGORY_BADGE[categoryId] || ''; return [ '
', @@ -282,6 +283,7 @@ ' data-action="lightbox"', ' data-screenshot="' + escAttr(screenshot) + '"', ' data-pdf="' + escAttr(pdf) + '"', + ' data-code="' + escAttr(code) + '"', ' data-title="' + escAttr(ex.title || ex.id || '') + '"', ' aria-label="Open preview for ' + escAttr(ex.title || ex.id || '') + '">', screenshot @@ -359,6 +361,7 @@ ' data-action="lightbox"', ' data-screenshot="' + escAttr(screenshot) + '"', ' data-pdf="' + escAttr(pdf) + '"', + ' data-code="' + escAttr(code) + '"', ' data-title="' + escAttr(ex.title || ex.id || '') + '"', ' aria-label="Open preview for ' + escAttr(ex.title || ex.id || '') + '">', screenshot @@ -412,7 +415,8 @@ ' ', @@ -434,12 +438,19 @@ }); return lightbox; } - function openLightbox(screenshot, pdf, title) { + function openLightbox(screenshot, pdf, code, title) { const lb = ensureLightbox(); lb.querySelector('.lightbox-image').src = screenshot; lb.querySelector('.lightbox-image').alt = title + ' preview'; lb.querySelector('.lightbox-title').textContent = title; lb.querySelector('.lightbox-pdf-link').href = pdf; + const codeLink = lb.querySelector('.lightbox-code-link'); + if (code && code !== '#') { + codeLink.href = code; + codeLink.style.display = ''; + } else { + codeLink.style.display = 'none'; + } lb.classList.add('is-open'); lb.setAttribute('aria-hidden', 'false'); document.body.classList.add('lightbox-open'); @@ -470,9 +481,10 @@ e.preventDefault(); const screenshot = trigger.dataset.screenshot; const pdf = trigger.dataset.pdf; + const code = trigger.dataset.code; const title = trigger.dataset.title; if (screenshot) { - openLightbox(screenshot, pdf, title); + openLightbox(screenshot, pdf, code, title); } else if (pdf) { window.open(pdf, '_blank'); } diff --git a/docs/index.html b/docs/index.html index cba426b6..c0349df5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -44,9 +44,9 @@ "applicationSubCategory": "Library", "operatingSystem": "Cross-platform (JVM 21+)", "programmingLanguage": "Java", - "softwareVersion": "1.6.0", + "softwareVersion": "1.6.1", "url": "https://demchaav.github.io/GraphCompose/", - "downloadUrl": "https://jitpack.io/#DemchaAV/GraphCompose/v1.6.0", + "downloadUrl": "https://jitpack.io/#DemchaAV/GraphCompose/v1.6.1", "image": "https://demchaav.github.io/GraphCompose/assets/logo/graphcompose-logo.png", "license": "https://github.com/DemchaAV/GraphCompose/blob/main/LICENSE", "author": { @@ -151,7 +151,7 @@
-

Java · v1.6 · MIT

+

Java · v1.6.1 · MIT

Java PDF layout engine for structured business documents.

Describe documents. Render polished PDFs. A semantic layout engine for Java services that need structured, paginated, theme-driven output — CVs, invoices, proposals, reports.

No drawing API. No pixel arithmetic. You compose ParagraphNode, TableNode, SectionNode; GraphCompose handles measurement, pagination, fonts, and PDFBox rendering.

@@ -208,7 +208,7 @@

Maven

<dependency> <groupId>com.github.DemchaAV</groupId> <artifactId>GraphCompose</artifactId> - <version>v1.6.0</version> + <version>v1.6.1</version> </dependency>
@@ -219,7 +219,7 @@

Gradle

dependencies { implementation( - 'com.github.DemchaAV:GraphCompose:v1.6.0' + 'com.github.DemchaAV:GraphCompose:v1.6.1' ) }