mirror of
				https://github.com/em-squared/5e-drs.git
				synced 2025-10-31 05:24:20 +00:00 
			
		
		
		
	Merge 91532b3ca5 into 6697181fe9
				
					
				
			This commit is contained in:
		
						commit
						9e955c97b8
					
				
					 6 changed files with 115 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								contrib/meilisearch/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								contrib/meilisearch/.gitignore
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| venv | ||||
| data.ms | ||||
							
								
								
									
										23
									
								
								contrib/meilisearch/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								contrib/meilisearch/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| 
 | ||||
| up: | ||||
| 	docker-compose up -d | ||||
| 	docker ps | ||||
| 
 | ||||
| index: venv | ||||
| 	./venv/bin/python index.py | ||||
| 
 | ||||
| venv: | ||||
| 	python3 -m venv venv | ||||
| 	./venv/bin/pip install -U pip wheel | ||||
| 	./venv/bin/pip install -r requirements.txt | ||||
| 
 | ||||
| down: | ||||
| 	docker-compose down | ||||
| 
 | ||||
| purge: | ||||
| 	make down | ||||
| 	rm -rf data.ms | ||||
| 	make up | ||||
| 
 | ||||
| pull: | ||||
| 	docker-compose pull | ||||
							
								
								
									
										19
									
								
								contrib/meilisearch/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								contrib/meilisearch/README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| # Meilisearch | ||||
| 
 | ||||
| Indexation naïve et systématique du contenu. | ||||
| 
 | ||||
| Fonctionne avec un [meilisearch](https://www.meilisearch.com/) local, ou dans un conteneur, tant que ça écoute http://localhost:7700 | ||||
| 
 | ||||
| ## Demo | ||||
| 
 | ||||
| Lance meilisearch dans un conteneur | ||||
| 
 | ||||
|     make up | ||||
| 
 | ||||
| Index le site (avec du code en python) | ||||
| 
 | ||||
|     make index | ||||
| 
 | ||||
| Mailisearch propose une UI web pour tester la recherche : [http://localhost:7700](http://localhost:7700) | ||||
| 
 | ||||
| Il est possible de copier l'index, le dossier `data.ms` sur un serveur, pour effectuer des recherches (en lecture seule). | ||||
							
								
								
									
										11
									
								
								contrib/meilisearch/docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								contrib/meilisearch/docker-compose.yml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| --- | ||||
| 
 | ||||
| version: "3" | ||||
| 
 | ||||
| services: | ||||
|   meilisearch: | ||||
|     image: getmeili/meilisearch:latest | ||||
|     volumes: | ||||
|      - ./data.ms:/data.ms | ||||
|     ports: | ||||
|      - 7700:7700 | ||||
							
								
								
									
										57
									
								
								contrib/meilisearch/index.py
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										57
									
								
								contrib/meilisearch/index.py
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| #!/usr/bin/env python3 | ||||
| 
 | ||||
| from pathlib import Path | ||||
| from io import StringIO | ||||
| 
 | ||||
| import yaml | ||||
| from markdown import markdown | ||||
| from meilisearch import Client | ||||
| 
 | ||||
| 
 | ||||
| def pages(): | ||||
|     "return all pages" | ||||
|     for readme in Path('../..').glob('**/README.md'): | ||||
|         if readme == Path("README.md"): # it's the home | ||||
|             continue | ||||
|         with open(readme, 'r') as file: | ||||
|             head = StringIO() | ||||
|             body = StringIO() | ||||
|             state = None | ||||
|             for line in file: | ||||
|                 if state is None and line == "---\n": | ||||
|                     state = "head" | ||||
|                     continue | ||||
|                 if state == "head": | ||||
|                     if line == "---\n": | ||||
|                         state = "body" | ||||
|                         continue | ||||
|                     head.write(line) | ||||
|                 else: | ||||
|                     body.write(line) | ||||
|             if head.tell() == 0: # empty | ||||
|                 continue | ||||
|             head.seek(0) | ||||
|             head = yaml.safe_load(head) | ||||
|             body.seek(0) | ||||
|             txt = markdown(body.read()) | ||||
|             # removing ../../, README.md and replace / with _ | ||||
|             yield str(readme)[11:-10].replace("/", "_"), head['title'], txt | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     client = Client('http://127.0.0.1:7700') | ||||
|     try: | ||||
|         idx = client.get_index('pages') | ||||
|     except Exception: | ||||
|         client.create_index('pages', dict(primaryKey='path')) | ||||
|         print("the index is created") | ||||
|     else: | ||||
|         print("the index is already here") | ||||
| 
 | ||||
|     for path, title, body in pages(): | ||||
|         client.index('pages').add_documents([{ | ||||
|             'path': path, | ||||
|             'title': title, | ||||
|             'body': body, | ||||
|         }]) | ||||
|         print(title, path) | ||||
							
								
								
									
										3
									
								
								contrib/meilisearch/requirements.txt
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								contrib/meilisearch/requirements.txt
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,3 @@ | |||
| pyyaml | ||||
| meilisearch | ||||
| markdown | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Mathieu Lecarme
						Mathieu Lecarme