def renderBook(self, bookName): if self.booksUsfm.has_key(bookName): self.logger.info('Rendering ' + bookName) tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) self.logger.info('Rendered ' + bookName)
def translateBook(self, usfm): tokens = parseUsfm.parseString(usfm) s = u'' tp = ASCIIPrinter() for t in tokens: s = s + t.renderOn(tp) return s
def run(self): self.unknowns = [] try: bookName = self.renderBook if self.booksUsfm.has_key(bookName): self.writeLog(' (' + bookName + ')') tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) except: for bookName in books.silNames: if self.booksUsfm.has_key(bookName): self.writeLog(' (' + bookName + ')') tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) if len(self.unknowns): print 'Skipped unknown tokens: {0}'.format(', '.join(set(self.unknowns)))
def setupAndRun(self, patchedDir, prefaceDir, outputDir): self.patchedDir = patchedDir self.prefaceDir = prefaceDir self.outputDir = outputDir self.booksUsfm = books.loadBooks(patchedDir) self.printer = ReaderPrinter(self.outputDir) for bookName in books.silNames: if self.booksUsfm.has_key(bookName): tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self.printer) self.printer.close() print ' (' + bookName + ')' self.printer.close() index = header + ur""" <h1>Open English Bible</h1> <p>Release of """ + datetime.date.today().strftime("%A %d. %B %Y") + u"""</p> </div> </body> </html> """ f = open(self.outputDir + u'/index.html', 'w') f.write(index.encode('utf-8')) f.close()
def run(self): self.unknowns = [] try: bookName = self.renderBook if self.booksUsfm.has_key(bookName): self.writeLog(' (' + bookName + ')') tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) except: for bookName in books.silNames: if self.booksUsfm.has_key(bookName): self.writeLog(' (' + bookName + ')') tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) if len(self.unknowns): print 'Skipped unknown tokens: {0}'.format(', '.join( set(self.unknowns)))
def translateBook(self, usfm, smallCap): tokens = parseUsfm.parseString(usfm) s = u'' self.texPrinter.smallCapSections = smallCap for t in tokens: s = s + t.renderOn(self.texPrinter) s = s + self.texPrinter.stopNarrower() s = s + u"\marking[RAChapter]{ } \marking[RABook]{ } \marking[RASection]{ }" return s
def setupAndRun(self, patchedDir, outputDir): self.patchedDir = patchedDir self.outputDir = outputDir self.booksUsfm = books.loadBooks(patchedDir) self.printer = ReaderPrinter(self.outputDir) tokens = [] print " ** Parsing" for bookName in books.silNames: if self.booksUsfm.has_key(bookName): tokens = tokens + parseUsfm.parseString(self.booksUsfm[bookName]) self.tokenStream = TokenStream(tokens) print " ** Rendering" self.printer.renderStream(self.tokenStream)
def convertFile(folder, fname): state = State() state.reset() usfmfile = os.path.join(folder, fname) # detect file encoding enc = detect_by_bom(usfmfile, default="utf-8") input = io.open(usfmfile, "tr", 1, encoding=enc) str = input.read(-1) input.close print "CONVERTING " + fname + ":" sys.stdout.flush() for token in parseUsfm.parseString(str): take(token) state.usfmFile.close()
def setupAndRun(self, patchedDir, outputDir, buildName): self.patchedDir = patchedDir self.outputDir = outputDir self.booksUsfm = books.loadBooks(patchedDir) self.printer = CSVPrinter(self.outputDir) for bookName in books.silNames: if self.booksUsfm.has_key(bookName): tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self.printer) self.printer.close() print ' (' + bookName + ')' self.printer.close() f = open(self.outputDir + buildName, 'w') f.write(self.printer.rendered.encode('utf-8')) f.close()
def convertFile(usfmpath, fname): state = State() state.reset() # detect file encoding enc = detect_by_bom(usfmpath, default="utf-8") input = io.open(usfmpath, "tr", 1, encoding=enc) str = input.read(-1) input.close print "CONVERTING " + fname + ":" sys.stdout.flush() success = isParseable(str, fname) if success: for token in parseUsfm.parseString(str): take(token) state.usfmFile.close() return success
def convertFile(filename): # detect file encoding enc = detect_by_bom(filename, default="utf-8") input = io.open(filename, "tr", 1, encoding=enc) str = input.read(-1) input.close print "CONVERTING " + filename + ":" for token in parseUsfm.parseString(str): take(token) state = State() state.closeUsxOutput() print "FINISHED.\nAfter running this script, check the following:" print " Investigate any errors reported by the script." print " Edit content/front/title.usx." print " Edit package.json, LICENSE.md in parent folder. Verify that package.json is encoded as UTF-8." print " No <note> or <char> nodes from the English .usx files crept in to the target files. (grep '<note' ...)" print " No English carried over to the target .usx files. (grep -i 'the ' ...)" print " <para> and </para> nodes should be balanced in target .usx files."
def verifyFile(filename): # detect file encoding enc = detect_by_bom(filename, default="utf-8") # print "DECODING: " + enc input = io.open(filename, "tr", 1, encoding=enc) str = input.read(-1) input.close print "CHECKING " + filename + ":" sys.stdout.flush() for token in parseUsfm.parseString(str): take(token) verifyNotEmpty(filename) verifyVerseCount() # for the last chapter verifyChapterCount() state = State() state.addID(u"") sys.stderr.flush() print "FINISHED CHECKING.\n"
def setupAndRun(self, patchedDir, outputDir, buildName): self.patchedDir = patchedDir self.outputDir = outputDir self.booksUsfm = books.loadBooks(patchedDir) self.printer = LoutPrinter(self.outputDir) for bookName in books.silNames: if self.booksUsfm.has_key(bookName): tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self.printer) self.printer.close() print ' (' + bookName + ')' self.printer.close() f = open(self.outputDir + buildName, 'w') f.write(ur"""@Include { oebbook } @Book @Title {} @Author {} @Edition {} @Publisher {} @BeforeTitlePage {} @OnTitlePage {} @AfterTitlePage {} @AtEnd {} @InitialLanguage { English } @PageOrientation { Portrait } @PageHeaders { Titles } @ColumnNumber { 1 } @FirstPageNumber { 1 } @IntroFirstPageNumber { 1 } @OptimizePages { No } @GlossaryText { @Null } @IndexText { @Null } @IndexAText { @Null } @IndexBText { @Null } // """.encode('utf-8')) f.write(self.printer.rendered.encode('utf-8')) f.close()
def verifyFile(filename): # detect file encoding enc = detect_by_bom(filename, default="utf-8") input = io.open(filename, "tr", 1, encoding=enc) str = input.read(-1) input.close shortname = filename if prefix_re.match(filename): shortname = "..." + filename[6:] print "CHECKING " + shortname + ":" sys.stdout.flush() verifyChapterAndVerseMarkers(str, shortname) for token in parseUsfm.parseString(str): take(token) verifyNotEmpty(filename) verifyVerseCount() # for the last chapter verifyChapterCount() state = State() state.addID(u"") sys.stderr.flush()
def verifyFile(filename): # detect file encoding enc = detect_by_bom(filename, default="utf-8") input = io.open(filename, "tr", 1, encoding=enc) str = input.read(-1) input.close() shortname = filename if prefix_re.match(filename): shortname = "..." + filename[6:] print "CHECKING " + shortname + ":" sys.stdout.flush() verifyChapterAndVerseMarkers(str, shortname) for token in parseUsfm.parseString(str): take(token) verifyNotEmpty(filename) verifyVerseCount() # for the last chapter verifyChapterCount() state = State() state.addID(u"") sys.stderr.flush()
def renderBook(self, bookName): if bookName in self.booksUsfm: self.logger.debug('Rendering ' + bookName) tokens = parseUsfm.parseString(self.booksUsfm[bookName]) for t in tokens: t.renderOn(self) self.logger.debug('Rendered ' + bookName)
def translateBook(self, usfm): tokens = parseUsfm.parseString(usfm) tp = MediaWikiPrinter(self.outputDir) for t in tokens: t.renderOn(tp)
def translateBook(self, usfm): tokens = parseUsfm.parseString(usfm) for t in tokens: t.renderOn(self.printer)