Browse Source

use LaTeX instead of TeX for verse and chorus environments

remotes/origin/split-songs
Romain Goffe 13 years ago
parent
commit
080bf69b82
  1. 22
      utils/rules.py

22
utils/rules.py

@ -25,8 +25,6 @@ word_dic = {
##: Punctuation ##: Punctuation
"": "'", "": "'",
"Ca ": "Ça ", "Ca ": "Ça ",
"\\musicnote{Intro": "\\musicnote{intro",
"\\musicnote{Outro": "\\musicnote{outro",
"...": "{\\dots}", "...": "{\\dots}",
"": "{\\dots}", "": "{\\dots}",
"say: ``":"say, ``", "say: ``":"say, ``",
@ -108,6 +106,13 @@ word_dic = {
"X00231": "XX0231", "X00231": "XX0231",
#B #B
"021202": "X21202", "021202": "X21202",
## LaTeX
"beginchorus": "begin{chorus}",
"endchorus": "end{chorus}",
"beginverse*": "begin{verse*}",
"beginverse": "begin{verse}",
"endverse": "end{verse}",
"}[by=": "}\n [by=",
### end of rules ### end of rules
} }
@ -186,12 +191,23 @@ def language_rules(string):
def process_lines(lines): def process_lines(lines):
''' '''
Removes trailing punctuation and multi-spaces from lines. Not Removes trailing punctuation and multi-spaces from lines. Note
that it preserves whitespaces at the beginning of lines that that it preserves whitespaces at the beginning of lines that
correspond to indentation. correspond to indentation.
''' '''
logging.info("process_lines: handling song data line by line") logging.info("process_lines: handling song data line by line")
star = False
for index, line in enumerate(lines): for index, line in enumerate(lines):
if re.compile("begin{verse\*}").search(line):
star = True
if re.compile("end{verse\*}").search(line):
star = False
if star == True and re.compile("end{verse}").search(line):
line = line.replace("verse", "verse*")
star = False
#remove trailing spaces and punctuation #remove trailing spaces and punctuation
line = line.rstrip().rstrip(',.;').rstrip() line = line.rstrip().rstrip(',.;').rstrip()
#remove multi-spaces within lines #remove multi-spaces within lines

Loading…
Cancel
Save