This is my first attempt to create a Perl script.
This script is to convert Markdown files to plain text ones, with some "common" typographic substitutions.
When I finish it, it is assumed to work as follows:
- Single-hyphen dashes are replaced with three hyphens: that is,
foo - bar
is replaced withfoo---bar
- Markdown-style italic is replaced with Org Mode-style italic: that is,
foo *bar* baz
is replaced withfoo /bar/ baz
- Blank lines are replaced with first-line indents, that is:
``` FROM THIS This is a 500-character line of text.This is another 500-character line of text. ```
TO THIS This is a 500-character line of text. This is another 500- character line of text.
- Lines are hard-wrapped at 72 characters, and additionally:
- Any single-letter word, such as "a" or "I", if it happened to be at the end of a hard-wrapped line, unless it is the last word in a paragraph, is moved to the next hard-wrapped line, that is:
FROM THIS He knows that I love bananas.
TO THIS He knows that I love bananas.
And now the first draft. Please don't laugh too loudly 😀
```
!/usr/bin/perl
perl -pi -e 's/ - /---/g' $1 # foo - bar to foo---bar perl -pi -e 's/*///g' $1 # foo to /foo/ perl -pi -e 's/\n{2}/\n /g' $1 # blank lines to first-line indents ```
The first two lines work fine.
But I really don't understand why the third line doesn't replace blank lines with first-line indents.
Also, maybe someone can point me to an existing Perl or Awk script that does all of this.
submitted by /u/No-Usual-9631
[link] [comments]