TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Editor de Word (.docx) en el navegador: Rust + WebAssembly + Canvas. Sin servidor.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Editor de documentos Word (.docx) que corre 100% en el navegador, escrito en Rust y compilado a WebAssembly.
Abre un .docx, edítalo directamente sobre la página, rellena variables de plantilla {{...}} y descárgalo de nuevo. Ningún archivo sale de tu equipo: no hay servidor.
npm install @dimarborda/docx-editorPensado para editar documentos y plantillas con alta fidelidad a Word, sin salir del navegador. Revisa las limitaciones conocidas antes de integrarlo.
Enter para dividir y Backspace para unir párrafos, edición dentro de celdas de tabla, deshacer y rehacer.{{CAMPO}} aunque Word lo haya partido en varios fragmentos (<w:r>) y lo reemplaza respetando el formato.docDefaults → styles.xml → numbering.xml → formato directo, medición real de fuentes, paginación, sangrías, interlineado, listas numeradas y tablas con bordes resueltos por lado. Las imágenes en línea fluyen con el texto y el texto rodea a las flotantes (cuadrado, estrecho, arriba y abajo, detrás o delante).PAGE, NUMPAGES) y con primera página distinta. Si no caben en el margen, el cuerpo se desplaza como en Word. Un doble clic sobre ellos permite editar su texto (Esc vuelve al cuerpo).gridSpan) o varias filas (vMerge), dibujadas como una sola y sin partirse entre páginas cuando caben.resizeImage, moveImage, setImageWrap, updateImage)..docx ──► Rust/WASM: zip + quick-xml ──► modelo de documento ──► motor de maquetación ──► comandos de dibujo ──► Canvas 2D
▲ │
└───────────── ediciones sin pérdidas del XML ◄── cursor, selección y teclado (JS) ◄────────────────┘
| Módulo | Responsabilidad |
|---|---|
src/lib.rs | API WebAssembly (DocxSession) |
src/docx_parser.rs | Lectura del ZIP y del OpenXML, historial de cambios, cachés |
src/styles.rs | Cascada de estilos, numeración y bordes de tabla |
src/layout_engine.rs | Corte de líneas, paginación, tablas e imágenes |
src/caret.rs | Hit-testing, posición del cursor y rectángulos de selección |
src/paragraph_edit.rs | Ediciones de texto, división y unión de párrafos sin pérdidas |
src/insert_objects.rs | Tablas e imágenes insertadas desde código |
src/image_edit.rs | Tamaño, posición, ajuste del texto y borrado de imágenes |
Solo se vuelven a maquetar y dibujar las páginas que cambian, y las medidas de texto se guardan en caché, así que escribir sigue siendo fluido en documentos largos.
El editor está publicado en npm como @dimarborda/docx-editor: un web component que funciona en cualquier frontend y dentro de apps Tauri.
npm install @dimarborda/docx-editor
<docx-toolbar for="doc"></docx-toolbar>
<docx-editor id="doc" src="/plantilla.docx" style="height: 80vh"></docx-editor>
<script type="module">
import '@dimarborda/docx-editor';
import '@dimarborda/docx-editor/style.css';
</script>
La API completa, los ejemplos con React, Next.js y Tauri y las opciones de fuentes están en la documentación del paquete. Si tu sitio usa una cabecera Content-Security-Policy, añade 'wasm-unsafe-eval' al script-src de producción; los detalles están en la sección Content Security Policy. Un ejemplo mínimo de integración está en apps/demo/embed.html.
El mismo repositorio incluye un editor de libros de Excel que comparte con el editor de Word la capa de paquete OOXML (crates/ooxml-core):
@dimarborda/xlsx-editor: componente <xlsx-editor> que dibuja las hojas en canvas y permite editar valores y fórmulas desde la cuadrícula. Incluye el motor Rust/WebAssembly sin interfaz (@dimarborda/xlsx-editor/engine) para leer, escribir, recalcular y dar formato a libros .xlsx sin perder lo que no se toca, también en Node.js.Con npm run dev, la demo del editor está en http://localhost:5173/xlsx.html.
Todo ocurre en el navegador: los documentos no se envían a ningún servidor, no hay telemetría y el contenido se dibuja en un canvas, sin insertar HTML. El editor no resuelve entidades XML externas, pone límites a lo que un .docx puede ocupar al descomprimirse, y cada despliegue audita las dependencias de Rust y npm. Los detalles están en la sección Seguridad y privacidad del paquete. Para reportar una vulnerabilidad, consulta SECURITY.md.
Todavía no se soportan, o solo en parte:
Si un documento tuyo se ve distinto que en Word, abre un issue con una captura (sin datos personales).
Requisitos: Rust con el target wasm32-unknown-unknown, wasm-pack y Node.js 20 o superior.
git clone https://github.com/dimarborda/rust-web-docx.git
cd rust-web-docx
npm install
npm run build:wasm
npm run dev
Abre http://localhost:5173. Si cambias código en src/, vuelve a ejecutar npm run build:wasm.
cargo testnpm run build (sale en apps/demo/dist/)http://localhost:5173/embed.html.docx en examples/ y aparecerán en la pantalla de inicio. Esa carpeta está ignorada por git, para que tus documentos nunca terminen en el repositorio.El sitio es estático y se publica en Cloudflare Workers. Cada push a master ejecuta las pruebas, compila y despliega con GitHub Actions. Para desplegar a mano:
npm run deploy
npm login
npm run release:check
npm run release -- minor
release:check ejecuta todo sin publicar: pruebas de Rust y JS, compilación del motor, auditoría de dependencias y revisión del contenido del paquete. release acepta patch, minor, major o una versión exacta; publica @dimarborda/docx-editor, confirma chore(release): x.y.z, crea la etiqueta vx.y.z y sube ambos a GitHub. Solo publica desde master, sin cambios pendientes y al día con origin. Si npm pide un código de verificación, añade --otp=123456.
| Atajo | Acción |
|---|---|
| Clic / arrastrar | Colocar el cursor / seleccionar |
Shift + flechas | Ampliar la selección |
Inicio / Fin | Ir al inicio o al final de la línea |
⌘A / Ctrl+A | Seleccionar todo |
⌘Z / Ctrl+Z | Deshacer |
⌘⇧Z / Ctrl+Y | Rehacer |
⌘B ⌘I ⌘U | Negrita, cursiva, subrayado |
⌘F / Ctrl+F | Buscar y reemplazar |
⌘S / Ctrl+S | Descargar el .docx |
| Clic en una imagen | Seleccionarla (asas para cambiar el tamaño; las esquinas mantienen la proporción, Shift la libera) |
| Arrastrar una imagen flotante | Moverla |
Flechas / Shift + flechas | Mover la imagen flotante seleccionada 1 px / 10 px |
Supr / Retroceso | Eliminar la imagen seleccionada |
Esc | Volver al texto |
Rust DOCX is a Word (.docx) editor that runs entirely in the browser: a Rust core compiled to WebAssembly parses the OpenXML, lays out pages the way Word does (style cascade, real font metrics, pagination, tables, inline pictures that flow with the text and floating ones that text wraps around) and renders them to a 2D canvas with its own caret and selection. Pictures can be selected, resized, moved and re-wrapped with the mouse or from code (resizeImage, moveImage, setImageWrap, updateImage). Edits are lossless: only the XML you touched is rewritten. Template placeholders like {{FIELD}} are replaced even when Word splits them across runs. No server is involved, so documents never leave your machine.
Try the live demo, and see the known limitations above.
src/shapes.rs| Cuadros de texto y formas (DrawingML y VML): relleno, borde, márgenes internos y texto |
src/sample_generator.rs | Documento de demostración generado en memoria |
packages/docx-editor/ | Paquete npm reutilizable: DocxEditor, <docx-editor> y barra de herramientas opcional |
apps/demo/ | La demo publicada, construida sobre el paquete |