New search function et drag and drop clean

This commit is contained in:
2025-11-10 19:40:14 +01:00
parent d969b05ead
commit cd9a96c760
42 changed files with 2164 additions and 34 deletions

View File

@ -266,7 +266,6 @@ func (h *Handler) generateHomeMarkdown() string {
// En-tête
sb.WriteString("# 📚 Index des Notes\n\n")
sb.WriteString("_Mise à jour automatique • " + time.Now().Format("02/01/2006 à 15:04") + "_\n\n")
sb.WriteString("---\n\n")
// Construire l'arborescence
tree, err := h.buildFileTree()
@ -278,7 +277,16 @@ func (h *Handler) generateHomeMarkdown() string {
// Compter le nombre de notes
noteCount := h.countNotes(tree)
// Section des tags (en premier)
h.generateTagsSection(&sb)
// Statistiques
sb.WriteString(fmt.Sprintf("**%d note(s) au total**\n\n", noteCount))
sb.WriteString("---\n\n")
// Titre de l'arborescence
sb.WriteString("## 📂 Toutes les notes\n\n")
// Générer l'arborescence en Markdown
h.generateMarkdownTree(&sb, tree, 0)
@ -286,6 +294,29 @@ func (h *Handler) generateHomeMarkdown() string {
return sb.String()
}
// generateTagsSection génère la section des tags avec comptage
func (h *Handler) generateTagsSection(sb *strings.Builder) {
tags := h.idx.GetAllTagsWithCount()
if len(tags) == 0 {
return
}
sb.WriteString("## 🏷️ Tags\n\n")
sb.WriteString("<div class=\"tags-cloud\">\n")
for _, tc := range tags {
// Créer un lien HTML discret et fonctionnel
sb.WriteString(fmt.Sprintf(
`<a href="#" class="tag-item" hx-get="/api/search?query=tag:%s" hx-target="#search-results" hx-swap="innerHTML"><kbd class="tag-badge">#%s</kbd> <mark class="tag-count">%d</mark></a>`,
tc.Tag, tc.Tag, tc.Count,
))
sb.WriteString("\n")
}
sb.WriteString("</div>\n\n")
}
// countNotes compte le nombre de fichiers .md dans l'arborescence
func (h *Handler) countNotes(node *TreeNode) int {
count := 0