npm package: @fedired-dev/fedi-js
Description: Una implementación del analizador FEDI con correcciones basadas en FEDI
Author: srnovus
Latest version: 1.0.0


# fedi-js

**fedi-js** es una librería JavaScript creada para procesar y renderizar contenido en formato SFM (Sharkey Fork Misskey), una adaptación del MFM (Markdown for Misskey). Está diseñada para integrarse fácilmente en aplicaciones federadas, como **Fedired**, facilitando la manipulación y visualización de contenido en redes sociales descentralizadas.

## Características

- **Basado en SFM**: Aprovecha la flexibilidad del Sharkey Fork de Misskey, que a su vez está basado en MFM.
- **Optimizado para Fedired**: Especialmente adaptado para el entorno federado de Fedired, con características específicas para redes sociales federadas.
- **Compatibilidad Federada**: Compatible con plataformas como Mastodon, Misskey y otros servidores que utilicen formatos basados en MFM/SFM.
- **Fácil de usar y modular**: Proporciona una API simple y modular, que permite integrar solo las funcionalidades que necesites.
- **Renderización rápida y eficiente**: Convierte contenido SFM en HTML de manera eficiente para su uso en aplicaciones web.

## Instalación

Instala **fedi-js** usando npm o yarn:

### npm

```bash
npm install @feidred-dev/fedi-js
```

### yarn

```bash
yarn add fedi-js
```

## Uso Básico

```javascript
import { parseSFM, renderSFMToHTML } from 'fedi-js';

// Contenido SFM
const sfmContent = ":wave: ¡Hola desde **Fedired**!";

// Parsear el contenido SFM
const parsedContent = parseSFM(sfmContent);

// Renderizar a HTML
const htmlOutput = renderSFMToHTML(parsedContent);

console.log(htmlOutput);
// <img src="wave.png" alt="wave" /> ¡Hola desde <strong>Fedired</strong>!
```

## API

### `parseSFM(content: string): ParsedSFM`

Analiza una cadena de texto en formato SFM y la convierte en una estructura de datos que representa su contenido.

- **content**: Cadena de texto en formato SFM.
- **Devuelve**: Un objeto `ParsedSFM` que contiene la representación estructurada del contenido.

### `renderSFMToHTML(parsedSFM: ParsedSFM): string`

Convierte un objeto `ParsedSFM` en una cadena HTML, lista para ser integrada en una aplicación web.

- **parsedSFM**: El objeto `ParsedSFM` obtenido de `parseSFM`.
- **Devuelve**: Una cadena de texto en formato HTML.

## Ejemplo Avanzado: Uso con React

```javascript
import React from 'react';
import { parseSFM, renderSFMToHTML } from 'fedi-js';

const SFMRenderer = ({ content }) => {
  const parsedContent = parseSFM(content);
  const htmlOutput = renderSFMToHTML(parsedContent);

  return <div dangerouslySetInnerHTML={{ __html: htmlOutput }} />;
};

export default SFMRenderer;
```

## Integración en Proyectos de Redes Federadas

**fedi-js** es ideal para proyectos que utilizan o extienden plataformas federadas como Fedired o Misskey. Al ser compatible con SFM, permite trabajar fácilmente con contenido federado, manteniendo la integridad del formato de marcado mientras se renderiza eficientemente en distintos entornos.

## Contribuciones

Nos encantaría que contribuyeras al proyecto. Si tienes ideas, mejoras o encuentras errores, sigue estos pasos para colaborar:

1. Haz un fork del repositorio.
2. Crea una nueva rama con tu funcionalidad: `git checkout -b nueva-funcionalidad`.
3. Realiza los cambios y haz commit: `git commit -m 'Añadir nueva funcionalidad'`.
4. Envía tus cambios a tu repositorio fork: `git push origin nueva-funcionalidad`.
5. Abre un pull request hacia el repositorio principal.