Compare commits

..

No commits in common. "main" and "v0.1.0" have entirely different histories.
main ... v0.1.0

7 changed files with 12 additions and 33430 deletions

1
.gitignore vendored
View File

@ -2,4 +2,3 @@ example.html
example.pdf
test.*
release/
watched-files.txt

View File

@ -90,16 +90,13 @@ Pour générer directement le PDF, en utilisant `pagedjs` au moyen de `pandoc`
pandoc --citeproc \
--to=pdf --pdf-engine=pagedjs-cli \
--css=../style.css \
--template=../template.html \
--toc --toc-depth=2 \
-V noscript=true
--output=example.pdf example.md
```
- `--pdf-engine=` impose `pagedjs` pour la conversion en PDF.
- `-V noscript=true` permet d'indiquer que la feuille de style de l'interface
web de `pagedjs` et les scripts javascript utile dans le navigateur web ne
soient pas utilisés, car ils perturbent la conversion par `pandoc`.
- Ici le `template` ne doit pas être utilisé, mais la feuille de style doit
l'être.
Pour générer le PDF en utilisant directement `pagedjs`:

View File

@ -31,11 +31,10 @@ Au terme de cet atelier, vous serez en mesure de:
 
:::{#licence}
![Logo de la licence CC BY-SA 4.0][logo] \
![Logo de la licence CC BY-SA 4.0](../static/by-sa.svg) \
[CC BY-SA 4.0][cc-by-sa] --- [Sources][sources]
:::
[logo]: ../static/by-sa.svg
[cc-by-sa]: https://creativecommons.org/licenses/by-sa/4.0/deed.fr "Texte de la licence en français"
[sources]: https://git.milhit.ch/igor/bunige-pagedjs-template
@ -124,20 +123,16 @@ par exemple un livre.</p>
## Police
Bien que la police *TheSans* face partie de la charte de l'UNIGE et de la
Bibliothèque de l'Université, je trouve qu'elle n'est pas des plus lisible,
notamment sur les titres. De plus, la licence de cette police, sauf erreur,
n'est pas libre, ce qui en limite l'usage. C'est pourquoi je préfère spécifier
ici les polices *Noto Sans*, *Open Sans*, *Arial*, *Helvetica*, ou la police
Pour que la police *TheSans* puisse s'appliquer correctement, elle doit être
installée sur votre système d'exploitation. Malheureusement, elle n'est pas
publiée avec une licence libre, ce qui en réduit l'usage. Les polices de
remplacement sont dans l'ordre *Open Sans*, *Arial*, *Helvetica*, ou la police
*sans-serif* par défaut de votre système ou de votre navigateur.
La police peut être facilement configurable au moyen du sélecteur `body` dans
le fichier `style.css` (règle déjà existante, dans la section *Définitions
globales*).
Pour les éléments verbatim (`pre`, `code`), la police est *Lilex*, *Courier
New*, *Courier*, *monospace*.
## Titres
Il y a une particularité avec les titres, qui découlent de l'usage de
@ -154,23 +149,6 @@ Ainsi, un sélecteur unique est disponible pour appliquer un saut de page à ce
titre, quel que soit son texte. Une logique similaire est appliquée au titre de
la bibliographie (`bibliography`).
De la même façon, une ou plusieurs classes peuvent être attribuées:
```markdown
## Titre {.class}
```
Ainsi, on peut ajouter la classe `.newpage` qui insert un saut de page avant le
titre en question.
La même chose peut être faite avec des `<div>`, par exemple:
```markdown
:::{.class}{#id}
Du texte.
:::
```
## Citation
> Tout dabord un bon éditeur est un éditeur avec coloration syntaxique. Avec

File diff suppressed because it is too large Load Diff

View File

@ -1,117 +0,0 @@
// Reload-in-place v2.0
// Nicolas Taffin + Sameh Chafik - 2020
// MIT License https://opensource.org/licenses/MIT
// A simple script to add your pagedjs project. On reload, it will make the web browser scroll to the place it was before reload.
// Useful when styling or proof correcting your book. Multi docs compatible and doesn't wait for complete compilation to go.
console.log("reload in place");
// separate human / machine scroll
var machineScroll = false;
// check pagedJS ended compilation
var pagedjsEnd = false;
class pagedjsEnded extends Paged.Handler {
constructor(chunker, polisher, caller) {
super(chunker, polisher, caller);
}
afterRendered(pages) {
pagedjsEnd = true;
}
}
Paged.registerHandlers(pagedjsEnded);
// set a "unique" filename based on title element, in case several books are opened
var fileTitle = document.getElementsByTagName("title")[0].text;
function getDocHeight() {
var D = document;
return Math.max(
D.body.scrollHeight, D.documentElement.scrollHeight,
D.body.offsetHeight, D.documentElement.offsetHeight,
D.body.clientHeight, D.documentElement.clientHeight
)
}
function saveAmountScrolled(){
var scrollArray = [];
var scrollTop = window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop
if (!machineScroll) {
var scrollLeft = window.pageXOffset || (document.documentElement || document.body.parentNode || document.body).scrollLeft
scrollArray.push({ X: Math.round(scrollLeft), Y: Math.round(scrollTop) });
console.log("Saved ", scrollArray);
localStorage[fileTitle] = JSON.stringify(scrollArray);
}
}
// on Load, blur or opacify the page, and try to join ASAP
// last saved position, or at least last compiled page
window.onload = moveFast;
function moveFast() {
machineScroll= true;
var styleEl = document.createElement('style');
document.head.appendChild(styleEl);
var styleSheet = styleEl.sheet;
styleSheet.insertRule('.pagedjs_pages { filter: blur(10px); }', 0);
//styleSheet.insertRule('.pagedjs_pages { opacity: 0.1; }', 0);
var savedData = localStorage.getItem(fileTitle);
if (savedData) {
var scrollArray = JSON.parse(savedData);
var scrollTop = scrollArray[0].Y;
var scrollLeft = scrollArray[0].X;
} else {
var scrollTop = 0;
var scrollLeft = 0;
}
var winheight= window.innerHeight || (document.documentElement || document.body).clientHeight
window.currentInterval = setInterval(function(){
var docheight = getDocHeight();
if ( scrollTop > 0 && scrollTop > docheight - winheight && !pagedjsEnd) {
window.scrollTo(scrollLeft,docheight);
} else {
window.scrollTo(scrollLeft,scrollTop);
clearInterval(window.currentInterval);
setTimeout(function(){
window.scrollTo(scrollLeft,scrollTop);
machineScroll = false;
styleSheet.deleteRule(0);
}, 500); // Delay to start
}
}, 50); // refresh frequency
};
// slow down a bit save position pace
var slowSave = debounce(function() {
if(!machineScroll) {
saveAmountScrolled();
}
}, 100); // save frequency
function debounce(func, wait, immediate) {
var timeout;
return function() {
var context = this, args = arguments;
var later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
};
// Scroll triggers save, but not immediately on load
setTimeout(function(){
window.addEventListener('scroll', slowSave);
}, 1000); // wait a bit before starting position save

View File

@ -28,7 +28,7 @@
* bibliothèque de l'UNIGE. */
@top-right {
content: "";
background-image: url("static/bibliotheque-logo.svg");
background-image: url("./static/bibliotheque-logo.svg");
background-position: right;
background-repeat: no-repeat;
background-size: 25%;
@ -56,8 +56,7 @@
* ************************ */
body {
font-family: "Noto Sans", "Open Sans",
Arial, Helvetica, sans-serif;
font-family: "TheSansOsF", "Open Sans", Arial, Helvetica, sans-serif;
/* Définit les trois variables de compteur nécessaires */
counter-reset: figureNumber toc tableNumber;
}
@ -133,7 +132,6 @@
* dans la source markdown. */
#first-section,
#bibliography,
.newpage,
.footnotes {
break-before: page;
}
@ -160,9 +158,8 @@
padding: none;
}
code {
font-family: 'Lilex Nerd Font', 'Courier New', Courier, monospace;
font-family:'Courier New', Courier, monospace;
font-size: 90%;
line-height: 1.4;
background-color: #f2f1f1;
padding: 2px;
border-radius: 5px;
@ -176,12 +173,6 @@
}
.footnote-ref {
text-decoration: none;
padding-left: 2px;
}
.footnote-back {
font-size: small;
text-decoration: none;
padding-left: .5em;
}
figure {
@ -207,15 +198,6 @@
content: "Figure " counter(figureNumber) ": ";
}
.exercise {
background-color: #f2f1f1;
width: 90%;
margin: 0 auto;
border: 2px solid #d80669;
border-radius: .5em;
padding: 0 .5em;
}
blockquote {
font-style: italic;
}

View File

@ -26,21 +26,15 @@ $endif$
$for(css)$
<link rel="stylesheet" href="$css$" />
$endfor$
<!-- Allow to use -V noscript=true with pandoc
in order to avoid to insert these lines
when they are unnecessary. -->
$if(noscript)$
$else$
<link href="/interface.css" rel="stylesheet" type="text/css" />
<script src="/paged.polyfill.js"></script>
<script src="/reload-in-place.js"></script>
$endif$
<script src="https://unpkg.com/pagedjs/dist/paged.polyfill.js"></script>
$for(header-includes)$
$header-includes$
$endfor$
$if(math)$
$math$
$endif$
</head>
<body>
$for(include-before)$