Also close bug
[filters.git] / README
CommitLineData
cd3ff89e 1This is a collection of filters to do all sorts of strange things to text.
e99ec255 2B1ff, the Swedish Chef, and an eleet filter are included, along with many,
3many more.
7e3afbba 4
dead413f 5http://joeyh.name/code/filters
5b25ff5f 6
73fc7494 7Since the original versions of some of these filters have copyright
8problems, I have done a "clean room" re-implementation of the original lex
9filters in perl. I did this without looking at the original code to the
10filters at all, I simply observed their output and drew my own conclusions,
11and wrote my own code. Then I compared the output of the original and new
12filters when ran on large bodies of text, and fixed the things I had
13missed.
7e3afbba 14
cd3ff89e 15Here are the results of my investigations of how the filters work:
7e3afbba 16
cd3ff89e 17eleet:
18 This is the simplest filter to figure out. The letters a-z of
19 the alphabet are replaced with the following letters:
20 4 b c d 3 f g h 1 j |< l /\/\ /\/ 0 p q r 5 + u \/ \/\/ >< y z
21 Note that the equivalent translation is done on upper-case letters.
7e3afbba 22
59e5dee0 23fudd:
24
25 This one is trivial too. A few transpositions happen differently if
26 the letter is at the end of the word or not, and I think I found
27 all the transpositions with only a few paragraphs of sample output.
28 The only weird thing is that 'n.' is changed to "n, uh-hah-hah-hah."
29 (Works well with sentances ending in "gun." ..)
30
cd3ff89e 31chef:
32 Personally my favorite filter. This took a bit of work to figure
33 out, and I doubt I have everything correct. Note that due to a bug
34 or an odd feature of the original program, it doesn't seem to think
35 that the first letter of the first word is really the first letter
36 of a word and so some of the words below don't trigger for that first
37 word. I did not emulate this behavior because I think it's probably a
38 bug.
7e3afbba 39
cd3ff89e 40 The word "bork" is never changed, no matter what any of these
41 rules may say. Neither is "Bork".
7e3afbba 42
cd3ff89e 43 The following translations only happen to letters that are the first
44 letter of a word of at least 2 letters in size:
45 o -> oo
46 O -> Oo
7e3afbba 47
cd3ff89e 48 These happen to letters that are not the last letter of a word:
49 a -> e
50 A -> e
7e3afbba 51
cd3ff89e 52 These translations only happen if the letter is not the first letter
53 of a word:
54 f -> ff
55 i -> ee (but only the first `i' per word)
56 o -> u
57 u -> oo
7e3afbba 58
cd3ff89e 59 These translations always happen:
60 v -> f
61 V -> F
62 w -> v
63 W -> V
64 an -> un
65 An -> Un
66 au -> oo
67 Au -> Oo
68
69 Any occurrence of "e" at the end of a word is changed to "e-a".
70
71 Any occurrence of "e" and the beginning of a word is changed to "i".
72 Same with capitals.
73
74 Any occurrence of "the" is changed to "zee", any occurrence of
75 "The", to "Zee".
76
77 Any occurrence of "tion" in a word, to "shun".
78
79 Any "th" at the end of a word is changed to "t".
80
81 Any "en" at the end of a word is changed to "ee".
82
83 Any "ow" at the end of a word is changed to "oo".
84
85 And of course, after any `.', `?', or `!' that is at the end of a
86 line, the Chef prints out a new line, and then the famous
87 "Bork Bork Bork!", and then another newline.
88
89 Known bugs in this implementation:
90 - says "frunch", not "french".
91 - still quite buggy in general.
92
93b1ff:
94 Unlike the other filters, b1ff does not try to be an exact duplicate
95 of its predecessor.
96
97 After upper-casing everything, b1ff does some word and sub-word
98 substitutions, most of them misspellings.
99
100 B1ff also changes punctuation - All commas become periods; all
101 semicolons, commas. Question and exclamation marks are changed to
102 things like "!!!!1!" and "?!?!?!". It looks like the original filter
103 decided how long a sequence to print based on the text input before
104 the end of sentence. I took a simpler route and just randomized it.
105
dead413f 106Collected and written by Joey Hess <id@joeyh.name>
This page took 0.017908 seconds and 4 git commands to generate.