diff options
Diffstat (limited to 'fountain')
-rw-r--r-- | fountain/example.fountain | 20 | ||||
-rw-r--r-- | fountain/parse.go | 62 |
2 files changed, 20 insertions, 62 deletions
diff --git a/fountain/example.fountain b/fountain/example.fountain new file mode 100644 index 0000000..14ec4f8 --- /dev/null +++ b/fountain/example.fountain @@ -0,0 +1,20 @@ +INT. HOUSE - DAY + +MARY +I can't believe how easy it is to write in Fountain. + +TOM +(typing) +Look! I just made a parenthetical! + +SOMETHING HAPPENS! + +(what? I don't know...) + +EXT. GARDEN + +TOM +What am I doing here now? +To be honest, I have absolutely no idea! + +And that means really no idea! diff --git a/fountain/parse.go b/fountain/parse.go index dc4602f..b4273d7 100644 --- a/fountain/parse.go +++ b/fountain/parse.go @@ -4,68 +4,6 @@ import ( "strings" ) -var example = ` -INT. HOUSE - DAY - -MARY -I can't believe how easy it is to write in Fountain. - -TOM -(typing) -Look! I just made a parenthetical! - -SOMETHING HAPPENS! - -(what? I don't know...) - -EXT. GARDEN - -TOM -What am I doing here now? -To be honest, I have absolutely no idea! - -And that means really no idea! -` - -var action = map[string]struct { - Left, Width float64 -}{ - "action": {1.5, 6}, - "speaker": {4.2, 3.3}, - "dialog": {2.9, 3.3}, - "scene": {1.5, 6}, - "paren": {3.6, 2}, - "trans": {6, 1.5}, - "note": {1.5, 6}, - "allcaps": {1.5, 6}, - "empty": {1.5, 6}, -} - -var tr func(string) string - -type Tree struct { - PDF *gofpdf.Fpdf - F []struct { - Format string - Text string - } -} - -func (t Tree) pr(a string, text string) { - line(t.PDF, action[a].Left, action[a].Width, text) -} - -func (t Tree) Render() { - for _, row := range t.F { - t.pr(row.Format, row.Text) - } -} - -func line(pdf *gofpdf.Fpdf, jump, width float64, text string) { - pdf.SetX(jump) - pdf.MultiCell(width, 0.19, tr(text), "", "aligned", false) -} - func (t *Tree) ParseString(play string) { toParse := strings.Split(play, "\n") for i, row := range toParse { |