From 39287ad87b41df055c4c7569b8e443051d182f1b Mon Sep 17 00:00:00 2001 From: Joe Wreschnig Date: Mon, 19 May 2014 18:53:47 +0200 Subject: [PATCH] Tweak documentation and licensing notices. --- README.md | 48 ++++++++++++++++++++++++++++++++++-------------- demo.html | 3 +++ string-lerp.js | 24 ++++++++++++++++++------ 3 files changed, 55 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index d96fd9f..7a69c77 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ For example, it knows: * Halfway between rgb(255, 0, 0) and rgb(0, 0, 255) is rgb(128, 0, 128). (Well, it's good at strings, not color science.) -To try more, open up [demo.html] in your browser. +To try more, open up [demo.html][] in your browser. ## Setting Up @@ -27,7 +27,7 @@ Then, you can use `window.stringLerp` (or just `stringLerp`). Or if you're using Node or some other non-browser whatever, - var stringLerp = require("./string-lerp"); + var stringLerp = require("string-lerp"); If you want a minified version, at a shell run @@ -41,9 +41,9 @@ If you think something's wrong, or make changes, run ## API -### stringLerp.lerp(a, b, p) +### stringLerp.lerp(source, target, amount) -Interpolate between strings a and b, given a parameter p. +Interpolate between strings as best as possible. This automatically picks the best interpolator based on the strings provided. If the strings are identical aside from numbers in them, @@ -55,10 +55,9 @@ If the strings are not numbers and short, they are passed through Otherwise, they are passed through `fastLerp`. -### stringLerp.numericLerp(a, b, p) +### stringLerp.numericLerp(source, target, amount) -Lerp all the numbers in the string from their values in `a` to their -values in `b`. +Interpolate numerically between strings containing numbers. Numbers may have a leading "-" and a single "." to mark the decimal point, but something must be after the ".". No other floating point @@ -75,9 +74,9 @@ Calling this functions on strings that differ in more than numerals gives undefined results. -### stringLerp.diffLerp(a, b, p) +### stringLerp.diffLerp(source, target, amount) -Lerp from `a` to `b` based on edit operations. +Interpolate between two strings using edit operations. This interpolation algorithm applys a partial edit of one string into the other. This produces nice looking results, but can take a @@ -85,20 +84,20 @@ significant amount of time and memory to compute the edits. It is not recommended for strings longer than a few hundred characters. -### stringLerp.fastLerp(a, b, p) +### stringLerp.fastLerp(source, target, amount) -Lerp from `a` to `b` using a simple algorithm based on length. +Interpolate between `source` to `target` based on length. This interpolation algorithm progressively replaces the front of one string with another. This approach is fast but does not look good when the strings are similar. -### stringLerp.diff(s, t) and stringLerp.patch(edits, s) +### stringLerp.diff(source, target) and stringLerp.patch(diff, source) These are the functions used to implement `diffLerp`. `diff` calculates an array of edit operations - substitutions, insertions, -and deletions - to turn `s` into `t`. +and deletions - to turn `source` into `target`. The type of the edit operations is unspecified. What is guaranteed is: @@ -111,7 +110,7 @@ Do not rely on edit operations to be exactly the same type (or same operations) between versions / installations. -### stringLerp.levenshteinMatrix(s, t, ins, del, sub) +### stringLerp.costMatrix(source, target, ins, del, sub) Calculate the edit distance between the source and target sequences, and return a matrix representing the possible edits and their @@ -138,5 +137,26 @@ A similar problem occurs when switching between LTR and RTL in the same string. The codepoints indicating bidi switches may move around the string capturing glyphs in ways that are not visually appealing. +## License + + Copyright 2014 Joe Wreschnig + Licensed under the terms of the GNU GPL v2 or later + @license http://www.gnu.org/licenses/gpl-2.0.html + @source: http://yukkurigames.com/string-lerp/ + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + As additional permission, you may distribute the program or works + based on it without the copy of the GNU GPL normally required, + provided you include this license notice and a URL through which + recipients can access the corresponding source code. [NPM]: https://www.npmjs.org/ diff --git a/demo.html b/demo.html index de1902d..12acc3f 100644 --- a/demo.html +++ b/demo.html @@ -14,10 +14,13 @@