mind-elixir 5.11.1-beta.2 → 5.11.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/MindElixir.iife.js +1 -1
- package/dist/MindElixir.js +1 -1
- package/dist/MindElixirLite.iife.js +1 -1
- package/dist/MindElixirLite.js +1 -1
- package/package.json +17 -17
- package/readme/es.md +0 -453
- package/readme/fr.md +0 -437
- package/readme/ja.md +0 -452
- package/readme/ko.md +0 -435
- package/readme/pt.md +0 -436
- package/readme/ru.md +0 -435
- package/readme/zh.md +0 -453
package/readme/es.md
DELETED
|
@@ -1,453 +0,0 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<a href="https://docs.mind-elixir.com" target="_blank" rel="noopener noreferrer">
|
|
3
|
-
<img width="150" src="https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png" alt="mindelixir logo2">
|
|
4
|
-
</a>
|
|
5
|
-
<h1 align="center">Mind Elixir</h1>
|
|
6
|
-
</p>
|
|
7
|
-
|
|
8
|
-
<p align="center">
|
|
9
|
-
<a href="https://trendshift.io/repositories/13049" target="_blank"><img src="https://trendshift.io/api/badge/repositories/13049" alt="SSShooter%2Fmind-elixir-core | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
<p align="center">
|
|
13
|
-
<a href="https://www.npmjs.com/package/mind-elixir">
|
|
14
|
-
<img src="https://img.shields.io/npm/v/mind-elixir" alt="versión">
|
|
15
|
-
</a>
|
|
16
|
-
<a href="https://github.com/ssshooter/mind-elixir-core/blob/master/LICENSE">
|
|
17
|
-
<img src="https://img.shields.io/npm/l/mind-elixir" alt="licencia">
|
|
18
|
-
</a>
|
|
19
|
-
<a href="https://app.codacy.com/gh/ssshooter/mind-elixir-core?utm_source=github.com&utm_medium=referral&utm_content=ssshooter/mind-elixir-core&utm_campaign=Badge_Grade_Settings">
|
|
20
|
-
<img src="https://api.codacy.com/project/badge/Grade/09fadec5bf094886b30cea6aabf3a88b" alt="calidad del código">
|
|
21
|
-
</a>
|
|
22
|
-
<a href="https://bundlephobia.com/result?p=mind-elixir">
|
|
23
|
-
<img src="https://badgen.net/bundlephobia/dependency-count/mind-elixir" alt="cantidad de dependencias">
|
|
24
|
-
</a>
|
|
25
|
-
<a href="https://packagephobia.com/result?p=mind-elixir">
|
|
26
|
-
<img src="https://packagephobia.com/badge?p=mind-elixir" alt="tamaño del paquete">
|
|
27
|
-
</a>
|
|
28
|
-
</p>
|
|
29
|
-
|
|
30
|
-
[English](/readme.md) |
|
|
31
|
-
[中文](/readme/zh.md) |
|
|
32
|
-
[Español](/readme/es.md) |
|
|
33
|
-
[Français](/readme/fr.md) |
|
|
34
|
-
[Português](/readme/pt.md) |
|
|
35
|
-
[Русский](/readme/ru.md) |
|
|
36
|
-
[日本語](/readme/ja.md) |
|
|
37
|
-
[한국어](/readme/ko.md)
|
|
38
|
-
|
|
39
|
-
Mind elixir es un núcleo de mapas mentales de JavaScript de código abierto. Puedes usarlo con cualquier framework frontend que prefieras.
|
|
40
|
-
|
|
41
|
-
## Características
|
|
42
|
-
|
|
43
|
-
### 🎨 **Experiencia de Usuario**
|
|
44
|
-
|
|
45
|
-
- **UX fluida** - Interacciones suaves e intuitivas
|
|
46
|
-
- **Bien diseñado** - Interfaz limpia y moderna
|
|
47
|
-
- **Compatible con móviles** - Eventos táctiles para dispositivos móviles
|
|
48
|
-
- **Atajos eficientes** - Atajos de teclado para usuarios avanzados
|
|
49
|
-
|
|
50
|
-
### ⚡ **Rendimiento y Arquitectura**
|
|
51
|
-
|
|
52
|
-
- **Ligero** - Tamaño de paquete mínimo
|
|
53
|
-
- **Alto rendimiento** - Optimizado para mapas mentales grandes
|
|
54
|
-
- **Agnóstico al framework** - Funciona con cualquier framework frontend
|
|
55
|
-
- **Extensible** - Arquitectura de plugins
|
|
56
|
-
|
|
57
|
-
### 🛠️ **Características Principales**
|
|
58
|
-
|
|
59
|
-
- **Edición interactiva** - Capacidades de arrastrar y soltar / edición de nodos incorporadas
|
|
60
|
-
- **Operaciones masivas** - Selección y operación de múltiples nodos
|
|
61
|
-
- **Deshacer / Rehacer** - Historial completo de operaciones
|
|
62
|
-
- **Conexiones de nodos y resumen** - Enlace personalizado de nodos y resumen de contenido
|
|
63
|
-
|
|
64
|
-
### 📤 **Exportación y Personalización**
|
|
65
|
-
|
|
66
|
-
- **Múltiples formatos de exportación** - Exportación SVG / PNG / HTML
|
|
67
|
-
- **Estilizado fácil** - Personaliza mapas mentales con variables CSS
|
|
68
|
-
- **Soporte de temas** - Temas incorporados y estilizado personalizado
|
|
69
|
-
|
|
70
|
-
[v5 Cambios Rupturistas](https://github.com/SSShooter/mind-elixir-core/wiki/Breaking-Change#500)
|
|
71
|
-
|
|
72
|
-
<details>
|
|
73
|
-
<summary>Tabla de Contenidos</summary>
|
|
74
|
-
|
|
75
|
-
- [Características](#características)
|
|
76
|
-
- [🎨 **Experiencia de Usuario**](#-experiencia-de-usuario)
|
|
77
|
-
- [⚡ **Rendimiento y Arquitectura**](#-rendimiento-y-arquitectura)
|
|
78
|
-
- [🛠️ **Características Principales**](#️-características-principales)
|
|
79
|
-
- [📤 **Exportación y Personalización**](#-exportación-y-personalización)
|
|
80
|
-
- [Prueba ahora](#prueba-ahora)
|
|
81
|
-
- [Playground](#playground)
|
|
82
|
-
- [Documentación](#documentación)
|
|
83
|
-
- [Uso](#uso)
|
|
84
|
-
- [Instalar](#instalar)
|
|
85
|
-
- [NPM](#npm)
|
|
86
|
-
- [Etiqueta de script](#etiqueta-de-script)
|
|
87
|
-
- [Inicializar](#inicializar)
|
|
88
|
-
- [Estructura de Datos](#estructura-de-datos)
|
|
89
|
-
- [Manejo de Eventos](#manejo-de-eventos)
|
|
90
|
-
- [Exportación e Importación de Datos](#exportación-e-importación-de-datos)
|
|
91
|
-
- [Soporte de Markdown](#soporte-de-markdown)
|
|
92
|
-
- [Guardias de Operación](#guardias-de-operación)
|
|
93
|
-
- [Exportar como Imagen](#exportar-como-imagen)
|
|
94
|
-
- [API Obsoleta](#api-obsoleta)
|
|
95
|
-
- [Tema](#tema)
|
|
96
|
-
- [Atajos](#atajos)
|
|
97
|
-
- [¿Quién lo está usando?](#quién-lo-está-usando)
|
|
98
|
-
- [Ecosistema](#ecosistema)
|
|
99
|
-
- [Desarrollo](#desarrollo)
|
|
100
|
-
- [Agradecimientos](#agradecimientos)
|
|
101
|
-
- [Contribuidores](#contribuidores)
|
|
102
|
-
|
|
103
|
-
</details>
|
|
104
|
-
|
|
105
|
-
## Prueba ahora
|
|
106
|
-
|
|
107
|
-

|
|
108
|
-
|
|
109
|
-
https://mind-elixir.com/
|
|
110
|
-
|
|
111
|
-
### Playground
|
|
112
|
-
|
|
113
|
-
- Vanilla JS - https://codepen.io/ssshooter/pen/vEOqWjE
|
|
114
|
-
- React - https://codesandbox.io/p/devbox/mind-elixir-3-x-react-18-x-forked-f3mtcd
|
|
115
|
-
- Vue3 - https://codesandbox.io/p/sandbox/mind-elixir-3-x-vue3-lth484
|
|
116
|
-
|
|
117
|
-
## Documentación
|
|
118
|
-
|
|
119
|
-
https://docs.mind-elixir.com/
|
|
120
|
-
|
|
121
|
-
## Uso
|
|
122
|
-
|
|
123
|
-
### Instalar
|
|
124
|
-
|
|
125
|
-
#### NPM
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
npm i mind-elixir -S
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
```javascript
|
|
132
|
-
import MindElixir from 'mind-elixir'
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
#### Etiqueta de script
|
|
136
|
-
|
|
137
|
-
```html
|
|
138
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/mind-elixir/dist/MindElixir.js"></script>
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Y en tu archivo CSS:
|
|
142
|
-
|
|
143
|
-
```css
|
|
144
|
-
@import 'https://cdn.jsdelivr.net/npm/mind-elixir/dist/style.css';
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Inicializar
|
|
148
|
-
|
|
149
|
-
```html
|
|
150
|
-
<div id="map"></div>
|
|
151
|
-
<style>
|
|
152
|
-
#map {
|
|
153
|
-
height: 500px;
|
|
154
|
-
width: 100%;
|
|
155
|
-
}
|
|
156
|
-
</style>
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
**Cambio Importante** desde la versión 1.0.0, `data` debe ser pasado a `init()`, no `options`.
|
|
160
|
-
|
|
161
|
-
```javascript
|
|
162
|
-
import MindElixir from 'mind-elixir'
|
|
163
|
-
import { es } from 'mind-elixir/i18n'
|
|
164
|
-
import example from 'mind-elixir/dist/example1'
|
|
165
|
-
|
|
166
|
-
let options = {
|
|
167
|
-
el: '#map', // o HTMLDivElement
|
|
168
|
-
direction: MindElixir.LEFT,
|
|
169
|
-
draggable: true, // por defecto true
|
|
170
|
-
contextMenu: true, // por defecto true
|
|
171
|
-
toolBar: true, // por defecto true
|
|
172
|
-
keypress: true, // por defecto true
|
|
173
|
-
overflowHidden: false, // por defecto false
|
|
174
|
-
mouseSelectionButton: 0, // 0 para botón izquierdo, 2 para botón derecho, por defecto 0
|
|
175
|
-
contextMenu: {
|
|
176
|
-
locale: es,
|
|
177
|
-
focus: true,
|
|
178
|
-
link: true,
|
|
179
|
-
extend: [
|
|
180
|
-
{
|
|
181
|
-
name: 'Editar nodo',
|
|
182
|
-
onclick: () => {
|
|
183
|
-
alert('menú extendido')
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
],
|
|
187
|
-
},
|
|
188
|
-
before: {
|
|
189
|
-
insertSibling(el, obj) {
|
|
190
|
-
return true
|
|
191
|
-
},
|
|
192
|
-
async addChild(el, obj) {
|
|
193
|
-
await sleep()
|
|
194
|
-
return true
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
let mind = new MindElixir(options)
|
|
200
|
-
|
|
201
|
-
mind.install(plugin) // instala tu plugin
|
|
202
|
-
|
|
203
|
-
// crea nuevos datos de mapa
|
|
204
|
-
const data = MindElixir.new('nuevo tema')
|
|
205
|
-
// o `example`
|
|
206
|
-
// o los datos devueltos por `.getData()`
|
|
207
|
-
mind.init(data)
|
|
208
|
-
|
|
209
|
-
// obtener un nodo
|
|
210
|
-
MindElixir.E('node-id')
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
### Estructura de Datos
|
|
214
|
-
|
|
215
|
-
```javascript
|
|
216
|
-
// estructura completa de datos de nodo hasta ahora
|
|
217
|
-
const nodeData = {
|
|
218
|
-
topic: 'tema del nodo',
|
|
219
|
-
id: 'bd1c24420cd2c2f5',
|
|
220
|
-
style: { fontSize: '32', color: '#3298db', background: '#ecf0f1' },
|
|
221
|
-
expanded: true,
|
|
222
|
-
parent: null,
|
|
223
|
-
tags: ['Etiqueta'],
|
|
224
|
-
icons: ['😀'],
|
|
225
|
-
hyperLink: 'https://github.com/ssshooter/mind-elixir-core',
|
|
226
|
-
image: {
|
|
227
|
-
url: 'https://raw.githubusercontent.com/ssshooter/mind-elixir-core/master/images/logo2.png', // requerido
|
|
228
|
-
// necesitas consultar la altura y el ancho de la imagen y calcular el valor apropiado para mostrar la imagen
|
|
229
|
-
height: 90, // requerido
|
|
230
|
-
width: 90, // requerido
|
|
231
|
-
},
|
|
232
|
-
children: [
|
|
233
|
-
{
|
|
234
|
-
topic: 'hijo',
|
|
235
|
-
id: 'xxxx',
|
|
236
|
-
// ...
|
|
237
|
-
},
|
|
238
|
-
],
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
### Manejo de Eventos
|
|
243
|
-
|
|
244
|
-
```javascript
|
|
245
|
-
mind.bus.addListener('operation', operation => {
|
|
246
|
-
console.log(operation)
|
|
247
|
-
// return {
|
|
248
|
-
// name: nombre de la acción,
|
|
249
|
-
// obj: objeto objetivo
|
|
250
|
-
// }
|
|
251
|
-
|
|
252
|
-
// name: [insertSibling|addChild|removeNode|beginEdit|finishEdit]
|
|
253
|
-
// obj: objetivo
|
|
254
|
-
|
|
255
|
-
// name: moveNode
|
|
256
|
-
// obj: {from:objetivo1,to:objetivo2}
|
|
257
|
-
})
|
|
258
|
-
|
|
259
|
-
mind.bus.addListener('selectNodes', nodes => {
|
|
260
|
-
console.log(nodes)
|
|
261
|
-
})
|
|
262
|
-
|
|
263
|
-
mind.bus.addListener('expandNode', node => {
|
|
264
|
-
console.log('expandNode: ', node)
|
|
265
|
-
})
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
### Exportación e Importación de Datos
|
|
269
|
-
|
|
270
|
-
```javascript
|
|
271
|
-
// exportación de datos
|
|
272
|
-
const data = mind.getData() // objeto javascript, ver src/example.js
|
|
273
|
-
mind.getDataString() // objeto en cadena
|
|
274
|
-
|
|
275
|
-
// importación de datos
|
|
276
|
-
// iniciar
|
|
277
|
-
let mind = new MindElixir(options)
|
|
278
|
-
mind.init(data)
|
|
279
|
-
// actualización de datos
|
|
280
|
-
mind.refresh(data)
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### Soporte de Markdown
|
|
284
|
-
|
|
285
|
-
Mind Elixir soporta análisis de markdown personalizado:
|
|
286
|
-
|
|
287
|
-
```javascript
|
|
288
|
-
// Deshabilitar markdown (predeterminado)
|
|
289
|
-
let mind = new MindElixir({
|
|
290
|
-
// opción markdown omitida - sin procesamiento markdown
|
|
291
|
-
})
|
|
292
|
-
|
|
293
|
-
// Usar analizador markdown personalizado
|
|
294
|
-
let mind = new MindElixir({
|
|
295
|
-
markdown: text => {
|
|
296
|
-
// Tu implementación markdown personalizada
|
|
297
|
-
return text
|
|
298
|
-
.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>')
|
|
299
|
-
.replace(/\*(.*?)\*/g, '<em>$1</em>')
|
|
300
|
-
.replace(/`(.*?)`/g, '<code>$1</code>')
|
|
301
|
-
},
|
|
302
|
-
})
|
|
303
|
-
|
|
304
|
-
// Usar cualquier biblioteca markdown (ej. marked, markdown-it, etc.)
|
|
305
|
-
import { marked } from 'marked'
|
|
306
|
-
let mind = new MindElixir({
|
|
307
|
-
markdown: text => marked(text),
|
|
308
|
-
})
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
### Guardias de Operación
|
|
312
|
-
|
|
313
|
-
```javascript
|
|
314
|
-
let mind = new MindElixir({
|
|
315
|
-
// ...
|
|
316
|
-
before: {
|
|
317
|
-
insertSibling(el, obj) {
|
|
318
|
-
console.log(el, obj)
|
|
319
|
-
if (this.currentNode.nodeObj.parent.root) {
|
|
320
|
-
return false
|
|
321
|
-
}
|
|
322
|
-
return true
|
|
323
|
-
},
|
|
324
|
-
async addChild(el, obj) {
|
|
325
|
-
await sleep()
|
|
326
|
-
if (this.currentNode.nodeObj.parent.root) {
|
|
327
|
-
return false
|
|
328
|
-
}
|
|
329
|
-
return true
|
|
330
|
-
},
|
|
331
|
-
},
|
|
332
|
-
})
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
## Exportar como Imagen
|
|
336
|
-
|
|
337
|
-
Instala `@zumer/snapdom`, luego:
|
|
338
|
-
|
|
339
|
-
```typescript
|
|
340
|
-
import { snapdom } from '@zumer/snapdom'
|
|
341
|
-
|
|
342
|
-
const download = async () => {
|
|
343
|
-
const result = await snapdom(mind.nodes)
|
|
344
|
-
await result.download({ format: 'jpg', filename: 'my-capture' })
|
|
345
|
-
}
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
Para otros formatos de exportación y opciones avanzadas, consulta la [documentación de Mind Elixir](https://ssshooter.com/en/how-to-use-mind-elixir/#exporting-images).
|
|
349
|
-
|
|
350
|
-
### API Obsoleta
|
|
351
|
-
|
|
352
|
-
> ⚠️ **Obsoleto**: El método `mind.exportSvg()` está obsoleto y se eliminará en una versión futura.
|
|
353
|
-
|
|
354
|
-
```typescript
|
|
355
|
-
// OBSOLETO - No usar en nuevos proyectos
|
|
356
|
-
const svgData = await mind.exportSvg()
|
|
357
|
-
```
|
|
358
|
-
|
|
359
|
-
## Tema
|
|
360
|
-
|
|
361
|
-
```javascript
|
|
362
|
-
const options = {
|
|
363
|
-
// ...
|
|
364
|
-
theme: {
|
|
365
|
-
name: 'Oscuro',
|
|
366
|
-
// paleta de colores de las líneas principales
|
|
367
|
-
palette: ['#848FA0', '#748BE9', '#D2F9FE', '#4145A5', '#789AFA', '#706CF4', '#EF987F', '#775DD5', '#FCEECF', '#DA7FBC'],
|
|
368
|
-
// sobrescribir variables css
|
|
369
|
-
cssVar: {
|
|
370
|
-
'--main-color': '#ffffff',
|
|
371
|
-
'--main-bgcolor': '#4c4f69',
|
|
372
|
-
'--color': '#cccccc',
|
|
373
|
-
'--bgcolor': '#252526',
|
|
374
|
-
'--panel-color': '255, 255, 255',
|
|
375
|
-
'--panel-bgcolor': '45, 55, 72',
|
|
376
|
-
},
|
|
377
|
-
// todas las variables ver /src/index.less
|
|
378
|
-
},
|
|
379
|
-
// ...
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
// ...
|
|
383
|
-
|
|
384
|
-
mind.changeTheme({
|
|
385
|
-
name: 'Latte',
|
|
386
|
-
palette: ['#dd7878', '#ea76cb', '#8839ef', '#e64553', '#fe640b', '#df8e1d', '#40a02b', '#209fb5', '#1e66f5', '#7287fd'],
|
|
387
|
-
cssVar: {
|
|
388
|
-
'--main-color': '#444446',
|
|
389
|
-
'--main-bgcolor': '#ffffff',
|
|
390
|
-
'--color': '#777777',
|
|
391
|
-
'--bgcolor': '#f6f6f6',
|
|
392
|
-
},
|
|
393
|
-
})
|
|
394
|
-
```
|
|
395
|
-
|
|
396
|
-
Ten en cuenta que Mind Elixir no observará el cambio de `prefers-color-scheme`. Por favor, cambia el tema **manualmente** cuando el esquema cambie.
|
|
397
|
-
|
|
398
|
-
## Atajos
|
|
399
|
-
|
|
400
|
-
Consulta la [Guía de Atajos](https://docs.mind-elixir.com/docs/guides/shortcuts) para información detallada.
|
|
401
|
-
|
|
402
|
-
## ¿Quién lo está usando?
|
|
403
|
-
|
|
404
|
-
- [Mind Elixir Desktop](https://desktop.mind-elixir.com/)
|
|
405
|
-
|
|
406
|
-
## Ecosistema
|
|
407
|
-
|
|
408
|
-
- [@mind-elixir/node-menu](https://github.com/ssshooter/node-menu)
|
|
409
|
-
- [@mind-elixir/node-menu-neo](https://github.com/ssshooter/node-menu-neo)
|
|
410
|
-
- [@mind-elixir/export-xmind](https://github.com/ssshooter/export-xmind)
|
|
411
|
-
- [@mind-elixir/export-html](https://github.com/ssshooter/export-html)
|
|
412
|
-
- [mind-elixir-react](https://github.com/ssshooter/mind-elixir-react)
|
|
413
|
-
|
|
414
|
-
¡Las PRs son bienvenidas!
|
|
415
|
-
|
|
416
|
-
## Desarrollo
|
|
417
|
-
|
|
418
|
-
```
|
|
419
|
-
pnpm i
|
|
420
|
-
pnpm dev
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
Prueba los archivos generados con `dev.dist.ts`:
|
|
424
|
-
|
|
425
|
-
```
|
|
426
|
-
pnpm build
|
|
427
|
-
pnpm link ./
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
Actualiza la documentación:
|
|
431
|
-
|
|
432
|
-
```
|
|
433
|
-
# Instalar api-extractor
|
|
434
|
-
pnpm install -g @microsoft/api-extractor
|
|
435
|
-
# Mantener /src/docs.ts
|
|
436
|
-
# Generar documentación
|
|
437
|
-
pnpm doc
|
|
438
|
-
pnpm doc:md
|
|
439
|
-
```
|
|
440
|
-
|
|
441
|
-
Usa [DeepWiki](https://deepwiki.com/SSShooter/mind-elixir-core) para aprender más sobre Mind Elixir
|
|
442
|
-
|
|
443
|
-
## Agradecimientos
|
|
444
|
-
|
|
445
|
-
- [@viselect/vanilla](https://github.com/simonwep/selection/tree/master/packages/vanilla)
|
|
446
|
-
|
|
447
|
-
## Contribuidores
|
|
448
|
-
|
|
449
|
-
¡Gracias por tus contribuciones a Mind Elixir! Tu apoyo y dedicación hacen que este proyecto sea mejor.
|
|
450
|
-
|
|
451
|
-
<a href="https://github.com/SSShooter/mind-elixir-core/graphs/contributors">
|
|
452
|
-
<img src="https://contrib.rocks/image?repo=SSShooter/mind-elixir-core" />
|
|
453
|
-
</a>
|