mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-25 19:07:45 +00:00
DocBook: add the new script as DocBook copier.
This commit is contained in:
parent
f0537d72ee
commit
57e0b860cb
@ -1015,9 +1015,9 @@ def checkConverterEntries():
|
|||||||
xpath = 'none'
|
xpath = 'none'
|
||||||
global java
|
global java
|
||||||
if xsltproc != '':
|
if xsltproc != '':
|
||||||
addToRC('\\converter docbook5 epub "python $$s/scripts/docbook2epub.py none none \\"' + xsltproc + '\\" ' + xpath + ' $$i $$r $$o" ""')
|
addToRC(r'\converter docbook5 epub "python $$s/scripts/docbook2epub.py none none \"' + xsltproc + r'\" ' + xpath + ' $$i $$r $$o" ""')
|
||||||
elif java != '':
|
elif java != '':
|
||||||
addToRC('\\converter docbook5 epub "python $$s/scripts/docbook2epub.py \\"' + java + '\\" none none ' + xpath + ' $$i $$r $$o" ""')
|
addToRC(r'\converter docbook5 epub "python $$s/scripts/docbook2epub.py \"' + java + r'\" none none ' + xpath + ' $$i $$r $$o" ""')
|
||||||
#
|
#
|
||||||
checkProg('a MS Word Office Open XML converter -> LaTeX', ['pandoc -s -f docx -o $$o -t latex $$i'],
|
checkProg('a MS Word Office Open XML converter -> LaTeX', ['pandoc -s -f docx -o $$o -t latex $$i'],
|
||||||
rc_entry = [ r'\converter word2 latex "%%" ""' ])
|
rc_entry = [ r'\converter word2 latex "%%" ""' ])
|
||||||
@ -1311,13 +1311,24 @@ def checkConverterEntries():
|
|||||||
# even when requested with --pdf. This is a problem if a user
|
# even when requested with --pdf. This is a problem if a user
|
||||||
# clicks View PDF after having done a View DVI. To circumvent
|
# clicks View PDF after having done a View DVI. To circumvent
|
||||||
# this, use different output folders for eps and pdf outputs.
|
# this, use different output folders for eps and pdf outputs.
|
||||||
cmd = cmd.replace('"', '\\"')
|
cmd = cmd.replace('"', r'\"')
|
||||||
addToRC(r'\converter lilypond-book latex "' + cmd + ' --safe --lily-output-dir=ly-eps $$i" ""')
|
addToRC(r'\converter lilypond-book latex "' + cmd + ' --safe --lily-output-dir=ly-eps $$i" ""')
|
||||||
addToRC(r'\converter lilypond-book pdflatex "' + cmd + ' --safe --pdf --latex-program=pdflatex --lily-output-dir=ly-pdf $$i" ""')
|
addToRC(r'\converter lilypond-book pdflatex "' + cmd + ' --safe --pdf --latex-program=pdflatex --lily-output-dir=ly-pdf $$i" ""')
|
||||||
addToRC(r'\converter lilypond-book-ja platex "' + cmd + ' --safe --pdf --latex-program=platex --lily-output-dir=ly-pdf $$i" ""')
|
addToRC(r'\converter lilypond-book-ja platex "' + cmd + ' --safe --pdf --latex-program=platex --lily-output-dir=ly-pdf $$i" ""')
|
||||||
addToRC(r'\converter lilypond-book xetex "' + cmd + ' --safe --pdf --latex-program=xelatex --lily-output-dir=ly-pdf $$i" ""')
|
addToRC(r'\converter lilypond-book xetex "' + cmd + ' --safe --pdf --latex-program=xelatex --lily-output-dir=ly-pdf $$i" ""')
|
||||||
addToRC(r'\converter lilypond-book luatex "' + cmd + ' --safe --pdf --latex-program=lualatex --lily-output-dir=ly-pdf $$i" ""')
|
addToRC(r'\converter lilypond-book luatex "' + cmd + ' --safe --pdf --latex-program=lualatex --lily-output-dir=ly-pdf $$i" ""')
|
||||||
addToRC(r'\converter lilypond-book dviluatex "' + cmd + ' --safe --latex-program=dvilualatex --lily-output-dir=ly-eps $$i" ""')
|
addToRC(r'\converter lilypond-book dviluatex "' + cmd + ' --safe --latex-program=dvilualatex --lily-output-dir=ly-eps $$i" ""')
|
||||||
|
|
||||||
|
# Also create the entry to apply LilyPond on DocBook files. However,
|
||||||
|
# command must be passed as argument, and it might already have
|
||||||
|
# quoted parts. LyX doesn't yet handle double-quoting of commands.
|
||||||
|
# Hence, pass as argument either cmd (if it's a simple command) or
|
||||||
|
# the Python file that should be called (typical on Windows).
|
||||||
|
docbook_lilypond_cmd = cmd
|
||||||
|
if "python" in docbook_lilypond_cmd:
|
||||||
|
docbook_lilypond_cmd = '"' + path + '/lilypond-book"'
|
||||||
|
addToRC(r'\copier docbook5 "python $$s/scripts/docbook_copy.py ' + docbook_lilypond_cmd.replace('"', r'\"') + r' $$i $$o"')
|
||||||
|
|
||||||
logger.info('+ found LilyPond-book version %s.' % version_number)
|
logger.info('+ found LilyPond-book version %s.' % version_number)
|
||||||
else:
|
else:
|
||||||
logger.info('+ found LilyPond-book, but version %s is too old.' % version_number)
|
logger.info('+ found LilyPond-book, but version %s is too old.' % version_number)
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
# This script copies the original DocBook file (directly produced by LyX) to the output DocBook file,
|
# This script copies the original DocBook file (directly produced by LyX) to the output DocBook file,
|
||||||
# potentially applying a post-processing step. For now, the only implemented post-processing step is
|
# potentially applying a post-processing step. For now, the only implemented post-processing step is
|
||||||
# LilyPond.
|
# LilyPond.
|
||||||
|
# lilypond_book_command is either directly the binary to call OR the equivalent Python script that is
|
||||||
|
# not directly executable.
|
||||||
# /!\ The original file may be modified by this script!
|
# /!\ The original file may be modified by this script!
|
||||||
|
|
||||||
|
|
||||||
@ -28,6 +30,7 @@ def need_lilypond(file):
|
|||||||
|
|
||||||
|
|
||||||
def copy_docbook(args):
|
def copy_docbook(args):
|
||||||
|
print(args)
|
||||||
if len(args) != 4:
|
if len(args) != 4:
|
||||||
print('Exactly four arguments are expected, only %s found: %s.' % (len(args), args))
|
print('Exactly four arguments are expected, only %s found: %s.' % (len(args), args))
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
@ -37,7 +40,7 @@ def copy_docbook(args):
|
|||||||
in_file = args[2]
|
in_file = args[2]
|
||||||
out_file = args[3]
|
out_file = args[3]
|
||||||
|
|
||||||
has_lilypond = lilypond_command != ""
|
has_lilypond = lilypond_command != "" and lilypond_command != "none"
|
||||||
|
|
||||||
# Apply LilyPond to the original file if available and needed.
|
# Apply LilyPond to the original file if available and needed.
|
||||||
if has_lilypond and need_lilypond(in_file):
|
if has_lilypond and need_lilypond(in_file):
|
||||||
@ -47,11 +50,15 @@ def copy_docbook(args):
|
|||||||
in_lily_file = in_file.replace(".xml", ".lyxml")
|
in_lily_file = in_file.replace(".xml", ".lyxml")
|
||||||
shutil.move(in_file, in_lily_file)
|
shutil.move(in_file, in_lily_file)
|
||||||
|
|
||||||
# Start LilyPond on the copied file.
|
# Start LilyPond on the copied file. First test the binary, then check if adding Python helps.
|
||||||
command = lilypond_command + ' --format=docbook ' + in_lily_file
|
command = lilypond_command + ' --format=docbook ' + in_lily_file
|
||||||
|
print(command)
|
||||||
if os.system(command) != 0:
|
if os.system(command) != 0:
|
||||||
print('Error from LilyPond')
|
command = 'python -tt "' + lilypond_command + '" --format=docbook ' + in_lily_file
|
||||||
sys.exit(1)
|
print(command)
|
||||||
|
if os.system(command) != 0:
|
||||||
|
print('Error from LilyPond')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
# Now, in_file should have the LilyPond-processed contents.
|
# Now, in_file should have the LilyPond-processed contents.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user