This commit is contained in:
Oscar Plaisant
2025-01-14 18:27:22 +01:00
parent b3175848f8
commit 5368f2de3a
79 changed files with 2475 additions and 2140 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-10
View File
@@ -1,10 +0,0 @@
{
"listingMap": {
"propositions.qmd": [
"posts/propositions"
],
"posts/conseils_de_l_universite/conseils_de_composantes/index.qmd": [
"*.qmd"
]
}
}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":["liste-des-propositions"],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"entries":[],"headings":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":["membres-élus"],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"entries":[],"headings":["site-de-la-feutre"]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":["auto-promotion"],"entries":[]}
-44
View File
@@ -1,44 +0,0 @@
{
"posts/post-with-code/index.qmd": {
"index.html": "231917ea"
},
"posts/welcome/index.qmd": {
"index.html": "009e71bc"
},
"index.qmd": {
"index.html": "2f6981df"
},
"about.qmd": {
"about.html": "08261e6f"
},
"propositions.qmd": {
"propositions.html": "0658a40c"
},
"posts/conseils_de_l_universite/conseil_de_l_UFR_sciences_et_techniques.qmd": {
"conseil_de_l_UFR_sciences_et_techniques.html": "f66d1d67"
},
"posts/personnes/guerin_harmonie.qmd": {
"guerin_harmonie.html": "7ab85b1e"
},
"posts/personnes/plaisant_oscar.qmd": {
"plaisant_oscar.html": "bde902c4"
},
"posts/personnes/mulard_andreas.qmd": {
"mulard_andreas.html": "e1bdd19b"
},
"posts/personnes/lagasse_adrian.qmd": {
"lagasse_adrian.html": "128efd6c"
},
"posts/representation_de_tous_les_etudiants.qmd": {
"representation_de_tous_les_etudiants.html": "64b6b6a4"
},
"posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.qmd": {
"comission_de_formation_et_vie_universitaire.html": "1d3af7d0"
},
"posts/conseils_de_l_universite/conseils_de_composantes/index.qmd": {
"index.html": "2810355d"
},
"posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.qmd": {
"conseil_de_l_UFR_sciences_et_techniques.html": "1ec15c4e"
}
}
-1
View File
@@ -1 +0,0 @@
{"entries":[],"headings":["auto-promotion"]}
-1
View File
@@ -1 +0,0 @@
{"headings":[],"entries":[]}
-1
View File
@@ -1 +0,0 @@
{"headings":["membres-élus"],"entries":[]}
Regular → Executable
View File
Regular → Executable
+14 -2
View File
@@ -4,10 +4,22 @@ project:
website: website:
title: "FEUTRE" title: "FEUTRE"
site-url: "https://osk42.quarto.pub/feutre" site-url: "https://osk42.quarto.pub/feutre"
# favicon: "_images/logo_LISTE.png" favicon: "_images/logo_FEUTRE.png"
navbar: navbar:
logo: "_images/logo_FEUTRE.png"
logo-alt: "FEUTRE"
right: right:
- propositions.qmd - href: posts/propositions.qmd
text: "Propositions"
- href: posts/conseils_de_l_universite/index.qmd
text: "Conseils de l'Université"
# show image previews
twitter-card:
image: "https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png"
open-graph:
image: "https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png"
format: format:
html: html:
theme: theme:
-481
View File
@@ -1,481 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>FEUTRE - A propos</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<script src="site_libs/quarto-html/quarto.js"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
<link href="site_libs/bootstrap/bootstrap-dark.min.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 20,
"language": {
"search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés",
"search-copy-link-title": "Copier le lien vers la recherche",
"search-hide-matches-text": "Cacher les correspondances additionnelles",
"search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer",
"search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer",
"search-label": "Recherche"
}
}</script>
<link rel="stylesheet" href="styles.css">
</head>
<body class="nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg navbar-dark ">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container">
<a class="navbar-brand" href="./index.html">
<span class="navbar-title">FEUTRE</span>
</a>
</div>
<div id="quarto-search" class="" title="Recherche"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Basculer la navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item">
<a class="nav-link" href="./propositions.html" rel="" target="">
<span class="menu-text">Propositions</span></a>
</li>
</ul>
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<header id="title-block-header" class="quarto-title-block default page-columns page-full">
<div class="quarto-title-banner page-columns page-full">
<div class="quarto-title column-page">
<h1 class="title">A propos</h1>
</div>
</div>
<div class="quarto-title-meta">
</div>
</header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<!-- main -->
<div class="quarto-about-jolla column-page">
<img src="profile.jpg" class="about-image
round " style="height: 15em; width: 15em;">
<main class="content quarto-banner-title-block column-page" id="quarto-document-content">
<p>About this blog</p>
</main>
<hr class="about-sep">
<div class="about-links">
<a href="https://twitter.com" class="about-link" rel="" target="">
<i class="bi bi-twitter"></i>
<span class="about-link-text">Twitter</span>
</a>
<a href="https://linkedin.com" class="about-link" rel="" target="">
<i class="bi bi-linkedin"></i>
<span class="about-link-text">LinkedIn</span>
</a>
<a href="https://github.com" class="about-link" rel="" target="">
<i class="bi bi-github"></i>
<span class="about-link-text">Github</span>
</a>
</div>
</div>
<!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const disableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'prefetch';
}
}
const enableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'stylesheet';
}
}
const manageTransitions = (selector, allowTransitions) => {
const els = window.document.querySelectorAll(selector);
for (let i=0; i < els.length; i++) {
const el = els[i];
if (allowTransitions) {
el.classList.remove('notransition');
} else {
el.classList.add('notransition');
}
}
}
const toggleColorMode = (alternate) => {
// Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
manageTransitions('#quarto-margin-sidebar .nav-link', false);
if (alternate) {
enableStylesheet(alternateStylesheets);
for (const sheetNode of alternateStylesheets) {
if (sheetNode.id === "quarto-bootstrap") {
toggleBodyColorMode(sheetNode);
}
}
} else {
disableStylesheet(alternateStylesheets);
toggleBodyColorPrimary();
}
manageTransitions('#quarto-margin-sidebar .nav-link', true);
// Switch the toggles
const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
for (let i=0; i < toggles.length; i++) {
const toggle = toggles[i];
if (toggle) {
if (alternate) {
toggle.classList.add("alternate");
} else {
toggle.classList.remove("alternate");
}
}
}
// Hack to workaround the fact that safari doesn't
// properly recolor the scrollbar when toggling (#1455)
if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
manageTransitions("body", false);
window.scrollTo(0, 1);
setTimeout(() => {
window.scrollTo(0, 0);
manageTransitions("body", true);
}, 40);
}
}
const isFileUrl = () => {
return window.location.protocol === 'file:';
}
const hasAlternateSentinel = () => {
let styleSentinel = getColorSchemeSentinel();
if (styleSentinel !== null) {
return styleSentinel === "alternate";
} else {
return false;
}
}
const setStyleSentinel = (alternate) => {
const value = alternate ? "alternate" : "default";
if (!isFileUrl()) {
window.localStorage.setItem("quarto-color-scheme", value);
} else {
localAlternateSentinel = value;
}
}
const getColorSchemeSentinel = () => {
if (!isFileUrl()) {
const storageValue = window.localStorage.getItem("quarto-color-scheme");
return storageValue != null ? storageValue : localAlternateSentinel;
} else {
return localAlternateSentinel;
}
}
let localAlternateSentinel = 'default';
// Dark / light mode switch
window.quartoToggleColorScheme = () => {
// Read the current dark / light value
let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate);
setStyleSentinel(toAlternate);
};
// Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
const a = window.document.createElement('a');
a.classList.add('top-right');
a.classList.add('quarto-color-scheme-toggle');
a.href = "";
a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; };
const i = window.document.createElement("i");
i.classList.add('bi');
a.appendChild(i);
window.document.body.appendChild(a);
}
// Switch to dark mode if need be
if (hasAlternateSentinel()) {
toggleColorMode(true);
} else {
toggleColorMode(false);
}
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copié");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copié");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn) {
const config = {
allowHTML: true,
content: contentFn,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start'
};
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>
-578
View File
@@ -1,578 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>FEUTRE</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<script src="site_libs/quarto-html/quarto.js"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
<link href="site_libs/bootstrap/bootstrap-dark.min.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 20,
"language": {
"search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés",
"search-copy-link-title": "Copier le lien vers la recherche",
"search-hide-matches-text": "Cacher les correspondances additionnelles",
"search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer",
"search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer",
"search-label": "Recherche"
}
}</script>
<link rel="stylesheet" href="styles.css">
</head>
<body class="nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg navbar-dark ">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container">
<a class="navbar-brand" href="./index.html">
<span class="navbar-title">FEUTRE</span>
</a>
</div>
<div id="quarto-search" class="" title="Recherche"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Basculer la navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item">
<a class="nav-link" href="./propositions.html" rel="" target="">
<span class="menu-text">Propositions</span></a>
</li>
</ul>
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<header id="title-block-header" class="quarto-title-block default page-columns page-full">
<div class="quarto-title-banner page-columns page-full">
<div class="quarto-title column-page">
<h1 class="title">FEUTRE</h1>
</div>
</div>
<div class="quarto-title-meta">
</div>
</header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<!-- main -->
<main class="content quarto-banner-title-block column-page" id="quarto-document-content">
<section id="site-de-la-feutre" class="level1">
<h1>Site de la FEUTRE</h1>
<div class="callout callout-style-default callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Qui sommes-nous ?
</div>
</div>
<div class="callout-body-container callout-body">
<p>La Fédération Étudiante de lUniversité de Tours pour la Représentation et l’Égalité est une association composée d’étudiants provenant des campus de Blois et de Tours.</p>
<p>Cette association est indépendante, cest-à-dire quelle ne dépend pas dun syndicat ou dune quelconque organisation.</p>
<p>Vous pouvez nous contacter à ladresse email <a href="mailto:2023liste@gmail.com">2023liste@gmail.com</a>.</p>
</div>
</div>
<p>feutrebloistours@gmail.com</p>
<div class="callout callout-style-default callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nos objectifs
</div>
</div>
<div class="callout-body-container callout-body">
<p>La FEUTRE à pour but de créer et fédérer des associations afin de :</p>
<!-- TODO: pages sur : -->
<!-- - représentation de tous les étudiants | -->
<!-- - démocratie participative > -->
<!-- - indépendance numérique | -->
<ul>
<li>créer et fédérer des associations étudiantes</li>
<li>soutenir des candidats aux différents conseils de lUniversité de Tours</li>
<li>Représenter les intérêts des étudiants en sciences de lUniversité de Tours
<ul>
<li>faire en sorte que <a href="./posts/representation_de_tous_les_etudiants.html">chaque étudiant soit représenté</a></li>
<li>améliorer le confort d’études</li>
<li>soutenir des candidats ou des listes de représentants étudiants</li>
<li>améliorer la communication entre les étudiants et ladministration</li>
<li>faire avancer la Décarbonation</li>
</ul></li>
<li>promouvoir la démocratie
<ul>
<li>organiser des événements de démocratie participative</li>
<li>promouvoir lindépendance numérique</li>
<li>impliquer des étudiants dans la vie politique</li>
</ul></li>
</ul>
</div>
</div>
<div class="callout callout-style-default callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Nos actions actuelles
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li><a href="https://osk42.quarto.pub/liste">L.I.S.T.E. (Liste Indépendante des Sciences et Techniques Estudiantine)</a>
<ul>
<li>Association de la FEUTRE</li>
<li>A soutenu une liste de candidats au conseil de lUFR. Ce conseil vote le budget et gère lorganisation pratiques(es enseignements)</li>
</ul></li>
<li>Élections des étudiants représentants au Conseil dAdministration des Crous
<ul>
<li>nous sommes en préparation pour cette élection. Nhésitez pas à nous contacter si vous souhaitez être candidats.</li>
</ul></li>
</ul>
</div>
</div>
<div class="callout callout-style-default callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Membres de la L.I.S.T.E
</div>
</div>
<div class="callout-body-container callout-body">
<ul>
<li><a href="./posts/personnes/mulard_andreas.html">Mulard Andreas</a> <!-- - Bourdois Camille --></li>
<li><a href="./posts/personnes/plaisant_oscar.html">Plaisant Oscar</a></li>
<li><a href="./posts/personnes/guerin_harmonie.html">Guérin Harmonie</a></li>
<li>Msiah Romain</li>
<li>Leguay Émerance</li>
<li><a href="./posts/personnes/lagasse_adrian.html">Lagasse Adrian</a></li>
</ul>
</div>
</div>
</section>
</main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const disableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'prefetch';
}
}
const enableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'stylesheet';
}
}
const manageTransitions = (selector, allowTransitions) => {
const els = window.document.querySelectorAll(selector);
for (let i=0; i < els.length; i++) {
const el = els[i];
if (allowTransitions) {
el.classList.remove('notransition');
} else {
el.classList.add('notransition');
}
}
}
const toggleColorMode = (alternate) => {
// Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
manageTransitions('#quarto-margin-sidebar .nav-link', false);
if (alternate) {
enableStylesheet(alternateStylesheets);
for (const sheetNode of alternateStylesheets) {
if (sheetNode.id === "quarto-bootstrap") {
toggleBodyColorMode(sheetNode);
}
}
} else {
disableStylesheet(alternateStylesheets);
toggleBodyColorPrimary();
}
manageTransitions('#quarto-margin-sidebar .nav-link', true);
// Switch the toggles
const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
for (let i=0; i < toggles.length; i++) {
const toggle = toggles[i];
if (toggle) {
if (alternate) {
toggle.classList.add("alternate");
} else {
toggle.classList.remove("alternate");
}
}
}
// Hack to workaround the fact that safari doesn't
// properly recolor the scrollbar when toggling (#1455)
if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
manageTransitions("body", false);
window.scrollTo(0, 1);
setTimeout(() => {
window.scrollTo(0, 0);
manageTransitions("body", true);
}, 40);
}
}
const isFileUrl = () => {
return window.location.protocol === 'file:';
}
const hasAlternateSentinel = () => {
let styleSentinel = getColorSchemeSentinel();
if (styleSentinel !== null) {
return styleSentinel === "alternate";
} else {
return false;
}
}
const setStyleSentinel = (alternate) => {
const value = alternate ? "alternate" : "default";
if (!isFileUrl()) {
window.localStorage.setItem("quarto-color-scheme", value);
} else {
localAlternateSentinel = value;
}
}
const getColorSchemeSentinel = () => {
if (!isFileUrl()) {
const storageValue = window.localStorage.getItem("quarto-color-scheme");
return storageValue != null ? storageValue : localAlternateSentinel;
} else {
return localAlternateSentinel;
}
}
let localAlternateSentinel = 'default';
// Dark / light mode switch
window.quartoToggleColorScheme = () => {
// Read the current dark / light value
let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate);
setStyleSentinel(toAlternate);
};
// Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
const a = window.document.createElement('a');
a.classList.add('top-right');
a.classList.add('quarto-color-scheme-toggle');
a.href = "";
a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; };
const i = window.document.createElement("i");
i.classList.add('bi');
a.appendChild(i);
window.document.body.appendChild(a);
}
// Switch to dark mode if need be
if (hasAlternateSentinel()) {
toggleColorMode(true);
} else {
toggleColorMode(false);
}
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copié");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copié");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn) {
const config = {
allowHTML: true,
content: contentFn,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start'
};
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>
-12
View File
@@ -1,12 +0,0 @@
[
{
"listing": "/posts/conseils_de_l_universite/conseils_de_composantes/index.html",
"items": [
"/posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html"
]
},
{
"listing": "/propositions.html",
"items": []
}
]
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../"> <meta name="quarto:offset" content="../../">
<link href="../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../site_libs/quarto-html/quarto.js"></script> <script src="../../site_libs/quarto-html/quarto.js"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script> <script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -47,7 +48,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -56,6 +63,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -64,15 +72,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../styles.css"> <link rel="stylesheet" href="../../styles.css">
<meta property="og:title" content="FEUTRE - Commission Formation et Vie Universitaire (CFVU)">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Commission Formation et Vie Universitaire (CFVU)">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../index.html"> <a class="navbar-brand" href="../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -84,14 +103,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../propositions.html" rel="" target=""> <a class="nav-link" href="../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -104,7 +127,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -122,14 +145,17 @@ ul.task-list li input[type="checkbox"] {
<p>La Commission Formation et Vie Universitaire (CFVU) La Commission de la Formation et de la Vie Universitaire comprend quarante membres. Elle participe, par ses avis et ses vœux, à ladministration de luniversité et est plus spécifiquement consultée au sujet des programmes de formation des composantes. Ses missions :</p>
<pre><code>les orientations des enseignements de formation initiale et continue ; <p>La Commission de la Formation et de la Vie Universitaire comprend quarante membres. Elle participe, par ses avis et ses vœux, à ladministration de luniversité et est plus spécifiquement consultée au sujet des programmes de formation des composantes.</p>
les demandes d'habilitation et les projets de nouvelles filières ; <p>Ses missions :</p>
l'évaluation des enseignements ; <ul>
les mesures de nature à permettre la mise en œuvre de l'orientation des étudiants et la validation des acquis, à faciliter leur entrée dans la vie active, à favoriser les activités culturelles, sportives, sociales ou associatives offertes aux étudiants et à améliorer leurs conditions de vie et de travail. <li>les orientations des enseignements de formation initiale et continue ;</li>
les mesures relatives aux activités de soutien, aux œuvres universitaires et scolaires, aux services médicaux et sociaux, aux bibliothèques et centres de documentation. Elle est garante des libertés politiques et syndicales étudiantes.</code></pre> <li>les demandes dhabilitation et les projets de nouvelles filières ;</li>
<li>l’évaluation des enseignements ;</li>
<li>les mesures de nature à permettre la mise en œuvre de lorientation des étudiants et la validation des acquis, à faciliter leur entrée dans la vie active, à favoriser les activités culturelles, sportives, sociales ou associatives offertes aux étudiants et à améliorer leurs conditions de vie et de travail.</li>
<li>les mesures relatives aux activités de soutien, aux œuvres universitaires et scolaires, aux services médicaux et sociaux, aux bibliothèques et centres de documentation. Elle est garante des libertés politiques et syndicales étudiantes.</li>
</ul>
<p>La Commission de la Formation et de la Vie Universitaire élit en son sein un vice-président étudiant chargé des questions de vie étudiante, en lien avec les centres régionaux et locaux des œuvres universitaires et scolaires.</p> <p>La Commission de la Formation et de la Vie Universitaire élit en son sein un vice-président étudiant chargé des questions de vie étudiante, en lien avec les centres régionaux et locaux des œuvres universitaires et scolaires.</p>
<p>Vice-président : Florent Malrieu - Composition du CFVU</p>
@@ -177,6 +203,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -243,13 +296,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -328,10 +383,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -341,8 +413,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -354,7 +435,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -398,6 +602,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -423,6 +628,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -486,4 +717,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../../"> <meta name="quarto:offset" content="../../../">
<link href="../../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../../site_libs/quarto-html/quarto.js"></script> <script src="../../../site_libs/quarto-html/quarto.js"></script>
<script src="../../../site_libs/quarto-html/popper.min.js"></script> <script src="../../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -47,7 +48,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -56,6 +63,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -64,15 +72,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../../styles.css"> <link rel="stylesheet" href="../../../styles.css">
<meta property="og:title" content="FEUTRE - Conseil de lUFR de Sciences et Techniques">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Conseil de lUFR de Sciences et Techniques">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../../index.html"> <a class="navbar-brand" href="../../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -84,14 +103,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../../propositions.html" rel="" target=""> <a class="nav-link" href="../../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -107,7 +130,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -125,6 +148,7 @@ ul.task-list li input[type="checkbox"] {
<p>Cest le <a href="../../../posts/conseils_de_l_universite/conseils_de_composantes/index.html">conseil de composante</a> pour lUFR de Sciences et Techniques.</p> <p>Cest le <a href="../../../posts/conseils_de_l_universite/conseils_de_composantes/index.html">conseil de composante</a> pour lUFR de Sciences et Techniques.</p>
<div class="callout callout-style-default callout-note no-icon callout-titled"> <div class="callout callout-style-default callout-note no-icon callout-titled">
<div class="callout-header d-flex align-content-center"> <div class="callout-header d-flex align-content-center">
@@ -163,7 +187,7 @@ Elus de ce conseil
<section id="membres-élus" class="level4"> <section id="membres-élus" class="level4">
<h4 class="anchored" data-anchor-id="membres-élus">Membres élus</h4> <h4 class="anchored" data-anchor-id="membres-élus">Membres élus</h4>
<ul> <ul>
<li><a href="../../../posts/personnes/mulard_andreas.html">Mulard Andreas</a> <!-- - Bourdois Camille --></li> <li><a href="../../../posts/personnes/mulard_andreas.html">Mulard Andreas</a> (vice-président de ce conseil) <!-- - Bourdois Camille --></li>
<li><a href="../../../posts/personnes/plaisant_oscar.html">Plaisant Oscar</a></li> <li><a href="../../../posts/personnes/plaisant_oscar.html">Plaisant Oscar</a></li>
<li><a href="../../../posts/personnes/guerin_harmonie.html">Guérin Harmonie</a></li> <li><a href="../../../posts/personnes/guerin_harmonie.html">Guérin Harmonie</a></li>
<li>Msiah Romain</li> <li>Msiah Romain</li>
@@ -220,6 +244,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -286,13 +337,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -371,10 +424,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -384,8 +454,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -397,7 +476,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -441,6 +643,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -466,6 +669,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -529,4 +758,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../../"> <meta name="quarto:offset" content="../../../">
<link href="../../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../../site_libs/quarto-listing/list.min.js"></script> <script src="../../../site_libs/quarto-listing/list.min.js"></script>
<script src="../../../site_libs/quarto-listing/quarto-listing.js"></script> <script src="../../../site_libs/quarto-listing/quarto-listing.js"></script>
<script src="../../../site_libs/quarto-html/quarto.js"></script> <script src="../../../site_libs/quarto-html/quarto.js"></script>
@@ -49,7 +50,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -58,6 +65,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -96,16 +104,54 @@ ul.task-list li input[type="checkbox"] {
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script> <script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
<script type="text/javascript">
const typesetMath = (el) => {
if (window.MathJax) {
// MathJax Typeset
window.MathJax.typeset([el]);
} else if (window.katex) {
// KaTeX Render
var mathElements = el.getElementsByClassName("math");
var macros = [];
for (var i = 0; i < mathElements.length; i++) {
var texText = mathElements[i].firstChild;
if (mathElements[i].tagName == "SPAN") {
window.katex.render(texText.data, mathElements[i], {
displayMode: mathElements[i].classList.contains('display'),
throwOnError: false,
macros: macros,
fleqn: false
});
}
}
}
}
window.Quarto = {
typesetMath
};
</script>
<link rel="stylesheet" href="../../../styles.css"> <link rel="stylesheet" href="../../../styles.css">
<meta property="og:title" content="FEUTRE - Conseils de composantes">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Conseils de composantes">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../../index.html"> <a class="navbar-brand" href="../../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -117,14 +163,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../../propositions.html" rel="" target=""> <a class="nav-link" href="../../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -137,7 +187,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page-left">
@@ -157,6 +207,7 @@ ul.task-list li input[type="checkbox"] {
<p>Chaque composante de luniversité de Tours est administrée par un conseil élu, qui comprend des représentants des personnels enseignants, des BIATOSS, des étudiants et des personnalités extérieures.</p> <p>Chaque composante de luniversité de Tours est administrée par un conseil élu, qui comprend des représentants des personnels enseignants, des BIATOSS, des étudiants et des personnalités extérieures.</p>
<p>Ses missions :</p> <p>Ses missions :</p>
<ul> <ul>
@@ -170,7 +221,6 @@ ul.task-list li input[type="checkbox"] {
<div class="quarto-listing quarto-listing-container-table" id="listing-listing"> <div class="quarto-listing quarto-listing-container-table" id="listing-listing">
<table class="quarto-listing-table table table-hover"> <table class="quarto-listing-table table table-hover">
<thead> <thead>
<tr> <tr>
@@ -180,14 +230,13 @@ Liste des conseils de composantes
</tr> </tr>
</thead> </thead>
<tbody class="list"> <tbody class="list">
<tr data-index="0" data-categories="conseil-de-composante" data-listing-file-modified-sort="1698261754508" data-listing-reading-time-sort="1" data-listing-title-sort="Conseil de l'UFR de Sciences et Techniques" data-listing-filename-sort="conseil_de_l_UFR_sciences_et_techniques.qmd" onclick="href = this.querySelector('a').getAttribute('href'); <tr data-index="0" data-categories="conseil-de-composante" data-listing-file-modified-sort="1699822656490" data-listing-reading-time-sort="1" data-listing-word-count-sort="151" data-listing-title-sort="Conseil de l'UFR de Sciences et Techniques" data-listing-filename-sort="conseil_de_l_UFR_sciences_et_techniques.qmd" onclick="href = this.querySelector('a').getAttribute('href');
if (href) { window.location=href ; return false; }"> if (href) { window.location=href ; return false; }">
<td> <td>
<a href="../../../posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html" class="title listing-title">Conseil de lUFR de Sciences et Techniques</a> <a href="../../../posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html" class="title listing-title">Conseil de lUFR de Sciences et Techniques</a>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<div class="listing-no-matching d-none"> <div class="listing-no-matching d-none">
Aucun article correspondant Aucun article correspondant
@@ -236,6 +285,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -302,13 +378,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -387,10 +465,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -400,8 +495,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -413,7 +517,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -457,6 +684,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -482,6 +710,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -545,4 +799,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
View File

Before

Width:  |  Height:  |  Size: 7.9 MiB

After

Width:  |  Height:  |  Size: 7.9 MiB

+245 -15
View File
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../"> <meta name="quarto:offset" content="../../">
<link href="../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../site_libs/quarto-html/quarto.js"></script> <script src="../../site_libs/quarto-html/quarto.js"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script> <script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -47,7 +48,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -56,6 +63,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -64,15 +72,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../styles.css"> <link rel="stylesheet" href="../../styles.css">
<meta property="og:title" content="FEUTRE - Harmonie Guérin">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Harmonie Guérin">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../index.html"> <a class="navbar-brand" href="../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -84,14 +103,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../propositions.html" rel="" target=""> <a class="nav-link" href="../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -104,7 +127,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -122,6 +145,7 @@ ul.task-list li input[type="checkbox"] {
<p>Je suis étudiante en seconde année de licence en Mathématiques à Tours.</p> <p>Je suis étudiante en seconde année de licence en Mathématiques à Tours.</p>
<p>Ce qui me préccupe cest le bien-être des étudiants autour et au sein de la fac. Jai intégré la L.I.S.T.E. afin de pouvoir remettre en question certaines pratiques existantes ou améliorer le quotidien de nos étudiants.</p> <p>Ce qui me préccupe cest le bien-être des étudiants autour et au sein de la fac. Jai intégré la L.I.S.T.E. afin de pouvoir remettre en question certaines pratiques existantes ou améliorer le quotidien de nos étudiants.</p>
<section id="auto-promotion" class="level2 callout-info"> <section id="auto-promotion" class="level2 callout-info">
@@ -176,6 +200,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -242,13 +293,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -327,10 +380,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -340,8 +410,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -353,7 +432,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -397,6 +599,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -422,6 +625,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -485,4 +714,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
+245 -15
View File
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../"> <meta name="quarto:offset" content="../../">
<link href="../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../site_libs/quarto-html/quarto.js"></script> <script src="../../site_libs/quarto-html/quarto.js"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script> <script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -47,7 +48,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -56,6 +63,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -64,15 +72,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../styles.css"> <link rel="stylesheet" href="../../styles.css">
<meta property="og:title" content="FEUTRE - Adrian Lagasse">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Adrian Lagasse">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../index.html"> <a class="navbar-brand" href="../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -84,14 +103,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../propositions.html" rel="" target=""> <a class="nav-link" href="../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -104,7 +127,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -122,6 +145,7 @@ ul.task-list li input[type="checkbox"] {
<p>Étudiant en deuxième année de Licence dInformatique à Tours et passionné par les sujets d’énergie et denvironnement.</p> <p>Étudiant en deuxième année de Licence dInformatique à Tours et passionné par les sujets d’énergie et denvironnement.</p>
<p>Je veux faire bouger la fac dans le bon sens pour quelle puisse être à la pointe sur ces thèmes. Le Conseil de lUFR est lorgane le plus à même de faire changer les choses sur le campus, alors jai décidé de tenter ma chance.</p> <p>Je veux faire bouger la fac dans le bon sens pour quelle puisse être à la pointe sur ces thèmes. Le Conseil de lUFR est lorgane le plus à même de faire changer les choses sur le campus, alors jai décidé de tenter ma chance.</p>
@@ -171,6 +195,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -237,13 +288,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -322,10 +375,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -335,8 +405,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -348,7 +427,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -392,6 +594,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -417,6 +620,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -480,4 +709,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
+245 -15
View File
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -31,6 +31,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../"> <meta name="quarto:offset" content="../../">
<link href="../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../site_libs/quarto-html/quarto.js"></script> <script src="../../site_libs/quarto-html/quarto.js"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script> <script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -48,7 +49,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -57,6 +64,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -65,15 +73,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../styles.css"> <link rel="stylesheet" href="../../styles.css">
<meta property="og:title" content="FEUTRE - Andreas Mulard">
<meta property="og:description" content="premier nom de la L.I.S.T.E.">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Andreas Mulard">
<meta name="twitter:description" content="premier nom de la L.I.S.T.E.">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../index.html"> <a class="navbar-brand" href="../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -85,14 +104,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../propositions.html" rel="" target=""> <a class="nav-link" href="../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -110,7 +133,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -128,6 +151,7 @@ ul.task-list li input[type="checkbox"] {
<p>Je suis étudiant en seconde année en double licence Informatique et Mathématiques, sur Tours. Je fais des actions de volontariat pour TouraineUkraine et je suis membre de lassociation étudiante Munto, je suis aussi actif sur le campus en tant que délégué de ma promotion et tuteur des L1 pour les mathématiques.</p> <p>Je suis étudiant en seconde année en double licence Informatique et Mathématiques, sur Tours. Je fais des actions de volontariat pour TouraineUkraine et je suis membre de lassociation étudiante Munto, je suis aussi actif sur le campus en tant que délégué de ma promotion et tuteur des L1 pour les mathématiques.</p>
<p>Jai décidé de mengager dans la vie étudiante et administrative en montant une liste indépendante pour représenter librement les étudiants, sans directive venues dau dessus. Quil était préférable une liste sans engagement avec la possibilité de nous contacter et proposer de nouvelle chose dans une vision dune démocratie fluide à la faculté.</p> <p>Jai décidé de mengager dans la vie étudiante et administrative en montant une liste indépendante pour représenter librement les étudiants, sans directive venues dau dessus. Quil était préférable une liste sans engagement avec la possibilité de nous contacter et proposer de nouvelle chose dans une vision dune démocratie fluide à la faculté.</p>
@@ -177,6 +201,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -243,13 +294,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -328,10 +381,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -341,8 +411,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -354,7 +433,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -398,6 +600,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -423,6 +626,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -486,4 +715,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
+246 -16
View File
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -31,6 +31,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../../site_libs/quarto-search/fuse.min.js"></script> <script src="../../site_libs/quarto-search/fuse.min.js"></script>
<script src="../../site_libs/quarto-search/quarto-search.js"></script> <script src="../../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../../"> <meta name="quarto:offset" content="../../">
<link href="../../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../../site_libs/quarto-html/quarto.js"></script> <script src="../../site_libs/quarto-html/quarto.js"></script>
<script src="../../site_libs/quarto-html/popper.min.js"></script> <script src="../../site_libs/quarto-html/popper.min.js"></script>
<script src="../../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -48,7 +49,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -57,6 +64,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -65,15 +73,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../../styles.css"> <link rel="stylesheet" href="../../styles.css">
<meta property="og:title" content="FEUTRE - Oscar Plaisant">
<meta property="og:description" content="Passionné dinformatique et de mathématiques">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Oscar Plaisant">
<meta name="twitter:description" content="Passionné dinformatique et de mathématiques">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../../index.html" class="navbar-brand navbar-brand-logo">
<img src="../../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../../index.html"> <a class="navbar-brand" href="../../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -85,14 +104,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../../propositions.html" rel="" target=""> <a class="nav-link" href="../../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -110,7 +133,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -128,13 +151,14 @@ ul.task-list li input[type="checkbox"] {
<p>Je étudiant en deuxième année dInformatique et de mathématiques, et passionné par ces deux sujets.</p> <p>Je étudiant en deuxième année dInformatique et de mathématiques, et passionné par ces deux sujets.</p>
<p>J’étudie principalement au campus de Blois, et cest pour essayer de représenter les voix des étudiants Blaisois que jai voulu être dans la L.I.S.T.E.</p> <p>J’étudie principalement au campus de Blois, et cest pour essayer de représenter les voix des étudiants Blaisois que jai voulu être dans la L.I.S.T.E.</p>
<p>Je cherche également à défendre lindépendance numérique, ainsi que l’égalité entre les étudiants.</p> <p>Je cherche également à défendre lindépendance numérique, ainsi que l’égalité entre les étudiants.</p>
<p>Cest moi qui moccupe de ce site internet !</p> <p>Cest moi qui moccupe de ce site internet !</p>
<div class="quarto-figure quarto-figure-center"> <div class="quarto-figure quarto-figure-center">
<figure class="figure"> <figure class="figure">
<p><a href="https://osk42.quarto.pub"><img src="_images/OsKaR.gif" class="img-fluid figure-img" style="width:50.0%"></a></p> <p><a href="https://osk42.quarto.pub"><img src="_images/OsKaR.gif" class="img-fluid quarto-figure quarto-figure-center figure-img" style="width:50.0%"></a></p>
</figure> </figure>
</div> </div>
<section id="auto-promotion" class="level2 callout-info"> <section id="auto-promotion" class="level2 callout-info">
@@ -191,6 +215,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -257,13 +308,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -342,10 +395,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -355,8 +425,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -368,7 +447,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -412,6 +614,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -437,6 +640,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -500,4 +729,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head> <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450"> <meta name="generator" content="quarto-1.4.555">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
@@ -30,6 +30,7 @@ ul.task-list li input[type="checkbox"] {
<script src="../site_libs/quarto-search/fuse.min.js"></script> <script src="../site_libs/quarto-search/fuse.min.js"></script>
<script src="../site_libs/quarto-search/quarto-search.js"></script> <script src="../site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="../"> <meta name="quarto:offset" content="../">
<link href="../_images/logo_FEUTRE.png" rel="icon" type="image/png">
<script src="../site_libs/quarto-html/quarto.js"></script> <script src="../site_libs/quarto-html/quarto.js"></script>
<script src="../site_libs/quarto-html/popper.min.js"></script> <script src="../site_libs/quarto-html/popper.min.js"></script>
<script src="../site_libs/quarto-html/tippy.umd.min.js"></script> <script src="../site_libs/quarto-html/tippy.umd.min.js"></script>
@@ -47,7 +48,13 @@ ul.task-list li input[type="checkbox"] {
"collapse-after": 3, "collapse-after": 3,
"panel-placement": "end", "panel-placement": "end",
"type": "overlay", "type": "overlay",
"limit": 20, "limit": 50,
"keyboard-shortcut": [
"f",
"/",
"s"
],
"show-item-context": false,
"language": { "language": {
"search-no-results-text": "Pas de résultats", "search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés", "search-matching-documents-text": "documents trouvés",
@@ -56,6 +63,7 @@ ul.task-list li input[type="checkbox"] {
"search-more-match-text": "correspondance de plus dans ce document", "search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document", "search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer", "search-clear-button-title": "Effacer",
"search-text-placeholder": "",
"search-detached-cancel-button-title": "Annuler", "search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer", "search-submit-button-title": "Envoyer",
"search-label": "Recherche" "search-label": "Recherche"
@@ -64,15 +72,26 @@ ul.task-list li input[type="checkbox"] {
<link rel="stylesheet" href="../styles.css"> <link rel="stylesheet" href="../styles.css">
<meta property="og:title" content="FEUTRE - Représentation de tous les étudiants">
<meta property="og:description" content="">
<meta property="og:image" content="https://osk42.quarto.pub/feurte/_images/logo_FEUTRE.png">
<meta property="og:site_name" content="FEUTRE">
<meta name="twitter:title" content="FEUTRE - Représentation de tous les étudiants">
<meta name="twitter:description" content="">
<meta name="twitter:image" content="https://osk42.quarto.pub/feutre/_images/logo_FEUTRE.png">
<meta name="twitter:card" content="summary_large_image">
</head> </head>
<body class="nav-fixed"> <body class="nav-fixed">
<div id="quarto-search-results"></div> <div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top"> <header id="quarto-header" class="headroom fixed-top quarto-banner">
<nav class="navbar navbar-expand-lg navbar-dark "> <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
<div class="navbar-container container-fluid"> <div class="navbar-container container-fluid">
<div class="navbar-brand-container"> <div class="navbar-brand-container mx-auto">
<a href="../index.html" class="navbar-brand navbar-brand-logo">
<img src="../_images/logo_FEUTRE.png" alt="FEUTRE" class="navbar-logo">
</a>
<a class="navbar-brand" href="../index.html"> <a class="navbar-brand" href="../index.html">
<span class="navbar-title">FEUTRE</span> <span class="navbar-title">FEUTRE</span>
</a> </a>
@@ -84,14 +103,18 @@ ul.task-list li input[type="checkbox"] {
<div class="collapse navbar-collapse" id="navbarCollapse"> <div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto"> <ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="../propositions.html" rel="" target=""> <a class="nav-link" href="../posts/propositions.html">
<span class="menu-text">Propositions</span></a> <span class="menu-text">Propositions</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="../posts/conseils_de_l_universite/index.html">
<span class="menu-text">Conseils de lUniversité</span></a>
</li> </li>
</ul> </ul>
<div class="quarto-navbar-tools"> </div> <!-- /navcollapse -->
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a> <a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div> </div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid --> </div> <!-- /container-fluid -->
</nav> </nav>
</header> </header>
@@ -104,7 +127,7 @@ ul.task-list li input[type="checkbox"] {
</div> </div>
<div class="quarto-title-meta"> <div class="quarto-title-meta column-page">
@@ -122,6 +145,7 @@ ul.task-list li input[type="checkbox"] {
<p>Un des buts principaux de la FEUTRE est de représenter au mieux lensemble des étudiants (FEUTRE singifie “Fédération Étudiante de lUniversité de Tours pour la Représentation Égalitaire”).</p> <p>Un des buts principaux de la FEUTRE est de représenter au mieux lensemble des étudiants (FEUTRE singifie “Fédération Étudiante de lUniversité de Tours pour la Représentation Égalitaire”).</p>
<p>Nous cherchons notamment à mettre en avant les intérêts des étudiants qui sont souvent moins représentés, comme les étudiants en situation de handicap, ou bien les étudiants des campus de Blois.</p> <p>Nous cherchons notamment à mettre en avant les intérêts des étudiants qui sont souvent moins représentés, comme les étudiants en situation de handicap, ou bien les étudiants des campus de Blois.</p>
<p>Nous sommes convaincus quun bon moyen de faire cela est de passer par limplication dans la politique de luniversité, afin daméliorer les liens entre ladministration et les étudiants. La promotion de la démocratie participative nous semble être un moyen non seulement de mieux réaliser ce projet, mais également de lui donner une portée plus grande, car la démocratie participative ne se limite pas à luniversité.</p> <p>Nous sommes convaincus quun bon moyen de faire cela est de passer par limplication dans la politique de luniversité, afin daméliorer les liens entre ladministration et les étudiants. La promotion de la démocratie participative nous semble être un moyen non seulement de mieux réaliser ce projet, mais également de lui donner une portée plus grande, car la démocratie participative ne se limite pas à luniversité.</p>
@@ -172,6 +196,33 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
} }
} }
const toggleGiscusIfUsed = (isAlternate, darkModeDefault) => {
const baseTheme = document.querySelector('#giscus-base-theme')?.value ?? 'light';
const alternateTheme = document.querySelector('#giscus-alt-theme')?.value ?? 'dark';
let newTheme = '';
if(darkModeDefault) {
newTheme = isAlternate ? baseTheme : alternateTheme;
} else {
newTheme = isAlternate ? alternateTheme : baseTheme;
}
const changeGiscusTheme = () => {
// From: https://github.com/giscus/giscus/issues/336
const sendMessage = (message) => {
const iframe = document.querySelector('iframe.giscus-frame');
if (!iframe) return;
iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app');
}
sendMessage({
setConfig: {
theme: newTheme
}
});
}
const isGiscussLoaded = window.document.querySelector('iframe.giscus-frame') !== null;
if (isGiscussLoaded) {
changeGiscusTheme();
}
}
const toggleColorMode = (alternate) => { const toggleColorMode = (alternate) => {
// Switch the stylesheets // Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate'); const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
@@ -238,13 +289,15 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
return localAlternateSentinel; return localAlternateSentinel;
} }
} }
let localAlternateSentinel = 'default'; const darkModeDefault = false;
let localAlternateSentinel = darkModeDefault ? 'alternate' : 'default';
// Dark / light mode switch // Dark / light mode switch
window.quartoToggleColorScheme = () => { window.quartoToggleColorScheme = () => {
// Read the current dark / light value // Read the current dark / light value
let toAlternate = !hasAlternateSentinel(); let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate); toggleColorMode(toAlternate);
setStyleSentinel(toAlternate); setStyleSentinel(toAlternate);
toggleGiscusIfUsed(toAlternate, darkModeDefault);
}; };
// Ensure there is a toggle, if there isn't float one in the top right // Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) { if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
@@ -323,10 +376,27 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
// clear code selection // clear code selection
e.clearSelection(); e.clearSelection();
}); });
function tippyHover(el, contentFn) { var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
var mailtoRegex = new RegExp(/^mailto:/);
var filterRegex = new RegExp("https:\/\/osk42\.quarto\.pub\/feutre");
var isInternal = (href) => {
return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
}
// Inspect non-navigation links and adorn them if external
var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)');
for (var i=0; i<links.length; i++) {
const link = links[i];
if (!isInternal(link.href)) {
// undo the damage that might have been done by quarto-nav.js in the case of
// links that we want to consider external
if (link.dataset.originalHref !== undefined) {
link.href = link.dataset.originalHref;
}
}
}
function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
const config = { const config = {
allowHTML: true, allowHTML: true,
content: contentFn,
maxWidth: 500, maxWidth: 500,
delay: 100, delay: 100,
arrow: false, arrow: false,
@@ -336,8 +406,17 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
interactive: true, interactive: true,
interactiveBorder: 10, interactiveBorder: 10,
theme: 'quarto', theme: 'quarto',
placement: 'bottom-start' placement: 'bottom-start',
}; };
if (contentFn) {
config.content = contentFn;
}
if (onTriggerFn) {
config.onTrigger = onTriggerFn;
}
if (onUntriggerFn) {
config.onUntrigger = onUntriggerFn;
}
window.tippy(el, config); window.tippy(el, config);
} }
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]'); const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
@@ -349,7 +428,130 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
try { href = new URL(href).hash; } catch {} try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, ""); const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id); const note = window.document.getElementById(id);
return note.innerHTML; if (note) {
return note.innerHTML;
} else {
return "";
}
});
}
const xrefs = window.document.querySelectorAll('a.quarto-xref');
const processXRef = (id, note) => {
// Strip column container classes
const stripColumnClz = (el) => {
el.classList.remove("page-full", "page-columns");
if (el.children) {
for (const child of el.children) {
stripColumnClz(child);
}
}
}
stripColumnClz(note)
if (id === null || id.startsWith('sec-')) {
// Special case sections, only their first couple elements
const container = document.createElement("div");
if (note.children && note.children.length > 2) {
container.appendChild(note.children[0].cloneNode(true));
for (let i = 1; i < note.children.length; i++) {
const child = note.children[i];
if (child.tagName === "P" && child.innerText === "") {
continue;
} else {
container.appendChild(child.cloneNode(true));
break;
}
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(container);
}
return container.innerHTML
} else {
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
return note.innerHTML;
}
} else {
// Remove any anchor links if they are present
const anchorLink = note.querySelector('a.anchorjs-link');
if (anchorLink) {
anchorLink.remove();
}
if (window.Quarto?.typesetMath) {
window.Quarto.typesetMath(note);
}
// TODO in 1.5, we should make sure this works without a callout special case
if (note.classList.contains("callout")) {
return note.outerHTML;
} else {
return note.innerHTML;
}
}
}
for (var i=0; i<xrefs.length; i++) {
const xref = xrefs[i];
tippyHover(xref, undefined, function(instance) {
instance.disable();
let url = xref.getAttribute('href');
let hash = undefined;
if (url.startsWith('#')) {
hash = url;
} else {
try { hash = new URL(url).hash; } catch {}
}
if (hash) {
const id = hash.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
if (note !== null) {
try {
const html = processXRef(id, note.cloneNode(true));
instance.setContent(html);
} finally {
instance.enable();
instance.show();
}
} else {
// See if we can fetch this
fetch(url.split('#')[0])
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.getElementById(id);
if (note !== null) {
const html = processXRef(id, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
} else {
// See if we can fetch a full url (with no hash to target)
// This is a special case and we should probably do some content thinning / targeting
fetch(url)
.then(res => res.text())
.then(html => {
const parser = new DOMParser();
const htmlDoc = parser.parseFromString(html, "text/html");
const note = htmlDoc.querySelector('main.content');
if (note !== null) {
// This should only happen for chapter cross references
// (since there is no id in the URL)
// remove the first header
if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
note.children[0].remove();
}
const html = processXRef(null, note);
instance.setContent(html);
}
}).finally(() => {
instance.enable();
instance.show();
});
}
}, function(instance) {
}); });
} }
let selectedAnnoteEl; let selectedAnnoteEl;
@@ -393,6 +595,7 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
} }
div.style.top = top - 2 + "px"; div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px"; div.style.height = height + 4 + "px";
div.style.left = 0;
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter"); let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) { if (gutterDiv === null) {
gutterDiv = window.document.createElement("div"); gutterDiv = window.document.createElement("div");
@@ -418,6 +621,32 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
}); });
selectedAnnoteEl = undefined; selectedAnnoteEl = undefined;
}; };
// Handle positioning of the toggle
window.addEventListener(
"resize",
throttle(() => {
elRect = undefined;
if (selectedAnnoteEl) {
selectCodeLines(selectedAnnoteEl);
}
}, 10)
);
function throttle(fn, ms) {
let throttle = false;
let timer;
return (...args) => {
if(!throttle) { // first call gets through
fn.apply(this, args);
throttle = true;
} else { // all the others get throttled
if(timer) clearTimeout(timer); // cancel #2
timer = setTimeout(() => {
fn.apply(this, args);
timer = throttle = false;
}, ms);
}
};
}
// Attach click handler to the DT // Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]'); const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) { for (const annoteDlNode of annoteDls) {
@@ -481,4 +710,5 @@ window.document.addEventListener("DOMContentLoaded", function (event) {
</body></html> </body></html>
Regular → Executable
View File
View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

-526
View File
@@ -1,526 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta charset="utf-8">
<meta name="generator" content="quarto-1.3.450">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>FEUTRE - Propositions</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */
vertical-align: middle;
}
</style>
<script src="site_libs/quarto-nav/quarto-nav.js"></script>
<script src="site_libs/quarto-nav/headroom.min.js"></script>
<script src="site_libs/clipboard/clipboard.min.js"></script>
<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
<script src="site_libs/quarto-search/fuse.min.js"></script>
<script src="site_libs/quarto-search/quarto-search.js"></script>
<meta name="quarto:offset" content="./">
<script src="site_libs/quarto-listing/list.min.js"></script>
<script src="site_libs/quarto-listing/quarto-listing.js"></script>
<script src="site_libs/quarto-html/quarto.js"></script>
<script src="site_libs/quarto-html/popper.min.js"></script>
<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
<script src="site_libs/quarto-html/anchor.min.js"></script>
<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
<link href="site_libs/quarto-html/quarto-syntax-highlighting.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-text-highlighting-styles">
<link href="site_libs/quarto-html/quarto-syntax-highlighting-dark.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-text-highlighting-styles">
<script src="site_libs/bootstrap/bootstrap.min.js"></script>
<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
<link href="site_libs/bootstrap/bootstrap.min.css" rel="stylesheet" class="quarto-color-scheme" id="quarto-bootstrap" data-mode="light">
<link href="site_libs/bootstrap/bootstrap-dark.min.css" rel="prefetch" class="quarto-color-scheme quarto-color-alternate" id="quarto-bootstrap" data-mode="dark">
<script id="quarto-search-options" type="application/json">{
"location": "navbar",
"copy-button": false,
"collapse-after": 3,
"panel-placement": "end",
"type": "overlay",
"limit": 20,
"language": {
"search-no-results-text": "Pas de résultats",
"search-matching-documents-text": "documents trouvés",
"search-copy-link-title": "Copier le lien vers la recherche",
"search-hide-matches-text": "Cacher les correspondances additionnelles",
"search-more-match-text": "correspondance de plus dans ce document",
"search-more-matches-text": "correspondances de plus dans ce document",
"search-clear-button-title": "Effacer",
"search-detached-cancel-button-title": "Annuler",
"search-submit-button-title": "Envoyer",
"search-label": "Recherche"
}
}</script>
<script>
window.document.addEventListener("DOMContentLoaded", function (_event) {
const listingTargetEl = window.document.querySelector('#listing-listing .list');
if (!listingTargetEl) {
// No listing discovered, do not attach.
return;
}
const options = {
valueNames: [{ data: ['index'] },{ data: ['categories'] },{ data: ['listing-date-sort'] },{ data: ['listing-file-modified-sort'] }],
searchColumns: [],
};
window['quarto-listings'] = window['quarto-listings'] || {};
window['quarto-listings']['listing-listing'] = new List('listing-listing', options);
if (window['quarto-listing-loaded']) {
window['quarto-listing-loaded']();
}
});
window.addEventListener('hashchange',() => {
if (window['quarto-listing-loaded']) {
window['quarto-listing-loaded']();
}
})
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js" type="text/javascript"></script>
<link rel="stylesheet" href="styles.css">
</head>
<body class="nav-fixed">
<div id="quarto-search-results"></div>
<header id="quarto-header" class="headroom fixed-top">
<nav class="navbar navbar-expand-lg navbar-dark ">
<div class="navbar-container container-fluid">
<div class="navbar-brand-container">
<a class="navbar-brand" href="./index.html">
<span class="navbar-title">FEUTRE</span>
</a>
</div>
<div id="quarto-search" class="" title="Recherche"></div>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Basculer la navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav navbar-nav-scroll ms-auto">
<li class="nav-item">
<a class="nav-link active" href="./propositions.html" rel="" target="" aria-current="page">
<span class="menu-text">Propositions</span></a>
</li>
</ul>
<div class="quarto-navbar-tools">
<a href="" class="quarto-color-scheme-toggle quarto-navigation-tool px-1" onclick="window.quartoToggleColorScheme(); return false;" title="Basculer le mode sombre"><i class="bi"></i></a>
</div>
</div> <!-- /navcollapse -->
</div> <!-- /container-fluid -->
</nav>
</header>
<!-- content -->
<header id="title-block-header" class="quarto-title-block default page-columns page-full">
<div class="quarto-title-banner page-columns page-full">
<div class="quarto-title column-page">
<h1 class="title">Propositions</h1>
</div>
</div>
<div class="quarto-title-meta">
</div>
</header><div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
<!-- sidebar -->
<!-- margin-sidebar -->
<!-- main -->
<main class="content quarto-banner-title-block column-page" id="quarto-document-content">
<section id="liste-des-propositions" class="level1">
<h1>Liste des propositions</h1>
<p>Voici les propositions portées par la FEUTRE :</p>
</section>
<div class="quarto-listing quarto-listing-container-default" id="listing-listing">
<div class="list quarto-listing-default">
</div>
<div class="listing-no-matching d-none">
Aucun article correspondant
</div>
</div></main> <!-- /main -->
<script id="quarto-html-after-body" type="application/javascript">
window.document.addEventListener("DOMContentLoaded", function (event) {
const toggleBodyColorMode = (bsSheetEl) => {
const mode = bsSheetEl.getAttribute("data-mode");
const bodyEl = window.document.querySelector("body");
if (mode === "dark") {
bodyEl.classList.add("quarto-dark");
bodyEl.classList.remove("quarto-light");
} else {
bodyEl.classList.add("quarto-light");
bodyEl.classList.remove("quarto-dark");
}
}
const toggleBodyColorPrimary = () => {
const bsSheetEl = window.document.querySelector("link#quarto-bootstrap");
if (bsSheetEl) {
toggleBodyColorMode(bsSheetEl);
}
}
toggleBodyColorPrimary();
const disableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'prefetch';
}
}
const enableStylesheet = (stylesheets) => {
for (let i=0; i < stylesheets.length; i++) {
const stylesheet = stylesheets[i];
stylesheet.rel = 'stylesheet';
}
}
const manageTransitions = (selector, allowTransitions) => {
const els = window.document.querySelectorAll(selector);
for (let i=0; i < els.length; i++) {
const el = els[i];
if (allowTransitions) {
el.classList.remove('notransition');
} else {
el.classList.add('notransition');
}
}
}
const toggleColorMode = (alternate) => {
// Switch the stylesheets
const alternateStylesheets = window.document.querySelectorAll('link.quarto-color-scheme.quarto-color-alternate');
manageTransitions('#quarto-margin-sidebar .nav-link', false);
if (alternate) {
enableStylesheet(alternateStylesheets);
for (const sheetNode of alternateStylesheets) {
if (sheetNode.id === "quarto-bootstrap") {
toggleBodyColorMode(sheetNode);
}
}
} else {
disableStylesheet(alternateStylesheets);
toggleBodyColorPrimary();
}
manageTransitions('#quarto-margin-sidebar .nav-link', true);
// Switch the toggles
const toggles = window.document.querySelectorAll('.quarto-color-scheme-toggle');
for (let i=0; i < toggles.length; i++) {
const toggle = toggles[i];
if (toggle) {
if (alternate) {
toggle.classList.add("alternate");
} else {
toggle.classList.remove("alternate");
}
}
}
// Hack to workaround the fact that safari doesn't
// properly recolor the scrollbar when toggling (#1455)
if (navigator.userAgent.indexOf('Safari') > 0 && navigator.userAgent.indexOf('Chrome') == -1) {
manageTransitions("body", false);
window.scrollTo(0, 1);
setTimeout(() => {
window.scrollTo(0, 0);
manageTransitions("body", true);
}, 40);
}
}
const isFileUrl = () => {
return window.location.protocol === 'file:';
}
const hasAlternateSentinel = () => {
let styleSentinel = getColorSchemeSentinel();
if (styleSentinel !== null) {
return styleSentinel === "alternate";
} else {
return false;
}
}
const setStyleSentinel = (alternate) => {
const value = alternate ? "alternate" : "default";
if (!isFileUrl()) {
window.localStorage.setItem("quarto-color-scheme", value);
} else {
localAlternateSentinel = value;
}
}
const getColorSchemeSentinel = () => {
if (!isFileUrl()) {
const storageValue = window.localStorage.getItem("quarto-color-scheme");
return storageValue != null ? storageValue : localAlternateSentinel;
} else {
return localAlternateSentinel;
}
}
let localAlternateSentinel = 'default';
// Dark / light mode switch
window.quartoToggleColorScheme = () => {
// Read the current dark / light value
let toAlternate = !hasAlternateSentinel();
toggleColorMode(toAlternate);
setStyleSentinel(toAlternate);
};
// Ensure there is a toggle, if there isn't float one in the top right
if (window.document.querySelector('.quarto-color-scheme-toggle') === null) {
const a = window.document.createElement('a');
a.classList.add('top-right');
a.classList.add('quarto-color-scheme-toggle');
a.href = "";
a.onclick = function() { try { window.quartoToggleColorScheme(); } catch {} return false; };
const i = window.document.createElement("i");
i.classList.add('bi');
a.appendChild(i);
window.document.body.appendChild(a);
}
// Switch to dark mode if need be
if (hasAlternateSentinel()) {
toggleColorMode(true);
} else {
toggleColorMode(false);
}
const icon = "";
const anchorJS = new window.AnchorJS();
anchorJS.options = {
placement: 'right',
icon: icon
};
anchorJS.add('.anchored');
const isCodeAnnotation = (el) => {
for (const clz of el.classList) {
if (clz.startsWith('code-annotation-')) {
return true;
}
}
return false;
}
const clipboard = new window.ClipboardJS('.code-copy-button', {
text: function(trigger) {
const codeEl = trigger.previousElementSibling.cloneNode(true);
for (const childEl of codeEl.children) {
if (isCodeAnnotation(childEl)) {
childEl.remove();
}
}
return codeEl.innerText;
}
});
clipboard.on('success', function(e) {
// button target
const button = e.trigger;
// don't keep focus
button.blur();
// flash "checked"
button.classList.add('code-copy-button-checked');
var currentTitle = button.getAttribute("title");
button.setAttribute("title", "Copié");
let tooltip;
if (window.bootstrap) {
button.setAttribute("data-bs-toggle", "tooltip");
button.setAttribute("data-bs-placement", "left");
button.setAttribute("data-bs-title", "Copié");
tooltip = new bootstrap.Tooltip(button,
{ trigger: "manual",
customClass: "code-copy-button-tooltip",
offset: [0, -8]});
tooltip.show();
}
setTimeout(function() {
if (tooltip) {
tooltip.hide();
button.removeAttribute("data-bs-title");
button.removeAttribute("data-bs-toggle");
button.removeAttribute("data-bs-placement");
}
button.setAttribute("title", currentTitle);
button.classList.remove('code-copy-button-checked');
}, 1000);
// clear code selection
e.clearSelection();
});
function tippyHover(el, contentFn) {
const config = {
allowHTML: true,
content: contentFn,
maxWidth: 500,
delay: 100,
arrow: false,
appendTo: function(el) {
return el.parentElement;
},
interactive: true,
interactiveBorder: 10,
theme: 'quarto',
placement: 'bottom-start'
};
window.tippy(el, config);
}
const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
for (var i=0; i<noterefs.length; i++) {
const ref = noterefs[i];
tippyHover(ref, function() {
// use id or data attribute instead here
let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
try { href = new URL(href).hash; } catch {}
const id = href.replace(/^#\/?/, "");
const note = window.document.getElementById(id);
return note.innerHTML;
});
}
let selectedAnnoteEl;
const selectorForAnnotation = ( cell, annotation) => {
let cellAttr = 'data-code-cell="' + cell + '"';
let lineAttr = 'data-code-annotation="' + annotation + '"';
const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
return selector;
}
const selectCodeLines = (annoteEl) => {
const doc = window.document;
const targetCell = annoteEl.getAttribute("data-target-cell");
const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
const lines = annoteSpan.getAttribute("data-code-lines").split(",");
const lineIds = lines.map((line) => {
return targetCell + "-" + line;
})
let top = null;
let height = null;
let parent = null;
if (lineIds.length > 0) {
//compute the position of the single el (top and bottom and make a div)
const el = window.document.getElementById(lineIds[0]);
top = el.offsetTop;
height = el.offsetHeight;
parent = el.parentElement.parentElement;
if (lineIds.length > 1) {
const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
const bottom = lastEl.offsetTop + lastEl.offsetHeight;
height = bottom - top;
}
if (top !== null && height !== null && parent !== null) {
// cook up a div (if necessary) and position it
let div = window.document.getElementById("code-annotation-line-highlight");
if (div === null) {
div = window.document.createElement("div");
div.setAttribute("id", "code-annotation-line-highlight");
div.style.position = 'absolute';
parent.appendChild(div);
}
div.style.top = top - 2 + "px";
div.style.height = height + 4 + "px";
let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
if (gutterDiv === null) {
gutterDiv = window.document.createElement("div");
gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
gutterDiv.style.position = 'absolute';
const codeCell = window.document.getElementById(targetCell);
const gutter = codeCell.querySelector('.code-annotation-gutter');
gutter.appendChild(gutterDiv);
}
gutterDiv.style.top = top - 2 + "px";
gutterDiv.style.height = height + 4 + "px";
}
selectedAnnoteEl = annoteEl;
}
};
const unselectCodeLines = () => {
const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
elementsIds.forEach((elId) => {
const div = window.document.getElementById(elId);
if (div) {
div.remove();
}
});
selectedAnnoteEl = undefined;
};
// Attach click handler to the DT
const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
for (const annoteDlNode of annoteDls) {
annoteDlNode.addEventListener('click', (event) => {
const clickedEl = event.target;
if (clickedEl !== selectedAnnoteEl) {
unselectCodeLines();
const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
if (activeEl) {
activeEl.classList.remove('code-annotation-active');
}
selectCodeLines(clickedEl);
clickedEl.classList.add('code-annotation-active');
} else {
// Unselect the line
unselectCodeLines();
clickedEl.classList.remove('code-annotation-active');
}
});
}
const findCites = (el) => {
const parentEl = el.parentElement;
if (parentEl) {
const cites = parentEl.dataset.cites;
if (cites) {
return {
el,
cites: cites.split(' ')
};
} else {
return findCites(el.parentElement)
}
} else {
return undefined;
}
};
var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
for (var i=0; i<bibliorefs.length; i++) {
const ref = bibliorefs[i];
const citeInfo = findCites(ref);
if (citeInfo) {
tippyHover(citeInfo.el, function() {
var popup = window.document.createElement('div');
citeInfo.cites.forEach(function(cite) {
var citeDiv = window.document.createElement('div');
citeDiv.classList.add('hanging-indent');
citeDiv.classList.add('csl-entry');
var biblioDiv = window.document.getElementById('ref-' + cite);
if (biblioDiv) {
citeDiv.innerHTML = biblioDiv.innerHTML;
}
popup.appendChild(citeDiv);
});
return popup.innerHTML;
});
}
}
});
</script>
</div> <!-- /content -->
</body></html>
-1
View File
@@ -1 +0,0 @@
Sitemap: https://osk42.quarto.pub/feutre/sitemap.xml
-93
View File
@@ -1,93 +0,0 @@
[
{
"objectID": "about.html",
"href": "about.html",
"title": "A propos",
"section": "",
"text": "About this blog"
},
{
"objectID": "posts/representation_de_tous_les_etudiants.html",
"href": "posts/representation_de_tous_les_etudiants.html",
"title": "Représentation de tous les étudiants",
"section": "",
"text": "Un des buts principaux de la FEUTRE est de représenter au mieux lensemble des étudiants (FEUTRE singifie “Fédération Étudiante de lUniversité de Tours pour la Représentation Égalitaire”).\nNous cherchons notamment à mettre en avant les intérêts des étudiants qui sont souvent moins représentés, comme les étudiants en situation de handicap, ou bien les étudiants des campus de Blois.\nNous sommes convaincus quun bon moyen de faire cela est de passer par limplication dans la politique de luniversité, afin daméliorer les liens entre ladministration et les étudiants. La promotion de la démocratie participative nous semble être un moyen non seulement de mieux réaliser ce projet, mais également de lui donner une portée plus grande, car la démocratie participative ne se limite pas à luniversité."
},
{
"objectID": "posts/personnes/mulard_andreas.html",
"href": "posts/personnes/mulard_andreas.html",
"title": "Andreas Mulard",
"section": "",
"text": "Je suis étudiant en seconde année en double licence Informatique et Mathématiques, sur Tours. Je fais des actions de volontariat pour TouraineUkraine et je suis membre de lassociation étudiante Munto, je suis aussi actif sur le campus en tant que délégué de ma promotion et tuteur des L1 pour les mathématiques.\nJai décidé de mengager dans la vie étudiante et administrative en montant une liste indépendante pour représenter librement les étudiants, sans directive venues dau dessus. Quil était préférable une liste sans engagement avec la possibilité de nous contacter et proposer de nouvelle chose dans une vision dune démocratie fluide à la faculté."
},
{
"objectID": "posts/personnes/guerin_harmonie.html",
"href": "posts/personnes/guerin_harmonie.html",
"title": "Harmonie Guérin",
"section": "",
"text": "Je suis étudiante en seconde année de licence en Mathématiques à Tours.\nCe qui me préccupe cest le bien-être des étudiants autour et au sein de la fac. Jai intégré la L.I.S.T.E. afin de pouvoir remettre en question certaines pratiques existantes ou améliorer le quotidien de nos étudiants."
},
{
"objectID": "posts/personnes/guerin_harmonie.html#auto-promotion",
"href": "posts/personnes/guerin_harmonie.html#auto-promotion",
"title": "Harmonie Guérin",
"section": "Auto-promotion",
"text": "Auto-promotion\nJe suis, à côté des cours, une dessinatrice et peintre - plutôt dans lunivers des mangas. Je fais de la vente en parallèle de peintures tout format sur papier ou sur verre (à hauteur de 10€ à 75€)\nMon insta: @h.g.w3ll5"
},
{
"objectID": "posts/conseils_de_l_universite/conseils_de_composantes/index.html",
"href": "posts/conseils_de_l_universite/conseils_de_composantes/index.html",
"title": "Conseils de composantes",
"section": "",
"text": "Chaque composante de luniversité de Tours est administrée par un conseil élu, qui comprend des représentants des personnels enseignants, des BIATOSS, des étudiants et des personnalités extérieures.\nSes missions :\n\nl’élection du Directeur (parmi les enseignants, les enseignants-chercheurs ou les chercheurs), des Assesseurs, du bureau du Conseil\nla politique générale de la composante, notamment sur le plan pédagogique : création de diplômes, échanges d’étudiants avec les universités étrangères\nles méthodes pédagogiques : modalités de contrôle des examens, calendrier de lannée universitaire\nle budget, attribution des subventions aux associations d’étudiants.\n\n\n\n\n\n\n\n\n\n\n\nListe des conseils de composantes\n\n\n\n\n\n\nConseil de lUFR de Sciences et Techniques\n\n\n\n\n\n\nAucun article correspondant"
},
{
"objectID": "propositions.html",
"href": "propositions.html",
"title": "Propositions",
"section": "",
"text": "Liste des propositions\nVoici les propositions portées par la FEUTRE :\n\n\n\n\n\n\n\n\n\n\nAucun article correspondant"
},
{
"objectID": "posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.html",
"href": "posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.html",
"title": "Commission Formation et Vie Universitaire (CFVU)",
"section": "",
"text": "La Commission Formation et Vie Universitaire (CFVU) La Commission de la Formation et de la Vie Universitaire comprend quarante membres. Elle participe, par ses avis et ses vœux, à ladministration de luniversité et est plus spécifiquement consultée au sujet des programmes de formation des composantes. Ses missions :\nles orientations des enseignements de formation initiale et continue ;\nles demandes d'habilitation et les projets de nouvelles filières ;\nl'évaluation des enseignements ;\nles mesures de nature à permettre la mise en œuvre de l'orientation des étudiants et la validation des acquis, à faciliter leur entrée dans la vie active, à favoriser les activités culturelles, sportives, sociales ou associatives offertes aux étudiants et à améliorer leurs conditions de vie et de travail.\nles mesures relatives aux activités de soutien, aux œuvres universitaires et scolaires, aux services médicaux et sociaux, aux bibliothèques et centres de documentation. Elle est garante des libertés politiques et syndicales étudiantes.\nLa Commission de la Formation et de la Vie Universitaire élit en son sein un vice-président étudiant chargé des questions de vie étudiante, en lien avec les centres régionaux et locaux des œuvres universitaires et scolaires.\nVice-président : Florent Malrieu - Composition du CFVU"
},
{
"objectID": "posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html",
"href": "posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html",
"title": "Conseil de lUFR de Sciences et Techniques",
"section": "",
"text": "Cest le conseil de composante pour lUFR de Sciences et Techniques.\n\n\n\n\n\n\nButs de ce conseil\n\n\n\nCe conseil est composé dune quarantaine de membres élus parmi les enseignants-chercheurs, les enseignants, les personnels administratifs et techniques et les étudiants, ainsi que des personnalités extérieures.\nIl est présidé par la·le Directeur·rice de la Faculté.\nY sont discuté·e·s :\n\nles questions dadministration\nla « politique » de la Faculté\nlorganisation générale des études (la pédagogie)\nles décisions permettant au directeur dagir au mieux pour les intérêts de la Faculté\n\nLa page officielle de ce conseil est ici.\n\n\n\n\n\n\n\n\nElus de ce conseil\n\n\n\nLa L.I.S.T.E. à soutenu une liste de candidats représentants étudiants au Conseil de lUFR.\nLes élections on mené à la nomination de 7 élus dont 3 suppléants.\n\nMembres élus\n\nMulard Andreas \nPlaisant Oscar\nGuérin Harmonie\nMsiah Romain\nLeguay Émerance\nLagasse Adrian"
},
{
"objectID": "posts/personnes/plaisant_oscar.html",
"href": "posts/personnes/plaisant_oscar.html",
"title": "Oscar Plaisant",
"section": "",
"text": "Je étudiant en deuxième année dInformatique et de mathématiques, et passionné par ces deux sujets.\nJ’étudie principalement au campus de Blois, et cest pour essayer de représenter les voix des étudiants Blaisois que jai voulu être dans la L.I.S.T.E.\nJe cherche également à défendre lindépendance numérique, ainsi que l’égalité entre les étudiants.\nCest moi qui moccupe de ce site internet !"
},
{
"objectID": "posts/personnes/plaisant_oscar.html#auto-promotion",
"href": "posts/personnes/plaisant_oscar.html#auto-promotion",
"title": "Oscar Plaisant",
"section": "Auto-promotion",
"text": "Auto-promotion\n\nmon blog : OSK42\nma chaîne youtube : OsKaR"
},
{
"objectID": "posts/personnes/lagasse_adrian.html",
"href": "posts/personnes/lagasse_adrian.html",
"title": "Adrian Lagasse",
"section": "",
"text": "Étudiant en deuxième année de Licence dInformatique à Tours et passionné par les sujets d’énergie et denvironnement.\nJe veux faire bouger la fac dans le bon sens pour quelle puisse être à la pointe sur ces thèmes. Le Conseil de lUFR est lorgane le plus à même de faire changer les choses sur le campus, alors jai décidé de tenter ma chance."
},
{
"objectID": "index.html",
"href": "index.html",
"title": "FEUTRE",
"section": "",
"text": "Site de la FEUTRE\n\n\n\n\n\n\nQui sommes-nous ?\n\n\n\nLa Fédération Étudiante de lUniversité de Tours pour la Représentation et l’Égalité est une association composée d’étudiants provenant des campus de Blois et de Tours.\nCette association est indépendante, cest-à-dire quelle ne dépend pas dun syndicat ou dune quelconque organisation.\nVous pouvez nous contacter à ladresse email 2023liste@gmail.com.\n\n\nfeutrebloistours@gmail.com\n\n\n\n\n\n\nNos objectifs\n\n\n\nLa FEUTRE à pour but de créer et fédérer des associations afin de :\n\n\n\n\n\ncréer et fédérer des associations étudiantes\nsoutenir des candidats aux différents conseils de lUniversité de Tours\nReprésenter les intérêts des étudiants en sciences de lUniversité de Tours\n\nfaire en sorte que chaque étudiant soit représenté\naméliorer le confort d’études\nsoutenir des candidats ou des listes de représentants étudiants\naméliorer la communication entre les étudiants et ladministration\nfaire avancer la Décarbonation\n\npromouvoir la démocratie\n\norganiser des événements de démocratie participative\npromouvoir lindépendance numérique\nimpliquer des étudiants dans la vie politique\n\n\n\n\n\n\n\n\n\n\nNos actions actuelles\n\n\n\n\nL.I.S.T.E. (Liste Indépendante des Sciences et Techniques Estudiantine)\n\nAssociation de la FEUTRE\nA soutenu une liste de candidats au conseil de lUFR. Ce conseil vote le budget et gère lorganisation pratiques(es enseignements)\n\nÉlections des étudiants représentants au Conseil dAdministration des Crous\n\nnous sommes en préparation pour cette élection. Nhésitez pas à nous contacter si vous souhaitez être candidats.\n\n\n\n\n\n\n\n\n\n\nMembres de la L.I.S.T.E\n\n\n\n\nMulard Andreas \nPlaisant Oscar\nGuérin Harmonie\nMsiah Romain\nLeguay Émerance\nLagasse Adrian"
}
]
File diff suppressed because one or more lines are too long
+104 -44
View File
@@ -1,8 +1,14 @@
/*!
* Bootstrap Icons v1.11.1 (https://icons.getbootstrap.com/)
* Copyright 2019-2023 The Bootstrap Authors
* Licensed under MIT (https://github.com/twbs/icons/blob/main/LICENSE)
*/
@font-face { @font-face {
font-display: block; font-display: block;
font-family: "bootstrap-icons"; font-family: "bootstrap-icons";
src: src:
url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff"); url("./bootstrap-icons.woff?2820a3852bdb9a5832199cc61cec4e65") format("woff");
} }
.bi::before, .bi::before,
@@ -441,7 +447,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-cloud-fog2::before { content: "\f2a2"; } .bi-cloud-fog2::before { content: "\f2a2"; }
.bi-cloud-hail-fill::before { content: "\f2a3"; } .bi-cloud-hail-fill::before { content: "\f2a3"; }
.bi-cloud-hail::before { content: "\f2a4"; } .bi-cloud-hail::before { content: "\f2a4"; }
.bi-cloud-haze-1::before { content: "\f2a5"; }
.bi-cloud-haze-fill::before { content: "\f2a6"; } .bi-cloud-haze-fill::before { content: "\f2a6"; }
.bi-cloud-haze::before { content: "\f2a7"; } .bi-cloud-haze::before { content: "\f2a7"; }
.bi-cloud-haze2-fill::before { content: "\f2a8"; } .bi-cloud-haze2-fill::before { content: "\f2a8"; }
@@ -1437,21 +1442,16 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-dpad::before { content: "\f687"; } .bi-dpad::before { content: "\f687"; }
.bi-ear-fill::before { content: "\f688"; } .bi-ear-fill::before { content: "\f688"; }
.bi-ear::before { content: "\f689"; } .bi-ear::before { content: "\f689"; }
.bi-envelope-check-1::before { content: "\f68a"; }
.bi-envelope-check-fill::before { content: "\f68b"; } .bi-envelope-check-fill::before { content: "\f68b"; }
.bi-envelope-check::before { content: "\f68c"; } .bi-envelope-check::before { content: "\f68c"; }
.bi-envelope-dash-1::before { content: "\f68d"; }
.bi-envelope-dash-fill::before { content: "\f68e"; } .bi-envelope-dash-fill::before { content: "\f68e"; }
.bi-envelope-dash::before { content: "\f68f"; } .bi-envelope-dash::before { content: "\f68f"; }
.bi-envelope-exclamation-1::before { content: "\f690"; }
.bi-envelope-exclamation-fill::before { content: "\f691"; } .bi-envelope-exclamation-fill::before { content: "\f691"; }
.bi-envelope-exclamation::before { content: "\f692"; } .bi-envelope-exclamation::before { content: "\f692"; }
.bi-envelope-plus-fill::before { content: "\f693"; } .bi-envelope-plus-fill::before { content: "\f693"; }
.bi-envelope-plus::before { content: "\f694"; } .bi-envelope-plus::before { content: "\f694"; }
.bi-envelope-slash-1::before { content: "\f695"; }
.bi-envelope-slash-fill::before { content: "\f696"; } .bi-envelope-slash-fill::before { content: "\f696"; }
.bi-envelope-slash::before { content: "\f697"; } .bi-envelope-slash::before { content: "\f697"; }
.bi-envelope-x-1::before { content: "\f698"; }
.bi-envelope-x-fill::before { content: "\f699"; } .bi-envelope-x-fill::before { content: "\f699"; }
.bi-envelope-x::before { content: "\f69a"; } .bi-envelope-x::before { content: "\f69a"; }
.bi-explicit-fill::before { content: "\f69b"; } .bi-explicit-fill::before { content: "\f69b"; }
@@ -1461,8 +1461,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-list-columns-reverse::before { content: "\f69f"; } .bi-list-columns-reverse::before { content: "\f69f"; }
.bi-list-columns::before { content: "\f6a0"; } .bi-list-columns::before { content: "\f6a0"; }
.bi-meta::before { content: "\f6a1"; } .bi-meta::before { content: "\f6a1"; }
.bi-mortorboard-fill::before { content: "\f6a2"; }
.bi-mortorboard::before { content: "\f6a3"; }
.bi-nintendo-switch::before { content: "\f6a4"; } .bi-nintendo-switch::before { content: "\f6a4"; }
.bi-pc-display-horizontal::before { content: "\f6a5"; } .bi-pc-display-horizontal::before { content: "\f6a5"; }
.bi-pc-display::before { content: "\f6a6"; } .bi-pc-display::before { content: "\f6a6"; }
@@ -1481,7 +1479,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-send-check::before { content: "\f6b3"; } .bi-send-check::before { content: "\f6b3"; }
.bi-send-dash-fill::before { content: "\f6b4"; } .bi-send-dash-fill::before { content: "\f6b4"; }
.bi-send-dash::before { content: "\f6b5"; } .bi-send-dash::before { content: "\f6b5"; }
.bi-send-exclamation-1::before { content: "\f6b6"; }
.bi-send-exclamation-fill::before { content: "\f6b7"; } .bi-send-exclamation-fill::before { content: "\f6b7"; }
.bi-send-exclamation::before { content: "\f6b8"; } .bi-send-exclamation::before { content: "\f6b8"; }
.bi-send-fill::before { content: "\f6b9"; } .bi-send-fill::before { content: "\f6b9"; }
@@ -1493,7 +1490,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-send-x::before { content: "\f6bf"; } .bi-send-x::before { content: "\f6bf"; }
.bi-send::before { content: "\f6c0"; } .bi-send::before { content: "\f6c0"; }
.bi-steam::before { content: "\f6c1"; } .bi-steam::before { content: "\f6c1"; }
.bi-terminal-dash-1::before { content: "\f6c2"; }
.bi-terminal-dash::before { content: "\f6c3"; } .bi-terminal-dash::before { content: "\f6c3"; }
.bi-terminal-plus::before { content: "\f6c4"; } .bi-terminal-plus::before { content: "\f6c4"; }
.bi-terminal-split::before { content: "\f6c5"; } .bi-terminal-split::before { content: "\f6c5"; }
@@ -1523,7 +1519,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-usb-symbol::before { content: "\f6dd"; } .bi-usb-symbol::before { content: "\f6dd"; }
.bi-usb::before { content: "\f6de"; } .bi-usb::before { content: "\f6de"; }
.bi-boombox-fill::before { content: "\f6df"; } .bi-boombox-fill::before { content: "\f6df"; }
.bi-displayport-1::before { content: "\f6e0"; }
.bi-displayport::before { content: "\f6e1"; } .bi-displayport::before { content: "\f6e1"; }
.bi-gpu-card::before { content: "\f6e2"; } .bi-gpu-card::before { content: "\f6e2"; }
.bi-memory::before { content: "\f6e3"; } .bi-memory::before { content: "\f6e3"; }
@@ -1536,8 +1531,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-pci-card::before { content: "\f6ea"; } .bi-pci-card::before { content: "\f6ea"; }
.bi-router-fill::before { content: "\f6eb"; } .bi-router-fill::before { content: "\f6eb"; }
.bi-router::before { content: "\f6ec"; } .bi-router::before { content: "\f6ec"; }
.bi-ssd-fill::before { content: "\f6ed"; }
.bi-ssd::before { content: "\f6ee"; }
.bi-thunderbolt-fill::before { content: "\f6ef"; } .bi-thunderbolt-fill::before { content: "\f6ef"; }
.bi-thunderbolt::before { content: "\f6f0"; } .bi-thunderbolt::before { content: "\f6f0"; }
.bi-usb-drive-fill::before { content: "\f6f1"; } .bi-usb-drive-fill::before { content: "\f6f1"; }
@@ -1644,7 +1637,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-filetype-pdf::before { content: "\f756"; } .bi-filetype-pdf::before { content: "\f756"; }
.bi-filetype-php::before { content: "\f757"; } .bi-filetype-php::before { content: "\f757"; }
.bi-filetype-png::before { content: "\f758"; } .bi-filetype-png::before { content: "\f758"; }
.bi-filetype-ppt-1::before { content: "\f759"; }
.bi-filetype-ppt::before { content: "\f75a"; } .bi-filetype-ppt::before { content: "\f75a"; }
.bi-filetype-psd::before { content: "\f75b"; } .bi-filetype-psd::before { content: "\f75b"; }
.bi-filetype-py::before { content: "\f75c"; } .bi-filetype-py::before { content: "\f75c"; }
@@ -1660,7 +1652,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-filetype-txt::before { content: "\f766"; } .bi-filetype-txt::before { content: "\f766"; }
.bi-filetype-wav::before { content: "\f767"; } .bi-filetype-wav::before { content: "\f767"; }
.bi-filetype-woff::before { content: "\f768"; } .bi-filetype-woff::before { content: "\f768"; }
.bi-filetype-xls-1::before { content: "\f769"; }
.bi-filetype-xls::before { content: "\f76a"; } .bi-filetype-xls::before { content: "\f76a"; }
.bi-filetype-xml::before { content: "\f76b"; } .bi-filetype-xml::before { content: "\f76b"; }
.bi-filetype-yml::before { content: "\f76c"; } .bi-filetype-yml::before { content: "\f76c"; }
@@ -1703,56 +1694,38 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-filetype-json::before { content: "\f791"; } .bi-filetype-json::before { content: "\f791"; }
.bi-filetype-pptx::before { content: "\f792"; } .bi-filetype-pptx::before { content: "\f792"; }
.bi-filetype-xlsx::before { content: "\f793"; } .bi-filetype-xlsx::before { content: "\f793"; }
.bi-1-circle-1::before { content: "\f794"; }
.bi-1-circle-fill-1::before { content: "\f795"; }
.bi-1-circle-fill::before { content: "\f796"; } .bi-1-circle-fill::before { content: "\f796"; }
.bi-1-circle::before { content: "\f797"; } .bi-1-circle::before { content: "\f797"; }
.bi-1-square-fill::before { content: "\f798"; } .bi-1-square-fill::before { content: "\f798"; }
.bi-1-square::before { content: "\f799"; } .bi-1-square::before { content: "\f799"; }
.bi-2-circle-1::before { content: "\f79a"; }
.bi-2-circle-fill-1::before { content: "\f79b"; }
.bi-2-circle-fill::before { content: "\f79c"; } .bi-2-circle-fill::before { content: "\f79c"; }
.bi-2-circle::before { content: "\f79d"; } .bi-2-circle::before { content: "\f79d"; }
.bi-2-square-fill::before { content: "\f79e"; } .bi-2-square-fill::before { content: "\f79e"; }
.bi-2-square::before { content: "\f79f"; } .bi-2-square::before { content: "\f79f"; }
.bi-3-circle-1::before { content: "\f7a0"; }
.bi-3-circle-fill-1::before { content: "\f7a1"; }
.bi-3-circle-fill::before { content: "\f7a2"; } .bi-3-circle-fill::before { content: "\f7a2"; }
.bi-3-circle::before { content: "\f7a3"; } .bi-3-circle::before { content: "\f7a3"; }
.bi-3-square-fill::before { content: "\f7a4"; } .bi-3-square-fill::before { content: "\f7a4"; }
.bi-3-square::before { content: "\f7a5"; } .bi-3-square::before { content: "\f7a5"; }
.bi-4-circle-1::before { content: "\f7a6"; }
.bi-4-circle-fill-1::before { content: "\f7a7"; }
.bi-4-circle-fill::before { content: "\f7a8"; } .bi-4-circle-fill::before { content: "\f7a8"; }
.bi-4-circle::before { content: "\f7a9"; } .bi-4-circle::before { content: "\f7a9"; }
.bi-4-square-fill::before { content: "\f7aa"; } .bi-4-square-fill::before { content: "\f7aa"; }
.bi-4-square::before { content: "\f7ab"; } .bi-4-square::before { content: "\f7ab"; }
.bi-5-circle-1::before { content: "\f7ac"; }
.bi-5-circle-fill-1::before { content: "\f7ad"; }
.bi-5-circle-fill::before { content: "\f7ae"; } .bi-5-circle-fill::before { content: "\f7ae"; }
.bi-5-circle::before { content: "\f7af"; } .bi-5-circle::before { content: "\f7af"; }
.bi-5-square-fill::before { content: "\f7b0"; } .bi-5-square-fill::before { content: "\f7b0"; }
.bi-5-square::before { content: "\f7b1"; } .bi-5-square::before { content: "\f7b1"; }
.bi-6-circle-1::before { content: "\f7b2"; }
.bi-6-circle-fill-1::before { content: "\f7b3"; }
.bi-6-circle-fill::before { content: "\f7b4"; } .bi-6-circle-fill::before { content: "\f7b4"; }
.bi-6-circle::before { content: "\f7b5"; } .bi-6-circle::before { content: "\f7b5"; }
.bi-6-square-fill::before { content: "\f7b6"; } .bi-6-square-fill::before { content: "\f7b6"; }
.bi-6-square::before { content: "\f7b7"; } .bi-6-square::before { content: "\f7b7"; }
.bi-7-circle-1::before { content: "\f7b8"; }
.bi-7-circle-fill-1::before { content: "\f7b9"; }
.bi-7-circle-fill::before { content: "\f7ba"; } .bi-7-circle-fill::before { content: "\f7ba"; }
.bi-7-circle::before { content: "\f7bb"; } .bi-7-circle::before { content: "\f7bb"; }
.bi-7-square-fill::before { content: "\f7bc"; } .bi-7-square-fill::before { content: "\f7bc"; }
.bi-7-square::before { content: "\f7bd"; } .bi-7-square::before { content: "\f7bd"; }
.bi-8-circle-1::before { content: "\f7be"; }
.bi-8-circle-fill-1::before { content: "\f7bf"; }
.bi-8-circle-fill::before { content: "\f7c0"; } .bi-8-circle-fill::before { content: "\f7c0"; }
.bi-8-circle::before { content: "\f7c1"; } .bi-8-circle::before { content: "\f7c1"; }
.bi-8-square-fill::before { content: "\f7c2"; } .bi-8-square-fill::before { content: "\f7c2"; }
.bi-8-square::before { content: "\f7c3"; } .bi-8-square::before { content: "\f7c3"; }
.bi-9-circle-1::before { content: "\f7c4"; }
.bi-9-circle-fill-1::before { content: "\f7c5"; }
.bi-9-circle-fill::before { content: "\f7c6"; } .bi-9-circle-fill::before { content: "\f7c6"; }
.bi-9-circle::before { content: "\f7c7"; } .bi-9-circle::before { content: "\f7c7"; }
.bi-9-square-fill::before { content: "\f7c8"; } .bi-9-square-fill::before { content: "\f7c8"; }
@@ -1771,8 +1744,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-browser-edge::before { content: "\f7d5"; } .bi-browser-edge::before { content: "\f7d5"; }
.bi-browser-firefox::before { content: "\f7d6"; } .bi-browser-firefox::before { content: "\f7d6"; }
.bi-browser-safari::before { content: "\f7d7"; } .bi-browser-safari::before { content: "\f7d7"; }
.bi-c-circle-1::before { content: "\f7d8"; }
.bi-c-circle-fill-1::before { content: "\f7d9"; }
.bi-c-circle-fill::before { content: "\f7da"; } .bi-c-circle-fill::before { content: "\f7da"; }
.bi-c-circle::before { content: "\f7db"; } .bi-c-circle::before { content: "\f7db"; }
.bi-c-square-fill::before { content: "\f7dc"; } .bi-c-square-fill::before { content: "\f7dc"; }
@@ -1783,8 +1754,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-car-front::before { content: "\f7e1"; } .bi-car-front::before { content: "\f7e1"; }
.bi-cassette-fill::before { content: "\f7e2"; } .bi-cassette-fill::before { content: "\f7e2"; }
.bi-cassette::before { content: "\f7e3"; } .bi-cassette::before { content: "\f7e3"; }
.bi-cc-circle-1::before { content: "\f7e4"; }
.bi-cc-circle-fill-1::before { content: "\f7e5"; }
.bi-cc-circle-fill::before { content: "\f7e6"; } .bi-cc-circle-fill::before { content: "\f7e6"; }
.bi-cc-circle::before { content: "\f7e7"; } .bi-cc-circle::before { content: "\f7e7"; }
.bi-cc-square-fill::before { content: "\f7e8"; } .bi-cc-square-fill::before { content: "\f7e8"; }
@@ -1803,8 +1772,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-filetype-sql::before { content: "\f7f5"; } .bi-filetype-sql::before { content: "\f7f5"; }
.bi-fire::before { content: "\f7f6"; } .bi-fire::before { content: "\f7f6"; }
.bi-google-play::before { content: "\f7f7"; } .bi-google-play::before { content: "\f7f7"; }
.bi-h-circle-1::before { content: "\f7f8"; }
.bi-h-circle-fill-1::before { content: "\f7f9"; }
.bi-h-circle-fill::before { content: "\f7fa"; } .bi-h-circle-fill::before { content: "\f7fa"; }
.bi-h-circle::before { content: "\f7fb"; } .bi-h-circle::before { content: "\f7fb"; }
.bi-h-square-fill::before { content: "\f7fc"; } .bi-h-square-fill::before { content: "\f7fc"; }
@@ -1813,8 +1780,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-lungs-fill::before { content: "\f7ff"; } .bi-lungs-fill::before { content: "\f7ff"; }
.bi-lungs::before { content: "\f800"; } .bi-lungs::before { content: "\f800"; }
.bi-microsoft-teams::before { content: "\f801"; } .bi-microsoft-teams::before { content: "\f801"; }
.bi-p-circle-1::before { content: "\f802"; }
.bi-p-circle-fill-1::before { content: "\f803"; }
.bi-p-circle-fill::before { content: "\f804"; } .bi-p-circle-fill::before { content: "\f804"; }
.bi-p-circle::before { content: "\f805"; } .bi-p-circle::before { content: "\f805"; }
.bi-p-square-fill::before { content: "\f806"; } .bi-p-square-fill::before { content: "\f806"; }
@@ -1823,8 +1788,6 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-pass::before { content: "\f809"; } .bi-pass::before { content: "\f809"; }
.bi-prescription::before { content: "\f80a"; } .bi-prescription::before { content: "\f80a"; }
.bi-prescription2::before { content: "\f80b"; } .bi-prescription2::before { content: "\f80b"; }
.bi-r-circle-1::before { content: "\f80c"; }
.bi-r-circle-fill-1::before { content: "\f80d"; }
.bi-r-circle-fill::before { content: "\f80e"; } .bi-r-circle-fill::before { content: "\f80e"; }
.bi-r-circle::before { content: "\f80f"; } .bi-r-circle::before { content: "\f80f"; }
.bi-r-square-fill::before { content: "\f810"; } .bi-r-square-fill::before { content: "\f810"; }
@@ -2016,3 +1979,100 @@ url("./bootstrap-icons.woff?2ab2cbbe07fcebb53bdaa7313bb290f2") format("woff");
.bi-sina-weibo::before { content: "\f8ca"; } .bi-sina-weibo::before { content: "\f8ca"; }
.bi-tencent-qq::before { content: "\f8cb"; } .bi-tencent-qq::before { content: "\f8cb"; }
.bi-wikipedia::before { content: "\f8cc"; } .bi-wikipedia::before { content: "\f8cc"; }
.bi-alphabet-uppercase::before { content: "\f2a5"; }
.bi-alphabet::before { content: "\f68a"; }
.bi-amazon::before { content: "\f68d"; }
.bi-arrows-collapse-vertical::before { content: "\f690"; }
.bi-arrows-expand-vertical::before { content: "\f695"; }
.bi-arrows-vertical::before { content: "\f698"; }
.bi-arrows::before { content: "\f6a2"; }
.bi-ban-fill::before { content: "\f6a3"; }
.bi-ban::before { content: "\f6b6"; }
.bi-bing::before { content: "\f6c2"; }
.bi-cake::before { content: "\f6e0"; }
.bi-cake2::before { content: "\f6ed"; }
.bi-cookie::before { content: "\f6ee"; }
.bi-copy::before { content: "\f759"; }
.bi-crosshair::before { content: "\f769"; }
.bi-crosshair2::before { content: "\f794"; }
.bi-emoji-astonished-fill::before { content: "\f795"; }
.bi-emoji-astonished::before { content: "\f79a"; }
.bi-emoji-grimace-fill::before { content: "\f79b"; }
.bi-emoji-grimace::before { content: "\f7a0"; }
.bi-emoji-grin-fill::before { content: "\f7a1"; }
.bi-emoji-grin::before { content: "\f7a6"; }
.bi-emoji-surprise-fill::before { content: "\f7a7"; }
.bi-emoji-surprise::before { content: "\f7ac"; }
.bi-emoji-tear-fill::before { content: "\f7ad"; }
.bi-emoji-tear::before { content: "\f7b2"; }
.bi-envelope-arrow-down-fill::before { content: "\f7b3"; }
.bi-envelope-arrow-down::before { content: "\f7b8"; }
.bi-envelope-arrow-up-fill::before { content: "\f7b9"; }
.bi-envelope-arrow-up::before { content: "\f7be"; }
.bi-feather::before { content: "\f7bf"; }
.bi-feather2::before { content: "\f7c4"; }
.bi-floppy-fill::before { content: "\f7c5"; }
.bi-floppy::before { content: "\f7d8"; }
.bi-floppy2-fill::before { content: "\f7d9"; }
.bi-floppy2::before { content: "\f7e4"; }
.bi-gitlab::before { content: "\f7e5"; }
.bi-highlighter::before { content: "\f7f8"; }
.bi-marker-tip::before { content: "\f802"; }
.bi-nvme-fill::before { content: "\f803"; }
.bi-nvme::before { content: "\f80c"; }
.bi-opencollective::before { content: "\f80d"; }
.bi-pci-card-network::before { content: "\f8cd"; }
.bi-pci-card-sound::before { content: "\f8ce"; }
.bi-radar::before { content: "\f8cf"; }
.bi-send-arrow-down-fill::before { content: "\f8d0"; }
.bi-send-arrow-down::before { content: "\f8d1"; }
.bi-send-arrow-up-fill::before { content: "\f8d2"; }
.bi-send-arrow-up::before { content: "\f8d3"; }
.bi-sim-slash-fill::before { content: "\f8d4"; }
.bi-sim-slash::before { content: "\f8d5"; }
.bi-sourceforge::before { content: "\f8d6"; }
.bi-substack::before { content: "\f8d7"; }
.bi-threads-fill::before { content: "\f8d8"; }
.bi-threads::before { content: "\f8d9"; }
.bi-transparency::before { content: "\f8da"; }
.bi-twitter-x::before { content: "\f8db"; }
.bi-type-h4::before { content: "\f8dc"; }
.bi-type-h5::before { content: "\f8dd"; }
.bi-type-h6::before { content: "\f8de"; }
.bi-backpack-fill::before { content: "\f8df"; }
.bi-backpack::before { content: "\f8e0"; }
.bi-backpack2-fill::before { content: "\f8e1"; }
.bi-backpack2::before { content: "\f8e2"; }
.bi-backpack3-fill::before { content: "\f8e3"; }
.bi-backpack3::before { content: "\f8e4"; }
.bi-backpack4-fill::before { content: "\f8e5"; }
.bi-backpack4::before { content: "\f8e6"; }
.bi-brilliance::before { content: "\f8e7"; }
.bi-cake-fill::before { content: "\f8e8"; }
.bi-cake2-fill::before { content: "\f8e9"; }
.bi-duffle-fill::before { content: "\f8ea"; }
.bi-duffle::before { content: "\f8eb"; }
.bi-exposure::before { content: "\f8ec"; }
.bi-gender-neuter::before { content: "\f8ed"; }
.bi-highlights::before { content: "\f8ee"; }
.bi-luggage-fill::before { content: "\f8ef"; }
.bi-luggage::before { content: "\f8f0"; }
.bi-mailbox-flag::before { content: "\f8f1"; }
.bi-mailbox2-flag::before { content: "\f8f2"; }
.bi-noise-reduction::before { content: "\f8f3"; }
.bi-passport-fill::before { content: "\f8f4"; }
.bi-passport::before { content: "\f8f5"; }
.bi-person-arms-up::before { content: "\f8f6"; }
.bi-person-raised-hand::before { content: "\f8f7"; }
.bi-person-standing-dress::before { content: "\f8f8"; }
.bi-person-standing::before { content: "\f8f9"; }
.bi-person-walking::before { content: "\f8fa"; }
.bi-person-wheelchair::before { content: "\f8fb"; }
.bi-shadows::before { content: "\f8fc"; }
.bi-suitcase-fill::before { content: "\f8fd"; }
.bi-suitcase-lg-fill::before { content: "\f8fe"; }
.bi-suitcase-lg::before { content: "\f8ff"; }
.bi-suitcase::before { content: "\f900"; }
.bi-suitcase2-fill::before { content: "\f901"; }
.bi-suitcase2::before { content: "\f902"; }
.bi-vignette::before { content: "\f903"; }
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+13 -16
View File
@@ -9,7 +9,7 @@ const layoutMarginEls = () => {
// Find any conflicting margin elements and add margins to the // Find any conflicting margin elements and add margins to the
// top to prevent overlap // top to prevent overlap
const marginChildren = window.document.querySelectorAll( const marginChildren = window.document.querySelectorAll(
".column-margin.column-container > * " ".column-margin.column-container > *, .margin-caption, .aside"
); );
let lastBottom = 0; let lastBottom = 0;
@@ -18,25 +18,14 @@ const layoutMarginEls = () => {
// clear the top margin so we recompute it // clear the top margin so we recompute it
marginChild.style.marginTop = null; marginChild.style.marginTop = null;
const top = marginChild.getBoundingClientRect().top + window.scrollY; const top = marginChild.getBoundingClientRect().top + window.scrollY;
console.log({
childtop: marginChild.getBoundingClientRect().top,
scroll: window.scrollY,
top,
lastBottom,
});
if (top < lastBottom) { if (top < lastBottom) {
const margin = lastBottom - top; const marginChildStyle = window.getComputedStyle(marginChild);
const marginBottom = parseFloat(marginChildStyle["marginBottom"]);
const margin = lastBottom - top + marginBottom;
marginChild.style.marginTop = `${margin}px`; marginChild.style.marginTop = `${margin}px`;
} }
const styles = window.getComputedStyle(marginChild); const styles = window.getComputedStyle(marginChild);
const marginTop = parseFloat(styles["marginTop"]); const marginTop = parseFloat(styles["marginTop"]);
console.log({
top,
height: marginChild.getBoundingClientRect().height,
marginTop,
total: top + marginChild.getBoundingClientRect().height + marginTop,
});
lastBottom = top + marginChild.getBoundingClientRect().height + marginTop; lastBottom = top + marginChild.getBoundingClientRect().height + marginTop;
} }
} }
@@ -46,7 +35,15 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
// Recompute the position of margin elements anytime the body size changes // Recompute the position of margin elements anytime the body size changes
if (window.ResizeObserver) { if (window.ResizeObserver) {
const resizeObserver = new window.ResizeObserver( const resizeObserver = new window.ResizeObserver(
throttle(layoutMarginEls, 50) throttle(() => {
layoutMarginEls();
if (
window.document.body.getBoundingClientRect().width < 990 &&
isReaderMode()
) {
quartoToggleReader();
}
}, 50)
); );
resizeObserver.observe(window.document.body); resizeObserver.observe(window.document.body);
} }
+17 -5
View File
@@ -85,6 +85,17 @@ window.document.addEventListener("DOMContentLoaded", function () {
} }
} }
function dashboardOffset() {
const dashboardNavEl = window.document.getElementById(
"quarto-dashboard-header"
);
if (dashboardNavEl !== null) {
return dashboardNavEl.clientHeight;
} else {
return 0;
}
}
function updateDocumentOffsetWithoutAnimation() { function updateDocumentOffsetWithoutAnimation() {
updateDocumentOffset(false); updateDocumentOffset(false);
} }
@@ -92,7 +103,7 @@ window.document.addEventListener("DOMContentLoaded", function () {
function updateDocumentOffset(animated) { function updateDocumentOffset(animated) {
// set body offset // set body offset
const topOffset = headerOffset(); const topOffset = headerOffset();
const bodyOffset = topOffset + footerOffset(); const bodyOffset = topOffset + footerOffset() + dashboardOffset();
const bodyEl = window.document.body; const bodyEl = window.document.body;
bodyEl.setAttribute("data-bs-offset", topOffset); bodyEl.setAttribute("data-bs-offset", topOffset);
bodyEl.style.paddingTop = topOffset + "px"; bodyEl.style.paddingTop = topOffset + "px";
@@ -205,9 +216,9 @@ window.document.addEventListener("DOMContentLoaded", function () {
// Observe size changed for the header // Observe size changed for the header
const headerEl = window.document.querySelector("header.fixed-top"); const headerEl = window.document.querySelector("header.fixed-top");
if (headerEl && window.ResizeObserver) { if (headerEl && window.ResizeObserver) {
const observer = new window.ResizeObserver( const observer = new window.ResizeObserver(() => {
updateDocumentOffsetWithoutAnimation setTimeout(updateDocumentOffsetWithoutAnimation, 0);
); });
observer.observe(headerEl, { observer.observe(headerEl, {
attributes: true, attributes: true,
childList: true, childList: true,
@@ -226,6 +237,7 @@ window.document.addEventListener("DOMContentLoaded", function () {
const links = window.document.querySelectorAll("a"); const links = window.document.querySelectorAll("a");
for (let i = 0; i < links.length; i++) { for (let i = 0; i < links.length; i++) {
if (links[i].href) { if (links[i].href) {
links[i].dataset.originalHref = links[i].href;
links[i].href = links[i].href.replace(/\/index\.html/, "/"); links[i].href = links[i].href.replace(/\/index\.html/, "/");
} }
} }
@@ -233,7 +245,7 @@ window.document.addEventListener("DOMContentLoaded", function () {
// Fixup any sharing links that require urls // Fixup any sharing links that require urls
// Append url to any sharing urls // Append url to any sharing urls
const sharingLinks = window.document.querySelectorAll( const sharingLinks = window.document.querySelectorAll(
"a.sidebar-tools-main-item" "a.sidebar-tools-main-item, a.quarto-navigation-tool, a.quarto-navbar-tools, a.quarto-navbar-tools-item"
); );
for (let i = 0; i < sharingLinks.length; i++) { for (let i = 0; i < sharingLinks.length; i++) {
const sharingLink = sharingLinks[i]; const sharingLink = sharingLinks[i];
File diff suppressed because one or more lines are too long
+186 -40
View File
@@ -43,7 +43,7 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
const mainEl = window.document.querySelector("main"); const mainEl = window.document.querySelector("main");
// highlight matches on the page // highlight matches on the page
if (query !== null && mainEl) { if (query && mainEl) {
// perform any highlighting // perform any highlighting
highlight(escapeRegExp(query), mainEl); highlight(escapeRegExp(query), mainEl);
@@ -57,7 +57,7 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
// (e.g. if the user edits the query or clears it) // (e.g. if the user edits the query or clears it)
let highlighting = true; let highlighting = true;
const resetHighlighting = (searchTerm) => { const resetHighlighting = (searchTerm) => {
if (mainEl && highlighting && query !== null && searchTerm !== query) { if (mainEl && highlighting && query && searchTerm !== query) {
clearHighlight(query, mainEl); clearHighlight(query, mainEl);
highlighting = false; highlighting = false;
} }
@@ -98,6 +98,7 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
classNames: { classNames: {
form: "d-flex", form: "d-flex",
}, },
placeholder: language["search-text-placeholder"],
translations: { translations: {
clearButtonTitle: language["search-clear-button-title"], clearButtonTitle: language["search-clear-button-title"],
detachedCancelButtonText: language["search-detached-cancel-button-title"], detachedCancelButtonText: language["search-detached-cancel-button-title"],
@@ -110,6 +111,8 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
return item.href; return item.href;
}, },
onStateChange({ state }) { onStateChange({ state }) {
// If this is a file URL, note that
// Perhaps reset highlighting // Perhaps reset highlighting
resetHighlighting(state.query); resetHighlighting(state.query);
@@ -359,7 +362,8 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
state, state,
setActiveItemId, setActiveItemId,
setContext, setContext,
refresh refresh,
quartoSearchOptions
); );
}, },
}, },
@@ -374,6 +378,32 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
focusSearchInput(); focusSearchInput();
}; };
document.addEventListener("keyup", (event) => {
const { key } = event;
const kbds = quartoSearchOptions["keyboard-shortcut"];
const focusedEl = document.activeElement;
const isFormElFocused = [
"input",
"select",
"textarea",
"button",
"option",
].find((tag) => {
return focusedEl.tagName.toLowerCase() === tag;
});
if (
kbds &&
kbds.includes(key) &&
!isFormElFocused &&
!document.activeElement.isContentEditable
) {
event.preventDefault();
window.quartoOpenSearch();
}
});
// Remove the labeleledby attribute since it is pointing // Remove the labeleledby attribute since it is pointing
// to a non-existent label // to a non-existent label
if (quartoSearchOptions.type === "overlay") { if (quartoSearchOptions.type === "overlay") {
@@ -385,11 +415,30 @@ window.document.addEventListener("DOMContentLoaded", function (_event) {
} }
} }
function throttle(func, wait) {
let waiting = false;
return function () {
if (!waiting) {
func.apply(this, arguments);
waiting = true;
setTimeout(function () {
waiting = false;
}, wait);
}
};
}
// If the main document scrolls dismiss the search results // If the main document scrolls dismiss the search results
// (otherwise, since they're floating in the document they can scroll with the document) // (otherwise, since they're floating in the document they can scroll with the document)
window.document.body.onscroll = () => { window.document.body.onscroll = throttle(() => {
setIsOpen(false); // Only do this if we're not detached
}; // Bug #7117
// This will happen when the keyboard is shown on ios (resulting in a scroll)
// which then closed the search UI
if (!window.matchMedia(detachedMediaQuery).matches) {
setIsOpen(false);
}
}, 50);
if (showSearchResults) { if (showSearchResults) {
setIsOpen(true); setIsOpen(true);
@@ -429,15 +478,27 @@ function configurePlugins(quartoSearchOptions) {
const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({ const algoliaInsightsPlugin = createAlgoliaInsightsPlugin({
insightsClient: window.aa, insightsClient: window.aa,
onItemsChange({ insights, insightsEvents }) { onItemsChange({ insights, insightsEvents }) {
const events = insightsEvents.map((event) => { const events = insightsEvents.flatMap((event) => {
const maxEvents = event.objectIDs.slice(0, 20); // This API limits the number of items per event to 20
return { const chunkSize = 20;
...event, const itemChunks = [];
objectIDs: maxEvents, const eventItems = event.items;
}; for (let i = 0; i < eventItems.length; i += chunkSize) {
itemChunks.push(eventItems.slice(i, i + chunkSize));
}
// Split the items into multiple events that can be sent
const events = itemChunks.map((items) => {
return {
...event,
items,
};
});
return events;
}); });
insights.viewedObjectIDs(...events); for (const event of events) {
insights.viewedObjectIDs(event);
}
}, },
}); });
return algoliaInsightsPlugin; return algoliaInsightsPlugin;
@@ -613,20 +674,30 @@ function showCopyLink(query, options) {
/* Search Index Handling */ /* Search Index Handling */
// create the index // create the index
var fuseIndex = undefined; var fuseIndex = undefined;
var shownWarning = false;
// fuse index options
const kFuseIndexOptions = {
keys: [
{ name: "title", weight: 20 },
{ name: "section", weight: 20 },
{ name: "text", weight: 10 },
],
ignoreLocation: true,
threshold: 0.1,
};
async function readSearchData() { async function readSearchData() {
// Initialize the search index on demand // Initialize the search index on demand
if (fuseIndex === undefined) { if (fuseIndex === undefined) {
// create fuse index if (window.location.protocol === "file:" && !shownWarning) {
const options = { window.alert(
keys: [ "Search requires JavaScript features disabled when running in file://... URLs. In order to use search, please run this document in a web server."
{ name: "title", weight: 20 }, );
{ name: "section", weight: 20 }, shownWarning = true;
{ name: "text", weight: 10 }, return;
], }
ignoreLocation: true, const fuse = new window.Fuse([], kFuseIndexOptions);
threshold: 0.1,
};
const fuse = new window.Fuse([], options);
// fetch the main search.json // fetch the main search.json
const response = await fetch(offsetURL("search.json")); const response = await fetch(offsetURL("search.json"));
@@ -646,6 +717,7 @@ async function readSearchData() {
); );
} }
} }
return fuseIndex; return fuseIndex;
} }
@@ -674,7 +746,8 @@ function renderItem(
state, state,
setActiveItemId, setActiveItemId,
setContext, setContext,
refresh refresh,
quartoSearchOptions
) { ) {
switch (item.type) { switch (item.type) {
case kItemTypeDoc: case kItemTypeDoc:
@@ -684,7 +757,9 @@ function renderItem(
item.title, item.title,
item.section, item.section,
item.text, item.text,
item.href item.href,
item.crumbs,
quartoSearchOptions
); );
case kItemTypeMore: case kItemTypeMore:
return createMoreCard( return createMoreCard(
@@ -709,15 +784,46 @@ function renderItem(
} }
} }
function createDocumentCard(createElement, icon, title, section, text, href) { function createDocumentCard(
createElement,
icon,
title,
section,
text,
href,
crumbs,
quartoSearchOptions
) {
const iconEl = createElement("i", { const iconEl = createElement("i", {
class: `bi bi-${icon} search-result-icon`, class: `bi bi-${icon} search-result-icon`,
}); });
const titleEl = createElement("p", { class: "search-result-title" }, title); const titleEl = createElement("p", { class: "search-result-title" }, title);
const titleContents = [iconEl, titleEl];
const showParent = quartoSearchOptions["show-item-context"];
if (crumbs && showParent) {
let crumbsOut = undefined;
const crumbClz = ["search-result-crumbs"];
if (showParent === "root") {
crumbsOut = crumbs.length > 1 ? crumbs[0] : undefined;
} else if (showParent === "parent") {
crumbsOut = crumbs.length > 1 ? crumbs[crumbs.length - 2] : undefined;
} else {
crumbsOut = crumbs.length > 1 ? crumbs.join(" > ") : undefined;
crumbClz.push("search-result-crumbs-wrap");
}
const crumbEl = createElement(
"p",
{ class: crumbClz.join(" ") },
crumbsOut
);
titleContents.push(crumbEl);
}
const titleContainerEl = createElement( const titleContainerEl = createElement(
"div", "div",
{ class: "search-result-title-container" }, { class: "search-result-title-container" },
[iconEl, titleEl] titleContents
); );
const textEls = []; const textEls = [];
@@ -1099,17 +1205,19 @@ function algoliaSearch(query, limit, algoliaOptions) {
const remappedHits = response.hits.map((hit) => { const remappedHits = response.hits.map((hit) => {
return hit.map((item) => { return hit.map((item) => {
const newItem = { ...item }; const newItem = { ...item };
["href", "section", "title", "text"].forEach((keyName) => { ["href", "section", "title", "text", "crumbs"].forEach(
const mappedName = indexFields[keyName]; (keyName) => {
if ( const mappedName = indexFields[keyName];
mappedName && if (
item[mappedName] !== undefined && mappedName &&
mappedName !== keyName item[mappedName] !== undefined &&
) { mappedName !== keyName
newItem[keyName] = item[mappedName]; ) {
delete newItem[mappedName]; newItem[keyName] = item[mappedName];
delete newItem[mappedName];
}
} }
}); );
newItem.text = highlightMatch(query, newItem.text); newItem.text = highlightMatch(query, newItem.text);
return newItem; return newItem;
}); });
@@ -1120,8 +1228,34 @@ function algoliaSearch(query, limit, algoliaOptions) {
}); });
} }
function fuseSearch(query, fuse, fuseOptions) { let subSearchTerm = undefined;
return fuse.search(query, fuseOptions).map((result) => { let subSearchFuse = undefined;
const kFuseMaxWait = 125;
async function fuseSearch(query, fuse, fuseOptions) {
let index = fuse;
// Fuse.js using the Bitap algorithm for text matching which runs in
// O(nm) time (no matter the structure of the text). In our case this
// means that long search terms mixed with large index gets very slow
//
// This injects a subIndex that will be used once the terms get long enough
// Usually making this subindex is cheap since there will typically be
// a subset of results matching the existing query
if (subSearchFuse !== undefined && query.startsWith(subSearchTerm)) {
// Use the existing subSearchFuse
index = subSearchFuse;
} else if (subSearchFuse !== undefined) {
// The term changed, discard the existing fuse
subSearchFuse = undefined;
subSearchTerm = undefined;
}
// Search using the active fuse
const then = performance.now();
const resultsRaw = await index.search(query, fuseOptions);
const now = performance.now();
const results = resultsRaw.map((result) => {
const addParam = (url, name, value) => { const addParam = (url, name, value) => {
const anchorParts = url.split("#"); const anchorParts = url.split("#");
const baseUrl = anchorParts[0]; const baseUrl = anchorParts[0];
@@ -1135,6 +1269,18 @@ function fuseSearch(query, fuse, fuseOptions) {
section: result.item.section, section: result.item.section,
href: addParam(result.item.href, kQueryArg, query), href: addParam(result.item.href, kQueryArg, query),
text: highlightMatch(query, result.item.text), text: highlightMatch(query, result.item.text),
crumbs: result.item.crumbs,
}; };
}); });
// If we don't have a subfuse and the query is long enough, go ahead
// and create a subfuse to use for subsequent queries
if (now - then > kFuseMaxWait && subSearchFuse === undefined) {
subSearchTerm = query;
subSearchFuse = new window.Fuse([], kFuseIndexOptions);
resultsRaw.forEach((rr) => {
subSearchFuse.add(rr.item);
});
}
return results;
} }
-47
View File
@@ -1,47 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://osk42.quarto.pub/feutre/about.html</loc>
<lastmod>2023-11-05T12:24:04.729Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/representation_de_tous_les_etudiants.html</loc>
<lastmod>2023-11-05T12:24:03.768Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/personnes/mulard_andreas.html</loc>
<lastmod>2023-11-05T12:24:02.924Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/personnes/guerin_harmonie.html</loc>
<lastmod>2023-11-05T12:24:02.026Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/conseils_de_l_universite/conseils_de_composantes/index.html</loc>
<lastmod>2023-11-05T12:24:01.104Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/propositions.html</loc>
<lastmod>2023-11-05T12:24:00.148Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.html</loc>
<lastmod>2023-11-05T12:24:00.605Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.html</loc>
<lastmod>2023-11-05T12:24:01.600Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/personnes/plaisant_oscar.html</loc>
<lastmod>2023-11-05T12:24:02.503Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/posts/personnes/lagasse_adrian.html</loc>
<lastmod>2023-11-05T12:24:03.334Z</lastmod>
</url>
<url>
<loc>https://osk42.quarto.pub/feutre/index.html</loc>
<lastmod>2023-11-05T12:24:04.312Z</lastmod>
</url>
</urlset>
-1
View File
@@ -1 +0,0 @@
/* css styles */
Regular → Executable
+4 -10
View File
@@ -3,16 +3,10 @@ title: "A propos"
image: profile.jpg image: profile.jpg
about: about:
template: jolla template: jolla
links: # links:
- icon: twitter # - icon: twitter
text: Twitter # text: Twitter
href: https://twitter.com # href: https://twitter.com
- icon: linkedin
text: LinkedIn
href: https://linkedin.com
- icon: github
text: Github
href: https://github.com
--- ---
Regular → Executable
+63 -28
View File
@@ -3,42 +3,65 @@ title: "FEUTRE"
--- ---
# Site de la FEUTRE # Fédération Etudiante de l'Université de Tours pour la Représentation et l'Égalité
:::{.callout-note icon=false} :::{.callout-note icon=false}
### Qui sommes-nous ? ### Qui sommes-nous ?
La Fédération Étudiante de l'Université de Tours pour la Représentation et l'Égalité est une association composée d'étudiants provenant des campus de Blois et de Tours. La FEUTRE est une association composée d'étudiants provenant des campus de Blois et de Tours.
Cette association est indépendante, c'est-à-dire qu'elle ne dépend pas d'un syndicat ou d'une quelconque organisation. Nous soutenons des listes d'**étudiants élus** dans les différents [conseils de l'université](posts/conseils_de_l_universite/index.qmd).
Vous pouvez nous contacter à l'adresse email [2023liste@gmail.com](mailto:2023liste@gmail.com). Plus généralement, nous souhaitons promouvoir la **démocratie participative**, et l'**égalité** entre tous les étudiants.
Vous pouvez nous contacter à l'adresse email [feutrebloistours@gmail.com](mailto:feutrebloistours@gmail.com).
::: :::
feutrebloistours@gmail.com :::{.callout-note icon=false .column-margin}
<div style="text-align: center;">
<img src="_images/logo_FEUTRE.png" style="width: min(100%, 30vw);">
<br/>
<a href="mailto:feutrebloistours@gmail.com">
<button type="button" class="btn btn-outline-success"
style="margin-bottom:25.09px">
<i class="bi bi-envelope"></i>
Contact
</button>
</a>
<a href="https://www.helloasso.com/associations/federation-etudiante-de-l-universite-de-tours-pour-la-representation-et-l-egalite/adhesions/adhesion-classique">
<button type="button" class="btn btn-outline-success"
style="margin-bottom:25.09px">
<i class="bi bi-person-vcard"></i>
Inscription
</button>
</a>
</div>
:::
:::{.callout-note icon=false} :::{.callout-note icon=false}
### Nos objectifs ### Nos objectifs
La FEUTRE à pour but de créer et fédérer des associations afin de : La FEUTRE à pour but de créer et fédérer des associations afin de :
<!-- TODO: pages sur : --> - **Représenter** les intérêts des étudiants de l'Université de Tours
<!-- - représentation de tous les étudiants | --> - **soutenir des candidats** aux différents [conseils de l'Université de Tours](posts/conseils_de_l_universite/index.qmd)
<!-- - démocratie participative > --> - améliorer l'égalité dans les études
<!-- - indépendance numérique | -->
- créer et fédérer des associations étudiantes
- soutenir des candidats aux différents conseils de l'Université de Tours
- Représenter les intérêts des étudiants en sciences de l'Université de Tours
- faire en sorte que [chaque étudiant soit représenté](posts/representation_de_tous_les_etudiants.qmd) - faire en sorte que [chaque étudiant soit représenté](posts/representation_de_tous_les_etudiants.qmd)
- améliorer le confort d’études
- soutenir des candidats ou des listes de représentants étudiants
- améliorer la communication entre les étudiants et l'administration - améliorer la communication entre les étudiants et l'administration
- faire avancer la Décarbonation - faire avancer la Décarbonation
- promouvoir la démocratie - promouvoir la **démocratie**
- organiser des événements de démocratie participative - organiser des événements de **démocratie participative**
- promouvoir l'indépendance numérique - promouvoir l'indépendance numérique
- impliquer des étudiants dans la vie politique - impliquer des étudiants dans la vie politique
@@ -48,24 +71,20 @@ La FEUTRE à pour but de créer et fédérer des associations afin de :
:::{.callout-note icon=false} :::{.callout-note icon=false}
### Nos actions actuelles ### Nos actions actuelles
- [L.I.S.T.E. (Liste Indépendante des Sciences et Techniques Estudiantine)](https://osk42.quarto.pub/liste)
- Association de la FEUTRE
- A soutenu une liste de candidats au conseil de l'UFR. Ce conseil vote le budget et gère l'organisation pratiques(es enseignements)
- Élections des étudiants représentants au Conseil d'Administration des Crous
- nous sommes en préparation pour cette élection. N'hésitez pas à nous contacter si vous souhaitez être candidats.
- élus au [conseil de l'UFR Sciences et Techniques](posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.qmd), notamment le vice-président de ce conseil.
- en campagne pour la [Commission de la Formation et de la Vie Universitaire](posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.qmd)
- en campagne pour le [Conseil de la Recherche](posts/conseils_de_l_universite/conseil_de_la_recherche.qmd)
::: :::
:::{.callout-note icon=false} :::{.callout-note icon=false}
### Membres de la L.I.S.T.E ### Membres de la FEUTRE
#### Élus au [conseil de l'UFR Sciences et Techniques](posts/conseils_de_l_universite/conseils_de_composantes/conseil_de_l_UFR_sciences_et_techniques.qmd)
- [Mulard Andreas](posts/personnes/mulard_andreas.qmd) - [Mulard Andreas](posts/personnes/mulard_andreas.qmd)
<!-- - Bourdois Camille --> <!-- - Bourdois Camille -->
- [Plaisant Oscar](posts/personnes/plaisant_oscar.qmd) - [Plaisant Oscar](posts/personnes/plaisant_oscar.qmd)
@@ -73,8 +92,24 @@ La FEUTRE à pour but de créer et fédérer des associations afin de :
- Msiah Romain - Msiah Romain
- Leguay Émerance - Leguay Émerance
- [Lagasse Adrian](posts/personnes/lagasse_adrian.qmd) - [Lagasse Adrian](posts/personnes/lagasse_adrian.qmd)
#### Candidats au [CFVU](posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.qmd) sciences
- [MULARD Andreas](posts/personnes/mulard_andreas.qmd)
- HOURY Catherine
- [PLAISANT Oscar](posts/personnes/plaisant_oscar.qmd)
- DROUIN Marielle
- BERTHEL Gabriel
#### Candidats au [CFVU](posts/conseils_de_l_universite/comission_de_formation_et_vie_universitaire.qmd) lettres, sciences humaines et sociales
- WATTERLOT Arthur
- ANAËL Aicoul
#### Candidats au [Conseil de la Recherche](posts/conseils_de_l_universite/conseil_de_la_recherche.qmd)
- OVIDE Manon
- CRULIS Ben
::: :::
Regular → Executable
View File
+6 -7
View File
@@ -2,16 +2,15 @@
title: "Commission Formation et Vie Universitaire (CFVU)" title: "Commission Formation et Vie Universitaire (CFVU)"
--- ---
La Commission Formation et Vie Universitaire (CFVU)
La Commission de la Formation et de la Vie Universitaire comprend quarante membres. Elle participe, par ses avis et ses vœux, à ladministration de luniversité et est plus spécifiquement consultée au sujet des programmes de formation des composantes. La Commission de la Formation et de la Vie Universitaire comprend quarante membres. Elle participe, par ses avis et ses vœux, à ladministration de luniversité et est plus spécifiquement consultée au sujet des programmes de formation des composantes.
Ses missions : Ses missions :
les orientations des enseignements de formation initiale et continue ; - les orientations des enseignements de formation initiale et continue ;
les demandes d'habilitation et les projets de nouvelles filières ; - les demandes d'habilitation et les projets de nouvelles filières ;
l'évaluation des enseignements ; - l'évaluation des enseignements ;
les mesures de nature à permettre la mise en œuvre de l'orientation des étudiants et la validation des acquis, à faciliter leur entrée dans la vie active, à favoriser les activités culturelles, sportives, sociales ou associatives offertes aux étudiants et à améliorer leurs conditions de vie et de travail. - les mesures de nature à permettre la mise en œuvre de l'orientation des étudiants et la validation des acquis, à faciliter leur entrée dans la vie active, à favoriser les activités culturelles, sportives, sociales ou associatives offertes aux étudiants et à améliorer leurs conditions de vie et de travail.
les mesures relatives aux activités de soutien, aux œuvres universitaires et scolaires, aux services médicaux et sociaux, aux bibliothèques et centres de documentation. Elle est garante des libertés politiques et syndicales étudiantes. - les mesures relatives aux activités de soutien, aux œuvres universitaires et scolaires, aux services médicaux et sociaux, aux bibliothèques et centres de documentation. Elle est garante des libertés politiques et syndicales étudiantes.
La Commission de la Formation et de la Vie Universitaire élit en son sein un vice-président étudiant chargé des questions de vie étudiante, en lien avec les centres régionaux et locaux des œuvres universitaires et scolaires. La Commission de la Formation et de la Vie Universitaire élit en son sein un vice-président étudiant chargé des questions de vie étudiante, en lien avec les centres régionaux et locaux des œuvres universitaires et scolaires.
Vice-président : Florent Malrieu - Composition du CFVU
@@ -36,7 +36,7 @@ Les élections on mené à la nomination de 7 élus dont 3 suppléants.
#### Membres élus #### Membres élus
- [Mulard Andreas](/posts/personnes/mulard_andreas.qmd) - [Mulard Andreas](/posts/personnes/mulard_andreas.qmd) (vice-président de ce conseil)
<!-- - Bourdois Camille --> <!-- - Bourdois Camille -->
- [Plaisant Oscar](/posts/personnes/plaisant_oscar.qmd) - [Plaisant Oscar](/posts/personnes/plaisant_oscar.qmd)
- [Guérin Harmonie](/posts/personnes/guerin_harmonie.qmd) - [Guérin Harmonie](/posts/personnes/guerin_harmonie.qmd)
View File
View File

Before

Width:  |  Height:  |  Size: 7.9 MiB

After

Width:  |  Height:  |  Size: 7.9 MiB

View File

Before

Width:  |  Height:  |  Size: 171 KiB

After

Width:  |  Height:  |  Size: 171 KiB

View File
View File
View File
View File
View File
Regular → Executable
View File

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 59 KiB

-17
View File
@@ -1,17 +0,0 @@
---
title: "Propositions"
listing:
contents: posts/propositions
sort: "date desc"
type: default
categories: false
sort-ui: false
filter-ui: false
---
# Liste des propositions
Voici les propositions portées par la FEUTRE :
Regular → Executable
+44
View File
@@ -1 +1,45 @@
/* css styles */ /* css styles */
* {
--logo-teal: #3DA99D;
--logo-red: #B7435D;
}
/* links */
a {
color: #01A99C;
}
/* navbar menu links colors */
.navbar-nav .nav-item .nav-link {
color: var(--bs-body-color);
/* opacity: 65%; */
transition-duration: .5s;
}
.navbar-nav .nav-item .nav-link:hover {
color: var(--bs-body-color);
opacity: 100%;
text-decoration: underline 2pt;
text-underline-offset: 5px;
transition-duration: .5s;
}
img.navbar-logo {
min-height: clamp(10pt, 15vw, 10vh);
}
/* navbar color */
.navbar, .navbar-dark {
background-color: var(--logo-red);
}
.quarto-title-banner {
background-color: var(--logo-red);
}
/* callouts color */
div.callout-note.callout-style-default > .callout-header { background-color: var(--logo-teal); }
div.callout-note.callout { border-left-color: var(--logo-teal); }
div.callout-important.callout-style-default > .callout-header {
/* background-color: rgba(rgb(var(--logo-red)), 50%) ; */
}
div.callout-important.callout { border-left-color: var(--logo-red); }