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|
|
|
|