78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
up::[[obsidian plugins]]
 | 
						|
link::https://github.com/Stardusten/ob-table-enhancer/tree/master
 | 
						|
title::"edition de tables, javascript dans les cellules"
 | 
						|
#s/obsidian 
 | 
						|
 | 
						|
----
 | 
						|
 | 
						|
 - édition de tables (plus que le formattage de [[obsidian plugin advanced tables|advanced tables]])
 | 
						|
     - fonctionne correctement avec le [[LaTeX]] et les styles
 | 
						|
 - javascript dans les cellules
 | 
						|
     - `>>>` pour interpréter le [[javascript]]
 | 
						|
     - variables magiques
 | 
						|
         - `c` : colonne actuelle (character array)
 | 
						|
         - `nc` : colonne actuelle (number array)
 | 
						|
         - `t` : la table entière
 | 
						|
             - `t.cells` : tableau des cellules (comme strings)
 | 
						|
                 - `t.cells[0]` ligne de titre
 | 
						|
                 - `t.cells[0][0]` première cellule
 | 
						|
                 - `t.cells.length` largeur
 | 
						|
                 - `t.cells[0].length` hauteur
 | 
						|
             - `t.formatRow` : les `----` contenux dans chaque colonne, dans un array
 | 
						|
                 - exemple : `[' ---- ', ' ---- ', ' ------ ']`
 | 
						|
 | 
						|
 | 
						|
> [!idea] Fonctions [[javascript]] utiles
 | 
						|
>  - `array.length`
 | 
						|
>  - `array.filter(x => condition(x))`
 | 
						|
>  - `string.contains('test')`
 | 
						|
>  - fonctions builtin :
 | 
						|
>      - `sum`
 | 
						|
>      - `avg`
 | 
						|
>      - `min`
 | 
						|
>      - `max`
 | 
						|
 | 
						|
 | 
						|
 | 
						|
# Examples
 | 
						|
 | 
						|
## Total
 | 
						|
 | 
						|
### Total simple
 | 
						|
|         | prix |
 | 
						|
| ------- | ---- |
 | 
						|
|         | 10   |
 | 
						|
|         | 3    |
 | 
						|
|         | 9    |
 | 
						|
| total : |>>>sum(nc)|
 | 
						|
 | 
						|
### Total de certaines valeurs
 | 
						|
 | 
						|
|     | gains |
 | 
						|
| --- | ----- |
 | 
						|
|     | 10    |
 | 
						|
|     | 1     |
 | 
						|
|     | 2     |
 | 
						|
|     | 73    |
 | 
						|
|     | -42   |
 | 
						|
|     | 7     |
 | 
						|
|  | -12   |
 | 
						|
|total des gains :|>>>sum(nc.filter(x => x>=0))|
 | 
						|
|total des pertes :|>>>sum(nc.filter(x => x<=0))|
 | 
						|
 | 
						|
### Compter des valeurs
 | 
						|
Nombre d'occurences de "TODO" :
 | 
						|
| task         | State |
 | 
						|
| ------------ | ----- |
 | 
						|
| do something |**TODO**|
 | 
						|
| say hello    | DONE  |
 | 
						|
| say goodbye  |TODO|
 | 
						|
| hello hello  |TODO quickly|
 | 
						|
| you say      | DONE  |
 | 
						|
| goodbye      | TODO  |
 | 
						|
| i say        |_TODO_|
 | 
						|
| hello        |DONE ($y = \sqrt{1-x^2}$)|
 | 
						|
| a faire :    |>>>c.filter(cell => cell.contains('TODO')).length|
 | 
						|
|faits :|>>>c.filter(cell => cell.contains('DONE')).length|
 | 
						|
 |