\Format textparagraph txt "Plain Text, Join Lines" "" "" "%%" "document"''' ])
#
path, xhtmlview = checkViewer('an HTML previewer', ['firefox', 'mozilla file://$$p$$i', 'netscape'],
- rc_entry = [r'\Format xhtml xhtml "LyX HTML" X "%%" "" "document"'])
+ rc_entry = [r'\Format xhtml xhtml "LyXHTML" X "%%" "" "document"'])
if xhtmlview == "":
- addToRC(r'\Format xhtml xhtml "LyX HTML" X "" "" "document"')
+ addToRC(r'\Format xhtml xhtml "LyXHTML" X "" "" "document"')
#
checkEditor('a BibTeX editor', ['sensible-editor', 'jabref', 'JabRef', \
'pybliographic', 'bibdesk', 'gbib', 'kbib', \
checkViewerEditor('Noteedit', ['noteedit'],
rc_entry = [r'\Format noteedit not Noteedit "" "%%" "%%" "vector"'])
#
- checkViewerEditor('an OpenDocument viewer', ['swriter', 'oowriter'],
- rc_entry = [r'\Format odt odt OpenDocument "" "%%" "%%" "document,vector"'])
+ checkViewerEditor('an OpenDocument/OpenOffice viewer', ['swriter', 'oowriter', 'abiword'],
+ rc_entry = [r'''\Format odt odt OpenDocument "" "%%" "%%" "document,vector"
+\Format sxw sxw "OpenOffice.Org (sxw)" "" "" "" "document,vector"'''])
+ #
+ checkViewerEditor('a Rich Text and Word viewer', ['swriter', 'oowriter', 'abiword'],
+ rc_entry = [r'''\Format rtf rtf "Rich Text Format" "" "" "" "document,vector"
+\Format word doc "MS Word" W "" "" "document,vector"'''])
#
# entried that do not need checkProg
addToRC(r'''\Format date "" "date command" "" "" "" ""
\Format pdftex pdftex_t PDFTEX "" "" "" ""
\Format program "" Program "" "" "" ""
\Format pstex pstex_t PSTEX "" "" "" ""
-\Format rtf rtf "Rich Text Format" "" "" "" "document,vector"
-\Format sxw sxw "OpenOffice.Org (sxw)" "" "" "" "document,vector"
-\Format wmf wmf "Windows Metafile" "" "auto" "auto" "vector"
-\Format emf emf "Enhanced Metafile" "" "auto" "auto" "vector"
-\Format word doc "MS Word" W "" "" "document,vector"
+\Format wmf wmf "Windows Metafile" "" "" "" "vector"
+\Format emf emf "Enhanced Metafile" "" "" "" "vector"
\Format wordhtml html "HTML (MS Word)" "" "" "" "document"
''')
else:
addToRC(r'''\copier html "python -tt $$s/scripts/ext_copy.py $$i $$o"''')
+ # Check if LyxBlogger is installed.
+ path, lyxblogger = checkProg('A LyX to WordPress Blog Publishing Tool',
+ ['lyxblogger $$i'], rc_entry = [])
+ if lyxblogger.find('lyxblogger') >= 0:
+ addToRC(r'\Format blog blog "LyxBlogger" "" "" "" "document"')
+ addToRC(r'\converter xhtml blog "lyxblogger $$i" ""')
+
# On SuSE the scripts have a .sh suffix, and on debian they are in /usr/share/tex4ht/
path, htmlconv = checkProg('a LaTeX -> MS Word converter', ["htlatex $$i 'html,word' 'symbol/!' '-cvalidate'", \
"htlatex.sh $$i 'html,word' 'symbol/!' '-cvalidate'", \
\converter agr ppm "gracebat -hardcopy -printfile $$o -hdevice PNM $$i 2>/dev/null" ""''',
''])
#
- checkProg('a Dot -> PDF converter', ['dot -Tpdf $$i -o $$o'],
- rc_entry = [ r'\converter dot pdf "%%" ""'])
+ checkProg('a Dot -> Image converter', ['dot'],
+ rc_entry = [
+ r'''\converter dot eps "dot -Teps $$i -o $$o" ""
+\converter dot pdf "dot -Tpdf $$i -o $$o" ""
+\converter dot png "dot -Tpng $$i -o $$o" ""''',
+ ''])
#
checkProg('a Dia -> PNG converter', ['dia -e $$o -t png $$i'],
rc_entry = [ r'\converter dia png "%%" ""'])
we expect output:
- "article" "article" "article" "false"
- "scrbook" "scrbook" "book (koma-script)" "false"
- "svjog" "svjour" "article (Springer - svjour/jog)" "false"
+ "article" "article" "article" "false" "article.cls"
+ "scrbook" "scrbook" "book (koma-script)" "false" "scrbook.cls"
+ "svjog" "svjour" "article (Springer - svjour/jog)" "false" "svjour.cls,svjog.clo"
'''
+ def checkForClassExtension(x):
+ '''if the extension for a latex class is not
+ provided, add .cls to the classname'''
+ if not '.' in x:
+ return x.strip() + '.cls'
+ else:
+ return x.strip()
classname = file.split(os.sep)[-1].split('.')[0]
# return ('LaTeX', '[a,b]', 'a', ',b,c', 'article') for \DeclareLaTeXClass[a,b,c]{article}
p = re.compile(r'\Declare(LaTeX|DocBook)Class\s*(\[([^,]*)(,.*)*\])*\s*{(.*)}')
avai = {'LaTeX':'false', 'DocBook':bool_docbook}[classtype]
if opt == None:
opt = classname
- return '"%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai)
+ prereq_latex = checkForClassExtension(classname)
+ else:
+ prereq_list = optAll[1:-1].split(',')
+ prereq_list = map(checkForClassExtension, prereq_list)
+ prereq_latex = ','.join(prereq_list)
+ prereq_docbook = {'true':'', 'false':'docbook'}[bool_docbook]
+ prereq = {'LaTeX':prereq_latex, 'DocBook':prereq_docbook}[classtype]
+ return '"%s" "%s" "%s" "%s" "%s"\n' % (classname, opt, desc, avai, prereq)
logger.warning("Layout file " + file + " has no \DeclareXXClass line. ")
return ""
We expect output:
"ModuleName" "filename" "Description" "Packages" "Requires" "Excludes" "Category"
'''
- p = re.compile(r'\DeclareLyXModule\s*(?:\[([^]]*?)\])?{(.*)}')
- r = re.compile(r'#+\s*Requires: (.*)')
- x = re.compile(r'#+\s*Excludes: (.*)')
- c = re.compile(r'#+\s*Category: (.*)')
- b = re.compile(r'#+\s*DescriptionBegin\s*$')
- e = re.compile(r'#+\s*DescriptionEnd\s*$')
+ remods = re.compile(r'\DeclareLyXModule\s*(?:\[([^]]*?)\])?{(.*)}')
+ rereqs = re.compile(r'#+\s*Requires: (.*)')
+ reexcs = re.compile(r'#+\s*Excludes: (.*)')
+ recaty = re.compile(r'#+\s*Category: (.*)')
+ redbeg = re.compile(r'#+\s*DescriptionBegin\s*$')
+ redend = re.compile(r'#+\s*DescriptionEnd\s*$')
modname = desc = pkgs = req = excl = catgy = ""
readingDescription = False
for line in open(file).readlines():
if readingDescription:
- res = e.search(line)
+ res = redend.search(line)
if res != None:
readingDescription = False
desc = " ".join(descLines)
+ # Escape quotes.
+ desc = desc.replace('"', '\\"')
continue
descLines.append(line[1:].strip())
continue
- res = b.search(line)
+ res = redbeg.search(line)
if res != None:
readingDescription = True
continue
- res = p.search(line)
+ res = remods.search(line)
if res != None:
(pkgs, modname) = res.groups()
if pkgs == None:
tmp = [s.strip() for s in pkgs.split(",")]
pkgs = ",".join(tmp)
continue
- res = r.search(line)
+ res = rereqs.search(line)
if res != None:
req = res.group(1)
tmp = [s.strip() for s in req.split("|")]
req = "|".join(tmp)
continue
- res = x.search(line)
+ res = reexcs.search(line)
if res != None:
excl = res.group(1)
tmp = [s.strip() for s in excl.split("|")]
excl = "|".join(tmp)
continue
- res = c.search(line)
+ res = recaty.search(line)
if res != None:
catgy = res.group(1)
continue
- if modname != "":
- if pkgs != "":
- # this module has some latex dependencies:
- # append the dependencies to chkmodules.tex,
- # which is \input'ed by chkconfig.ltx
- testpackages = list()
- for pkg in pkgs.split(","):
- if "->" in pkg:
- # this is a converter dependency: skip
- continue
- if pkg.endswith(".sty"):
- pkg = pkg[:-4]
- testpackages.append("\\TestPackage{%s}" % (pkg,))
- cm = open('chkmodules.tex', 'a')
- for line in testpackages:
- cm.write(line + '\n')
- cm.close()
- return '"%s" "%s" "%s" "%s" "%s" "%s" "%s"\n' % (modname, filename, desc, pkgs, req, excl, catgy)
- logger.warning("Module file without \DeclareLyXModule line. ")
- return ""
+
+ if modname == "":
+ logger.warning("Module file without \DeclareLyXModule line. ")
+ return ""
+
+ if pkgs != "":
+ # this module has some latex dependencies:
+ # append the dependencies to chkmodules.tex,
+ # which is \input'ed by chkconfig.ltx
+ testpackages = list()
+ for pkg in pkgs.split(","):
+ if "->" in pkg:
+ # this is a converter dependency: skip
+ continue
+ if pkg.endswith(".sty"):
+ pkg = pkg[:-4]
+ testpackages.append("\\TestPackage{%s}" % (pkg,))
+ cm = open('chkmodules.tex', 'a')
+ for line in testpackages:
+ cm.write(line + '\n')
+ cm.close()
+
+ return '"%s" "%s" "%s" "%s" "%s" "%s" "%s"\n' % (modname, filename, desc, pkgs, req, excl, catgy)
+
def checkTeXAllowSpaces():