The branch, master, has been updated. - Log -----------------------------------------------------------------
commit ddd0ff971a8f0edba5bdbaccfb77fe569dceac55 Author: Richard Heck <[email protected]> Date: Wed Oct 10 13:54:26 2012 -0400 Convert old pre-category layouts to new categorized layouts. Unfortunately, this doesn't quite work the way one might like. It is fine for manually converting one's own layouts to the new format, but it doesn't work if you just start LyX, since the category info is written at configuration time, not at run time, and chkconfig.ltx does not run layout2layout. diff --git a/lib/scripts/layout2layout.py b/lib/scripts/layout2layout.py index a9b5ba3..1248c7f 100644 --- a/lib/scripts/layout2layout.py +++ b/lib/scripts/layout2layout.py @@ -242,6 +242,12 @@ def convert(lines): re_QInsetLayout2 = re.compile(r'^\s*InsetLayout\s+"([^"]+)"\s*$', re.IGNORECASE) re_IsFlex = re.compile(r'\s*LyXType.*$', re.IGNORECASE) re_CopyStyle2 = re.compile(r'(\s*CopyStyle\s+)"?([^"]+)"?\s*$') + # for categories + re_Declaration = re.compile(r'^#\s*\\Declare\w+Class.*$') + re_ExtractCategory = re.compile(r'^(#\s*\\Declare\w+Class(?:\[[^]]*?\])?){([^(]+?)\s+\(([^)]+?)\)\s*}\s*$') + ConvDict = {"article": "Articles", "book" : "Books", "letter" : "Letters", "report": "Reports", \ + "presentation" : "Presentations", "curriculum vitae" : "Curricula Vitae", "handout" : "Handouts"} + # counters for sectioning styles (hardcoded in 1.3) counters = {"part" : "\\Roman{part}", @@ -290,8 +296,10 @@ def convert(lines): flexstyles = [] while i < len(lines): - # Skip comments and empty lines - if re_Comment.match(lines[i]) or re_Empty.match(lines[i]): + # Skip comments and empty lines, but not if it's the declaration + # line (we'll deal with it below) + if (re_Comment.match(lines[i]) or re_Empty.match(lines[i])) \ + and not re_Declaration.match(lines[i]): i += 1 continue @@ -332,13 +340,22 @@ def convert(lines): continue if format == 39: - # something more substantil will be inserted here shortly - i += 1 - continue + match = re_ExtractCategory.match(lines[i]) + if match: + lpre = match.group(1) + lcat = match.group(2) + lnam = match.group(3) + if lcat in ConvDict: + lcat = ConvDict[lcat] + lines[i] = lpre + "{" + lnam + "}" + lines.insert(i+1, "# \\DeclareCategory{" + lcat + "}") + i += 1 + i += 1 + continue if format == 37 or format == 38: - i += 1 - continue + i += 1 + continue if format == 36: match = re_CiteFormat.match(lines[i]); ----------------------------------------------------------------------- Summary of changes: lib/scripts/layout2layout.py | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 deletions(-) hooks/post-receive -- The LyX Source Repository
