Skip to content
Open
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .Rbuildignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
^Makefile$
^NEWS\.0\.md$
^NEWS\.1\.md$
^_pkgdown\.yml$
^src/Makevars$
^CODEOWNERS$
^GOVERNANCE\.md$
Expand All @@ -45,11 +44,11 @@
^.*\.dll$

^bus$
^pkgdown$
^docs$
^lib$
^library$
^devwd$
^site$

# only the inst/po compressed files are needed, not raw .pot/.po
^po$
9 changes: 7 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,10 @@ dev.R
*.diff
*.patch

# pkgdown
docs
# litedown
site/*.html
site/*.md
site/doc/
site/man/
site/reference/
site/reference_index.rds
30 changes: 22 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -351,20 +351,29 @@ test-mac-old:
# merging package tarballs and binaries into single R repository
# rendering documentation
# setting up CRAN-like structure
# generating pkgdown website
# generating litedown website
integration:
stage: integration
image: registry.gitlab.com/rdatatable/dockerfiles/r-pkgdown
image: registry.gitlab.com/rdatatable/dockerfiles/r-litedown
tags:
- saas-linux-medium-amd64
only:
- master
needs: ["mirror-packages","build","test-lin-rel","test-lin-rel-cran","test-lin-dev-gcc-strict-cran","test-lin-dev-clang-cran","test-lin-rel-vanilla","test-lin-ancient-cran","test-lin-dev-clang-san","test-lin-dev-gcc-san","test-win-rel","test-win-dev" ,"test-win-old","test-mac-rel","test-mac-old"]
script:
- R --version
- *install-deps ## markdown pkg not present in r-pkgdown image
- mkdir -p ./pkgdown/favicon/ && cp .graphics/favicon/* ./pkgdown/favicon/ ## copy favicons
- Rscript -e 'pkgdown::build_site(override=list(destination="./website"))'
- *install-deps ## markdown pkg not present in r-litedown image
## Copy assets to site directory
- mkdir -p ./site/assets/favicon/
- cp .graphics/favicon/* ./site/assets/favicon/
## Generate reference pages first (creates reference_index.rds needed by manual.Rmd)
- Rscript site/generate_reference.R
## Build litedown site (now manual.Rmd can use reference_index.rds)
- cd site && Rscript -e 'litedown::fuse_site()' && cd ..
- mkdir -p website
- cp -r site/*.html website/
- cp -r site/reference website/ 2>/dev/null || true
- cp -r site/assets website/
## html manual, vignettes, repos, cran_web, cran_checks
- echo 'source(".ci/ci.R"); source(".ci/publish.R")' >> .Rprofile
## list of available test-* jobs dynamically based on bus/test-* directories
Expand Down Expand Up @@ -436,8 +445,14 @@ integration:
- Rscript -e 'check.index("data.table", names(test.jobs))'
## web/checks/check_flavors.html
- Rscript -e 'check.flavors(names(test.jobs))'
## pkgdown merge
- Rscript -e 'common_files<-function(path1, path2) intersect(list.files(path1, all.files=TRUE, no..=TRUE), list.files(path2, all.files=TRUE, no..=TRUE)); msg = if (length(f<-common_files("website","bus/integration/cran"))) paste(c("Following artifacts will be overwritten by pkgdown artifacts:", paste0(" ", f)), collapse="\n") else "No overlapping files from pkgdown artifacts"; message(msg); q("no")'
## Add backwards compatibility redirects
- mkdir -p website/news website/reference website/articles
- echo '<script>location.replace("../news.html")</script>' > website/news/index.html
- echo '<script>location.replace("../manual.html")</script>' > website/reference/index.html
## Symlink vignettes from library to articles (pkgdown convention)
- ln -s library/data.table/doc website/articles || cp -r bus/integration/cran/library/data.table/doc/* website/articles/ 2>/dev/null || true
## litedown merge
- Rscript -e 'common_files<-function(path1, path2) intersect(list.files(path1, all.files=TRUE, no..=TRUE), list.files(path2, all.files=TRUE, no..=TRUE)); msg = if (length(f<-common_files("website","bus/integration/cran"))) paste(c("Following artifacts will be overwritten by litedown artifacts:", paste0(" ", f)), collapse="\n") else "No overlapping files from litedown artifacts"; message(msg); q("no")'
- mv website/* bus/integration/cran/
## add plausible.io stats
- find bus/integration/cran -type f -iname "*.html" | xargs sed -i 's!<head>!<head><script defer data-domain="rdatatable.gitlab.io/data.table" src="https://plausible.io/js/script.js"></script>!g'
Expand All @@ -447,7 +462,6 @@ integration:
# R repository
# test jobs summaries
# html documentation of all packages in repo
# pkgdown website
pages:
stage: deploy
environment: production
Expand Down
82 changes: 0 additions & 82 deletions _pkgdown.yml

This file was deleted.

22 changes: 22 additions & 0 deletions site/_litedown.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
site:
rebuild: "always"
pattern: "[.]Rmd$"

output:
html:
meta:
css2: ["https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css", "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css", "assets/style.css"]
js2: ["https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js", "assets/toc.js"]
title: "data.table"
description: "Extension of data.frame"
lang: "en"
favicon: "assets/favicon/favicon-32x32.png"
footer: ""
include_before: "_navbar.html"
include_after: '<footer style="text-align: center; margin-top: 4rem; padding: 2rem 0; border-top: 1px solid #dee2e6;"><p>Developed by Tyson Barrett, Matt Dowle, Arun Srinivasan, Jan Gorecki, Michael Chirico, Toby Hocking, Benjamin Schwendinger and Ivan Krylov</p><p>Site built with <a href="https://yihui.org/litedown/">litedown</a></p></footer>'
options:
toc: false
number_sections: false
embed_resources: false
---
44 changes: 44 additions & 0 deletions site/_navbar.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<nav class="navbar navbar-expand-lg navbar-light bg-light border-bottom sticky-top" aria-label="Site navigation">
<div class="container-fluid px-3 px-lg-4">
<a class="navbar-brand me-2" href="index.html">data.table</a>
<small class="nav-text text-muted me-auto">1.18.99</small>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Vignettes</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="articles/datatable-intro.html">Introduction to data.table</a></li>
<li><a class="dropdown-item" href="articles/datatable-reference-semantics.html">Reference semantics</a></li>
<li><a class="dropdown-item" href="articles/datatable-sd-usage.html">Using .SD for Data Analysis</a></li>
<li><a class="dropdown-item" href="articles/datatable-keys-fast-subset.html">Keys and fast binary search based subset</a></li>
<li><a class="dropdown-item" href="articles/datatable-joins.html">Joins in data.table</a></li>
<li><a class="dropdown-item" href="articles/datatable-secondary-indices-and-auto-indexing.html">Secondary indices and auto indexing</a></li>
<li><a class="dropdown-item" href="articles/datatable-reshape.html">Efficient reshaping using data.table</a></li>
<li><a class="dropdown-item" href="articles/datatable-programming.html">Programming on data.table</a></li>
<li><a class="dropdown-item" href="articles/datatable-faq.html">Frequently asked questions</a></li>
<li><a class="dropdown-item" href="articles/datatable-importing.html">Importing data.table</a></li>
<li><a class="dropdown-item" href="articles/datatable-benchmarking.html">Benchmarking data.table</a></li>
</ul>
</li>
<li class="nav-item"><a class="nav-link" href="news.html">News</a></li>
<li class="nav-item"><a class="nav-link" href="https://duckdblabs.github.io/db-benchmark/">Benchmarks</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/Rdatatable/data.table/wiki/Presentations">Presentations</a></li>
<li class="nav-item"><a class="nav-link" href="https://github.com/Rdatatable/data.table/wiki/Articles">Articles</a></li>
<li class="nav-item"><a class="nav-link" href="manual.html">Manual</a></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Cheatsheet</a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="assets/datatable_cheatsheet.pdf">English</a></li>
<li><a class="dropdown-item" href="assets/datatable_cheatsheet_fr.pdf">Francais</a></li>
</ul>
</li>
</ul>
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="https://github.com/Rdatatable/data.table">GitHub</a></li>
</ul>
</div>
</div>
</nav>
112 changes: 112 additions & 0 deletions site/assets/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
/* data.table website styles */

:root {
--dt-toc-width: 320px;
}

body {
font-family: "Helvetica Neue", Arial, sans-serif;
line-height: 1.6;
color: #212529;
margin: 0 !important;
padding: 0 !important;
max-width: none !important;
}

/* Layout */
.frontmatter,
.body {
max-width: 1320px !important;
width: 100% !important;
margin: 0 auto !important;
padding: 0 clamp(1.5rem, 3vw, 4rem) !important;
}

.frontmatter {
padding-top: 1.5rem;
}

.external-link::after {
content: "ext";
font-size: 0.75rem;
margin-left: 0.25rem;
}

/* Code blocks */
pre {
background-color: #f8f9fa;
border: 1px solid #dee2e6;
border-radius: 4px;
padding: 1rem;
overflow-x: auto;
}

code {
background-color: #f8f9fa;
padding: 0.2rem 0.35rem;
border-radius: 3px;
font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
font-size: 0.875em;
}

pre code {
background-color: transparent;
padding: 0;
}

/* TOC sidebar */
#TOC {
background-color: #f8f9fa;
border: 1px solid #dee2e6;
border-radius: 4px;
padding: 1rem;
margin: 1rem 0 2rem 0;
}

#TOC ul {
list-style: none;
padding-left: 0;
margin: 0;
}

#TOC a {
color: #495057;
font-size: 0.9rem;
}

@media (min-width: 1200px) {
.body:has(#TOC) {
display: grid;
grid-template-columns: 1fr var(--dt-toc-width);
gap: 2rem;
align-items: start;
}

#TOC {
grid-column: 2;
grid-row: 1 / 999;
position: sticky;
top: 5rem;
margin: 0;
max-height: calc(100vh - 6rem);
overflow-y: auto;
}

.body:has(#TOC) > *:not(#TOC) {
grid-column: 1;
}
}

@media (min-width: 1400px) {
.frontmatter,
.body {
padding: 0 3rem;
}
}

@media (min-width: 1800px) {
.frontmatter,
.body {
padding: 0 5rem;
}
}
Loading
Loading