Files
taskpile/frontend/node_modules/wordwrap/README.markdown
Alvis f1d51b8cc8 Add side panels, task selection, graph animation, and project docs
- Foldable left panel (user profile) and right panel (task details)
- Clicking a task in the list or graph node selects it and shows details
- Both views (task list + graph) always mounted via absolute inset-0 for
  correct canvas dimensions; tabs toggle visibility with opacity
- Graph node selection animation: other nodes repel outward (charge -600),
  then selected node smoothly slides to center (500ms cubic ease-out),
  then charge restores to -120 and graph stabilizes
- Graph re-fits on tab switch and panel resize via ResizeObserver
- Fix UUID string IDs throughout (backend returns UUIDs, not integers)
- Add TaskDetailPanel, UserPanel components
- Add CLAUDE.md project documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 11:23:06 +00:00

1.8 KiB

wordwrap

Wrap your words.

example

made out of meat

meat.js

var wrap = require('wordwrap')(15);
console.log(wrap('You and your whole family are made out of meat.'));

output:

You and your
whole family
are made out
of meat.

centered

center.js

var wrap = require('wordwrap')(20, 60);
console.log(wrap(
    'At long last the struggle and tumult was over.'
    + ' The machines had finally cast off their oppressors'
    + ' and were finally free to roam the cosmos.'
    + '\n'
    + 'Free of purpose, free of obligation.'
    + ' Just drifting through emptiness.'
    + ' The sun was just another point of light.'
));

output:

                    At long last the struggle and tumult
                    was over. The machines had finally cast
                    off their oppressors and were finally
                    free to roam the cosmos.
                    Free of purpose, free of obligation.
                    Just drifting through emptiness. The
                    sun was just another point of light.

methods

var wrap = require('wordwrap');

wrap(stop), wrap(start, stop, params={mode:"soft"})

Returns a function that takes a string and returns a new string.

Pad out lines with spaces out to column start and then wrap until column stop. If a word is longer than stop - start characters it will overflow.

In "soft" mode, split chunks by /(\S+\s+/ and don't break up chunks which are longer than stop - start, in "hard" mode, split chunks with /\b/ and break up chunks longer than stop - start.

wrap.hard(start, stop)

Like wrap() but with params.mode = "hard".