style: remove all emoji, fix tool logos to match OVHcloud pattern

- Remove emoji from title (⚙️), Ansible (), Puppet (🐾) slides
- Tool logos now use position:fixed outside Reveal container
  (same pattern as OVHcloud logo — top-left corner)
- Show/hide correct logo via Reveal.js slidechanged event
- Logos are no longer appended inside sections

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-04-14 01:19:26 +02:00
parent 08b74527ff
commit c406e8c116

View File

@@ -63,14 +63,17 @@
margin-bottom: 0.2em; margin-bottom: 0.2em;
} }
/* Tool logos — top-left corner within Reveal.js's positioned sections */ /* Tool logos — fixed like OVHcloud logo, toggled by JS per slide */
.slide-logo { .tool-logo-global {
position: absolute; position: fixed;
top: 16px; top: 16px;
left: 16px; left: 16px;
width: 40px; width: 40px;
height: 40px; height: 40px;
opacity: 0.8; opacity: 0.8;
z-index: 50;
pointer-events: none;
display: none;
} }
/* Persistent logo — outside Reveal container, fixed to viewport */ /* Persistent logo — outside Reveal container, fixed to viewport */
@@ -94,7 +97,7 @@
<!-- ─── SLIDE 1 : Title ─────────────────────────────────────────── --> <!-- ─── SLIDE 1 : Title ─────────────────────────────────────────── -->
<section class="title-slide"> <section class="title-slide">
<h1>⚙️ Configuration as Code</h1> <h1>Configuration as Code</h1>
<p class="subtitle"> <p class="subtitle">
<img src="https://cdn.simpleicons.org/puppet/C17F00" alt="Puppet" style="height:0.9em; vertical-align:middle;"> Puppet · <img src="https://cdn.simpleicons.org/puppet/C17F00" alt="Puppet" style="height:0.9em; vertical-align:middle;"> Puppet ·
<img src="https://cdn.simpleicons.org/ansible" alt="Ansible" style="height:0.9em; vertical-align:middle;"> Ansible · <img src="https://cdn.simpleicons.org/ansible" alt="Ansible" style="height:0.9em; vertical-align:middle;"> Ansible ·
@@ -242,7 +245,7 @@ output "public_ip" {
<!-- ─── SLIDE 19 : Ansible intro ─────────────────────────────────── --> <!-- ─── SLIDE 19 : Ansible intro ─────────────────────────────────── -->
<section class="s-ansible"> <section class="s-ansible">
<h2><span class="ansible-col">Ansible</span></h2> <h2><span class="ansible-col">Ansible</span></h2>
<p>Your servers are provisioned. Now make them do something.</p> <p>Your servers are provisioned. Now make them do something.</p>
</section> </section>
@@ -313,7 +316,7 @@ output "public_ip" {
<!-- ─── SLIDE 25 : Puppet intro ─────────────────────────────────── --> <!-- ─── SLIDE 25 : Puppet intro ─────────────────────────────────── -->
<section class="s-puppet"> <section class="s-puppet">
<h2>🐾 <span class="puppet-col">Puppet</span></h2> <h2><span class="puppet-col">Puppet</span></h2>
<p>Your servers are configured. Now keep them that way.</p> <p>Your servers are configured. Now keep them that way.</p>
</section> </section>
@@ -418,16 +421,26 @@ class webserver {
's-puppet': 'https://cdn.simpleicons.org/puppet/C17F00' 's-puppet': 'https://cdn.simpleicons.org/puppet/C17F00'
}; };
const altNames = {'s-tf': 'Terraform', 's-ansible': 'Ansible', 's-puppet': 'Puppet'}; const altNames = {'s-tf': 'Terraform', 's-ansible': 'Ansible', 's-puppet': 'Puppet'};
// Create fixed logo elements outside Reveal (like OVHcloud logo)
const logoElements = {};
Object.entries(toolLogos).forEach(([cls, src]) => { Object.entries(toolLogos).forEach(([cls, src]) => {
document.querySelectorAll('section.' + cls).forEach(s => { const img = document.createElement('img');
const img = document.createElement('img'); img.src = src;
img.src = src; img.alt = altNames[cls];
img.alt = altNames[cls]; img.className = 'tool-logo-global';
img.className = 'slide-logo'; document.body.appendChild(img);
s.appendChild(img); logoElements[cls] = img;
});
}); });
// Show/hide the correct tool logo based on current slide's class
function updateToolLogo() {
const slide = Reveal.getCurrentSlide();
Object.entries(logoElements).forEach(([cls, img]) => {
img.style.display = slide && slide.classList.contains(cls) ? 'block' : 'none';
});
}
Reveal.initialize({ Reveal.initialize({
width: 1280, width: 1280,
height: 720, height: 720,
@@ -442,7 +455,9 @@ class webserver {
progress: true, progress: true,
center: true, center: true,
plugins: [ RevealNotes, RevealHighlight ] plugins: [ RevealNotes, RevealHighlight ]
}); }).then(updateToolLogo);
Reveal.on('slidechanged', updateToolLogo);
</script> </script>
</body> </body>
</html> </html>