Filtre actif, cliquez pour en enlever un tag :
Cliquez sur un tag pour affiner votre recherche :
Résultat de la recherche (7 notes) :
Dépôt GitHub : https://github.com/stephane-klein/sklein-pkm-engine
Cette application est le moteur de mon Personal knowledge management : https://notes.sklein.xyz.
Note initale de ce projet : Projet 11 - "Première version d'un moteur web PKM".
Projet 13 - "POC Elasticsearch sur un PKM"
Date de la création de cette note : 2024-08-17 .
Quel est l'objectif de ce projet ?
Suite à :
Contenu de ce constat, je vais peut-être redonner une chance à Elasticsearch malgré mon aversion pour la JVM 🤔. -- from
et dans le cadre de Projet 11 - "Première version d'un moteur web PKM", je souhaite réaliser une alternative à obsidian-vault-to-pg_search
et obsidian-vault-to-typesense
basé sur Elasticsearch.
Tâches :
- [x] Setup une instance Elasticsearch avec Docker
- [x] Utiliser la méthode Explicit mapping
- [x] Importer le contenu en version html dans ElasticSearch
- [x] Implémenté le support de Highlighting Text That Contains HTML Tags sur le contenu Markdown converti en HTML ;
- [x] Setup Language analyzers français
- [x] Setup Stop analyzer
- [x] Setup un Tokenizer reference
- [x] Setup Stemmer token filter français
- [x] Setup HTML strip character filter
- [ ] Implémenter les facets sur :
- [ ] Date de publication
- [x] Tags
- [ ] Type de note
- [x] Support de la pagination
- [x] Effectuer des recherches basées sur Query string query
- [ ] Benchmarker la vitesse de démarrage de Elasticsearch
- [ ] Benchmarker la consommation de RAM
- [ ] Benchmarker la vitesse de réponse des query
Repository de ce projet :
Ressources :
Projet 11 - "Première version d'un moteur web PKM"
Date de la création de cette note : 2024-07-16.
Quel est l'objectif de ce projet ?
À partir des POC listés ci-dessous, je souhaite implémenter un moteur HTML de rendu de mon Personal knowledge management, que je nomme sklein-pkm-engine.
Celui-ci sera propulsé par SvelteKit.
Voir plus loin "Objectif détaillé".
Pourquoi je souhaite réaliser ce projet ?
Le 30 avril je disais :
Pour le moment, j'utilise Obsidian Quartz pour déployer https://notes.sklein.xyz.
Est-ce que j'en suis satisfait ? Pour le moment, la réponse est non, parce que je ne le maitrise pas assez.
J'ai une grande envie d'implémenter une version personnelle basée sur SvelteKit et Apache Age, mais j'essaie de ne pas tomber dans ce Yak!.
Via de multiples itérations, je souhaite transformer https://notes.sklein.xyz et https://sklein.xyz vers un site qui s'inspire de gwern.net, Andy's working notes et de Simon Willison - TIL.
Objectif détaillé de ce projet
Dans un premier temps, j'aimerais implémenter une page https://notes.sklein.xyz qui ressemble, par exemple, à la page https://simonwillison.net/2024/Jan/ de Simon Willison.
C'est-à-dire, une page infinie, qui rassemble mes Notes éphémères, avec un système de pagination.
Je souhaite que l'intégralité du contenu de chaque note soit rendue, séparée, par des <hr />
.
Pour chaque note, je souhaite, comme dans cet exemple, afficher l'heure et des tags de la note :
Je souhaite aussi séparer les notes par des dates.
La date et l'heure des notes sont définies dans le nom de fichier des notes (YYYY-mm-dd_HHMM.md
).
Je souhaite aussi implémenter les pages suivantes :
/{date}/
liste toutes les notes d'une journée ;/{note_filename}/
(sans.md
) affiche une seule note.
Toutes les notes sont classés à "plat", c'est-à-dire directement à la racine du site /{note_filename}/
(sans .md
).
Roadmap
- [x] Implémentation d'un script qui injecte des nanoid dans le frontmatter de toutes les notes ;
- [x] Implémentation d'un script qui injecte
type: fleeting_note
dans toutes les notes qui se trouvent dans le dossier/Notes éphémères/
; - [x] Implémentation d'un script qui injecte
type: evergreen_note
à toutes les notes sanstype
; - [x] Implémentation d'un script qui injecte
created_at: ISO 8601
sur les Fleeting Note ; - [x]
/{note_filename}/
(sans.md
) affiche une seule Fleeting Note ; - [ ]
/{date}/
liste toutes les Fleeting Note d'une journée ; - [x]
/
liste de toutes les Fleeting Note de la plus récente à la plus ancienne ; - [x] Afficher les Fleeting Note liées aux Evergreen Note en bas des Evergreen Note ;
- [ ] Afficher les backlink sur les Fleeting Note ;
- [ ] Afficher les backlink autre que Fleeting Note sur les pages Evergreen Note ;
- [x] Rendering des wikilink ;
- [x] Rendering des
#tags
; - [ ]
/tags/{tag_name}/
- [x]
/search/?tags=tagname
- [x] Support des fichiers binaires (image…)
- [ ] Rendering des Callouts ;
- [ ] Permettre de partager un permalien vers une note, basé sur un nanoid ;
- [ ] Sur la page
/
implémenter un moteur de recherche, qui permet :- [x] Recherche plain texte
- [x] Recherche à facettes sur les tags
- [x] Sur les types de notes
- [x] Activer l'attribue
loading="lazy"
sur les images ; - [x] Ajouter de la pagination sur
/
; - [x] Rendering markdown :
- [x] Rendering des simples liens;
- [x] Rendering des codes sources.
- [x] Affichage des tags derrière l'heure : ;
- [ ] Permettre de remplacer les tages du type
JaiDécouvert
parJ'ai découvert
pour simplifier la lecture. - [ ] Améliorer le rendu des listes de todo (voici à quoi cela ressemble actuellement Pasted image 20241001115211.png)
- [ ] Lors du clique sur "Réduire l'affichage de la note", j'aimerais que
Choses que je ne souhaite pas faire
Je souhaite publier quelque chose au plus tôt. Pour cela, dans la première itération, je ne souhaite pas consacrer trop de temps à la mise en forme. Cette première itération sera minimaliste dans son style.
Repository de ce projet :
https://github.com/stephane-klein/sklein-pkm-engine/
Ressources :
Article Wikipedia : https://en.wikipedia.org/wiki/Personal_knowledge_management
Un PKM (Personal Knowledge Management) est un Systèmes d’organisation des connaissances développé par une seule personne. Il peut être privé ou public.
Voir aussi Knowledge Organization Infrastructure.
Journal du samedi 17 août 2024 à 16:09
Je viens de créer Projet 13 - "POC Elasticsearch sur un PKM".
Idée d'une extension browser pour connecter Obsidian à GitHub
J'aime être explicite, j'évite l'utilisation des acronymes, j'essaie de désigner les ressources (lien vers un paragraphe, une fonction, une issue, un contrat, un client…) avec des URLs, afin d'éviter toute ambiguïté.
J'ai de plus en plus l'intuition que l'usage d'un Organisation knowledge management combiné à de multiples Personal knowledge management de type Obsidian, SilverBullet.mb sont très utiles dans un contexte de travail en équipe et dans une organisation.
Partant de cette préférence et de cette intuition, j'ai eu une idée, j'ai ressenti un besoin que je vais expliquer dans cette note.
Je suis en train de rédiger une issue dans GitHub.
Dans la description de l'issue, je souhaite faire mention de la notion de PII et d'un champ de base de données.
J'aimerais développer une extension navigateur qui permet de saisir des wikilink ([[PageName|custom title]]
) dans les zones de texte supportant de Markdown de GitHub, GitLab, Trello, Mattermost, Zullip, etc, avec le support de la recherche / autocomplétion.
J'aimerais ajouter une fonctionnalité qui affiche, lors du survol d'un wikilink, un popup contenant un aperçu de la page liée. Cela permet, par exemple, de consulter rapidement la signification d'un acronyme ou d'identifier une ressource.
J'aimerais que cette extension puisse être connecté à un ou plusieurs knowledge management system.
Dernière page.