Interactive POetry Editor
It's a text editor compiler for poetry!
$ cat test.txt
#lang ipoe/couplet
Humpty Dumpty sat on the wall
Humpty Dumpty had a great big head
$ raco make test.txt
ipoe: Expected a word to rhyme with 'wall', got 'head' (word 6, line 1, stanza 0)
- Checking for rhyme, syllables, stanza counts, and line equality
- Specification language (
#lang ipoe
) for defining new poetic forms
Here is the specification for #lang ipoe/couplet
.
#lang ipoe
#:name couplet
#:rhyme-scheme {[A A]}
That's 1 stanza with 2 rhyming lines with any number of syllables.
- Install Racket v6.3 or later (download)
- Install this package
- from pkgs.racket-lang.org :
$ raco pkg install ipoe
- or from GitHub :
$ git clone https://github.com/bennn/ipoe; raco pkg install ./ipoe
- (optional) Install PostgreSQL (download)
- Connect to the internet
- (if
postgresql
is running) Runraco ipoe init
to initialize a database - Browse the built-in poetic forms (
raco ipoe show
) - Write a poem, e.g.
hello.rkt
- Run
racket hello.rkt
Check the issue tracker for more.
- Submit poems, poetic forms, and words to a central repository
- Real iambic pentameter is more than "10 syllables per line"
- Include word meaning in the analysis, especially when giving suggestions
- Try WordNet
- Especially a problem for rhymes (syllable information is more accurate)
- Use the dictionary pronunciations / phonics
- Instead of using the internet / the user, parse Shakespeare's works and infer what words rhyme etc.