aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--data/doc/sisu/CHANGELOG_v31
-rw-r--r--lib/sisu/v3/odf.rb90
-rw-r--r--lib/sisu/v3/odf_format.rb32
3 files changed, 62 insertions, 61 deletions
diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3
index ba08ca73..e8d609e9 100644
--- a/data/doc/sisu/CHANGELOG_v3
+++ b/data/doc/sisu/CHANGELOG_v3
@@ -24,6 +24,7 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.1.1.orig.tar.xz
* odf:odt v1.0
* make odt header changes easier to track
* get rid of (binary changeset) blob
+ * make odt style names more easily recognizable
* manifest, odt url lnk, fix
diff --git a/lib/sisu/v3/odf.rb b/lib/sisu/v3/odf.rb
index e268b873..3bd59e81 100644
--- a/lib/sisu/v3/odf.rb
+++ b/lib/sisu/v3/odf.rb
@@ -158,8 +158,8 @@ module SiSU_ODF
url=@md.fnb
fn=@md.fn[:manifest]
manifest="#{@env.url.root}/#{@md.fnb}/#{@md.fn[:manifest]}"
- @@odf[:tail] << %{<text:p text:style-name="P1">Available document outputs: <br /> &lt;<text:a xlink:type="simple" xlink:href="#{manifest}">#{manifest}</text:a>&gt;</text:p>}
- @@odf[:tail] << %{\n<text:p text:style-name="P1">SiSU: &lt;<text:a xlink:type="simple" xlink:href="http://www.jus.uio.no/lm">www.jus.uio.no/sisu</text:a>&gt; and &lt;<text:a xlink:type="simple" xlink:href="http://www.sisudoc.org">www.sisudoc.org</text:a>&gt;</text:p>}
+ @@odf[:tail] << %{<text:p text:style-name="P_normal">Available document outputs: <br /> &lt;<text:a xlink:type="simple" xlink:href="#{manifest}">#{manifest}</text:a>&gt;</text:p>}
+ @@odf[:tail] << %{\n<text:p text:style-name="P_normal">SiSU: &lt;<text:a xlink:type="simple" xlink:href="http://www.jus.uio.no/lm">www.jus.uio.no/sisu</text:a>&gt; and &lt;<text:a xlink:type="simple" xlink:href="http://www.sisudoc.org">www.sisudoc.org</text:a>&gt;</text:p>}
@@odf[:tail] << "\n</office:text></office:body></office:document-content>"
end
def heading(dob,p_num='')
@@ -175,12 +175,12 @@ module SiSU_ODF
unless @@docstart
breakpage=if (@md.pagenew or @md.pagebreak) \
and (@md.pagenew =~ m or @md.pagebreak =~m)
- '<text:p text:style-name="P9"> </text:p>'
+ '<text:p text:style-name="P_normal_page_new"> </text:p>'
else ''
end
end
@@docstart=false
- dob.obj=%{#{breakpage}<text:h text:style-name="Heading_20_#{dob.ln}" text:outline-level="#{dob.ln}">#{dob.obj}#{p_num}</text:h>}
+ dob.obj=%{#{breakpage}<text:h text:style-name="Heading_#{dob.ln}" text:outline-level="#{dob.ln}">#{dob.obj}#{p_num}</text:h>}
dob
end
def image_src(i)
@@ -222,7 +222,7 @@ module SiSU_ODF
and w.to_s =~/\d/
@@img_count +=1
%{<draw:frame draw:style-name="fr1" draw:name="graphics#{@@img_count}" text:anchor-type="as-char" svg:width="#{w}cm" svg:height="#{h}cm" draw:z-index="2"><draw:image xlink:href="Pictures/#{i}" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/></draw:frame>#{c}} #anchor-type: as-char or paragraph or char or ...
- else %{<text:p text:style-name="P1">[image omitted]</text:p>}
+ else %{<text:p text:style-name="P_normal">[image omitted]</text:p>}
end
end
def image(dob)
@@ -310,12 +310,12 @@ module SiSU_ODF
dob.obj= if dob.is=='para' \
and dob.indent.to_s =~/[0-9]/ \
and dob.indent == dob.hang
- %{<text:p text:style-name="P1#{dob.indent}">#{dob.obj}#{p_num}</text:p>}
+ %{<text:p text:style-name="P_indent_#{dob.indent}">#{dob.obj}#{p_num}</text:p>}
elsif dob.is=='para' \
and dob.hang.to_s =~/[0-9]/ \
and dob.indent != dob.hang # NOT yet implemented
- %{<text:p text:style-name="P1#{dob.indent}">#{dob.obj}#{p_num}</text:p>}
- else %{<text:p text:style-name="P1">#{dob.obj}#{p_num}</text:p>}
+ %{<text:p text:style-name="P_indent_#{dob.indent}">#{dob.obj}#{p_num}</text:p>}
+ else %{<text:p text:style-name="P_normal">#{dob.obj}#{p_num}</text:p>}
end
dob
end
@@ -372,7 +372,7 @@ module SiSU_ODF
def group_clean(str)
str.gsub!(/&amp;nbsp;|&nbsp;|#{Mx[:nbsp]}/,'&#160;')
str.gsub!(/</,'&lt;'); str.gsub!(/>/,'&gt;')
- str.gsub!(/&lt;(text:span text:style-name="T[1-5]"|\/text:span)&gt;/,'<\1>') #works, not ideal
+ str.gsub!(/&lt;(text:span text:style-name="Table_\S+?"|\/text:span)&gt;/,'<\1>') #works, not ideal
str.gsub!(/#{Mx[:br_line]}/,'<br />')
str.gsub!(/&lt;br(?:\s+\/)?&gt;/,'<br />')
str
@@ -381,10 +381,10 @@ module SiSU_ODF
parray=[]
dob.obj.split(/#{Mx[:br_line]}|#{Mx[:br_nl]}/).each do |parablock|
parablock=group_clean(parablock)
- parray << %{<text:p text:style-name="P4">#{parablock}</text:p>} if parablock =~/\S+/
+ parray << %{<text:p text:style-name="P_group">#{parablock}</text:p>} if parablock =~/\S+/
end
dob.obj=parray.join \
- + %{<text:p text:style-name="P4">#{p_num}</text:p>} \
+ + %{<text:p text:style-name="P_group">#{p_num}</text:p>} \
+ '<text:p text:style-name="Standard"/>'
dob
end
@@ -404,10 +404,10 @@ module SiSU_ODF
parablock.gsub!(/&lt;(text:p text:style-name="Footnote")&gt;/,'<\1>')
parablock.gsub!(/&lt;(\/?text:(?:note-citation|note-body|note|p))&gt;/,'<\1>')
parablock=footnote(parablock)
- parray << %{<text:p text:style-name="P4">#{parablock}</text:p>} if parablock =~/\S+/
+ parray << %{<text:p text:style-name="P_group">#{parablock}</text:p>} if parablock =~/\S+/
end
dob.obj=parray.join \
- + %{<text:p text:style-name="P4">#{p_num}</text:p>} \
+ + %{<text:p text:style-name="P_group">#{p_num}</text:p>} \
+ '<text:p text:style-name="Standard"/>'
dob
end
@@ -427,10 +427,10 @@ module SiSU_ODF
parablock.gsub!(/&lt;(text:p text:style-name="Footnote")&gt;/,'<\1>')
parablock.gsub!(/&lt;(\/?text:(?:note-citation|note-body|note|p))&gt;/,'<\1>')
parablock=footnote(parablock)
- parray << %{<text:p text:style-name="P4">#{parablock}</text:p>} if parablock =~/\S+/
+ parray << %{<text:p text:style-name="P_group">#{parablock}</text:p>} if parablock =~/\S+/
end
dob.obj=parray.join \
- + %{<text:p text:style-name="P4">#{p_num}</text:p>} \
+ + %{<text:p text:style-name="P_group">#{p_num}</text:p>} \
+ '<text:p text:style-name="Standard"/>'
dob
end
@@ -443,10 +443,10 @@ module SiSU_ODF
parablock.gsub!(/^\s*$/,'<br />')
parablock.gsub!(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,
'<text:a xlink:type="simple" xlink:href="\1">\1</text:a>') #http ftp matches escaped, no decoration
- parray << %{<text:p text:style-name="P20">#{parablock}</text:p>} if parablock =~/\S+/
+ parray << %{<text:p text:style-name="P_code">#{parablock}</text:p>} if parablock =~/\S+/
end
dob.obj=parray.join \
- + %{<text:p text:style-name="P4">#{p_num}</text:p>} \
+ + %{<text:p text:style-name="P_group">#{p_num}</text:p>} \
+ '<text:p text:style-name="Standard"/>'
end
dob
@@ -570,17 +570,17 @@ module SiSU_ODF
dob.obj.gsub!(/&#169;/,'©') #too arbitrary
dob.obj.gsub!(/.+?<-#>/,'') # remove dummy headings (used by html) #check
dob.obj.gsub!(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,