Shortcode Hugo pour copier les schémas KiCad dans le presse-papiers
Ce qui suit est un exemple de comment inclure une partie d’un schéma KiCad dans un post Hugo.
Comment implémenter cela dans votre instance Hugo
Implémentez du JS personnalisé pour votre thème, voir Comment inclure du JS personnalisé dans votre thème Hugo
Ajoutez le JS personnalisé suivant à votre thème, ce qui activera le bouton
Copier dans le presse-papiers:
Dans hugo.yaml
params:
custom_js:
- 'js/kicad.js'In assets/js/kicad.js:
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('.kicad-copy-button').forEach(function(button) {
// Copy to clipboard button for kicad schematic
button.addEventListener('click', function() {
var dataId = this.getAttribute('data-id');
/* Get the <script> tag with id=dataId */
var script = document.getElementById(dataId);
var text = script.innerText;
/* Copy to clipboard */
navigator.clipboard.writeText(text).then(function() {
/* Change button text */
const originalInnerHTML = button.innerHTML;
button.innerHTML = '✔️ Copied to clipboard';
setTimeout(() => {
button.innerHTML = originalInnerHTML;
}, 2000);
}, function() {
console.error('Failed to copy to clipboard');
});
});
});
});- Ajoutez le shortcode suivant à votre instance Hugo :
Dans layouts/shortcodes/kicad_schematic.html :
{{ $seed := now.Unix }}
{{ $randomId := printf "%.10s" (sha256 $seed) }}
{{ $id := .Get "id" | default $randomId }}
<div class="kicad-schematic">
<div class="toolbar" style="width: 100%">
<button class="kicad-copy-button" data-id="{{ $id }}">
📋 Click here to copy schematic to clipboard (paste in KiCad schematic editor)
</button>
</div>
<div class="image-container">
<image src="{{ .Get `image`}}"></image>
</div>
<script type="kicad" id="{{ $id }}">
{{.Inner}}
</script>
</div>Activez les CSS personnalisés, voir Code de thème Hugo pour inclure des fichiers CSS personnalisés
Ajoutez les CSS personnalisés suivants à votre thème :
Dans hugo.yaml :
params:
custom_css:
- 'css/kicad.css'In assets/css/kicad.css:
.kicad-schematic {
border: 1px solid #3034ec;
border-radius: 1em;
width: 100%;
max-width: 600px;
.toolbar {
margin-top: -0.15em; /* Fix rounded corners not lining up */
text-align: center;
margin-bottom: 1em;
width: 100%;
button {
background-color: #3034ec;
color: white;
cursor: pointer;
width: 100%;
border: 1px solid #3034ec;
border-radius: 1em 1em 0em 0em;
padding: 0.2em 0.4em;
}
button:hover {
background-color: darkblue;
}
}
.image-container {
text-align: center;
width: 100%;
img {
display: block;
margin-left: auto;
margin-right: auto;
}
}
}- Dans vos posts, utilisez le shortcode comme ceci :
{{< kicad_schematic image="/images/2024/9/Ethernet PHY Strap pin high with LED.svg" >}}
COLLEZ LA PARTIE DU SCHÉMA QUE VOUS AVEZ COPIÉE DEPUIS KICAD ICI
{{< /kicad_schematic >}}Vous pouvez choisir un ID unique pour chaque schéma kicad {{< kicad_schematic id="strap-pin-high-led" ... >}}. Vous pouvez aussi omettre l’ID, auquel cas un ID aléatoire sera généré
Vous devez exporter le schéma comme un fichier SVG depuis KiCad et le placer dans le répertoire. Pour vous faciliter cela, consultez notre script Script Hugo pour ajouter facilement des images à votre blog
Ce script est par la présente publié sous CC0 1.0 Universal. Vous pouvez l’utiliser pour n’importe quel but sans aucune restriction. Aucune garantie n’est fournie. Si possible, j’apprécierais un lien retour vers https://techoverflow.net mais ce n’est pas requis. Profitez-en !