aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2012-04-15 00:37:41 -0400
committerRalph Amissah <ralph@amissah.com>2012-04-15 00:37:41 -0400
commit3eefac61617889e29cc8c48181692f668558aa28 (patch)
treec40949540c8ba89deb06d35bd2cea2a659cfdf5d
parentdebian/changelog (3.2.2-1) (diff)
parentv3: vim syntax highlighting, document header added (@make:) :substitute: (diff)
Merge tag 'sisu_3.2.3' into debian/sid
-rw-r--r--data/doc/sisu/CHANGELOG_v328
-rw-r--r--data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim6
-rw-r--r--data/sisu/v3/v/version.yml6
-rw-r--r--lib/sisu/v3/dal_syntax.rb65
-rw-r--r--lib/sisu/v3/hub.rb2
-rw-r--r--lib/sisu/v3/param.rb20
6 files changed, 107 insertions, 20 deletions
diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3
index 1509ec43..dc52f514 100644
--- a/data/doc/sisu/CHANGELOG_v3
+++ b/data/doc/sisu/CHANGELOG_v3
@@ -13,13 +13,35 @@ Reverse Chronological:
%% Development branch UNSTABLE
v3 branch once stable will supersede & replace current stable v2 branch
+%% 3.2.3.orig.tar.xz (2012-04-15:15/7)
+http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/sisu_3.2.3
+http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_3.2.3-1
+http://www.jus.uio.no/sisu/pkg/src/sisu_3.2.3.orig.tar.xz
+ sisu_3.2.3.orig.tar.xz
+ sisu_3.2.3-1.dsc
+ sisu_3.2.3-1.debian.tar.gz
+
+* v3: param, dal_syntax, document header (simple regex) substitution list
+ added, note $ and curly braces are escaped to allow the following:
+ @make:\n :substitute: /${linux-distro}/,'Debian' /${stable}/,'Squeeze' \
+ /${testing}/,'Wheezy'
+ changes are not made within text object types: code-blocks, tables or
+ metadata (document headers). Marked up document remains self-referential.
+ Note: the substitution list must be written on a single line, without
+ line-breaks.
+ [Substitutions possibility requested by Debian-live, live-manual (Ben
+ Armstrong & Daniel Baumann)]
+
+* v3: vim syntax highlighting, document header added :substitute: (under
+ @make:)
+
%% 3.2.2.orig.tar.xz (2012-04-05:14/4)
http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/sisu_3.2.2
http://git.sisudoc.org/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_3.2.2-1
http://www.jus.uio.no/sisu/pkg/src/sisu_3.2.2.orig.tar.xz
- sisu_3.2.2.orig.tar.xz
- sisu_3.2.2-1.dsc
- sisu_3.2.2-1.debian.tar.gz
+ 29b758af4880df9a2b3cd158400a75bcf9fbd6f5c73fd9841cfbdf39b38289c0 1681412 sisu_3.2.2.orig.tar.xz
+ 31fd5742603e111f7bd6258dbda3866d0aa154424cdb8e0753487aae1e2c96c5 1382 sisu_3.2.2-1.dsc
+ fcaa11575e82983ca3cc9b72c4affa7cc2086556cb3ea3e7a9df81f69f754ca3 294818 sisu_3.2.2-1.debian.tar.gz
* v3: reporting
* urls
diff --git a/data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim b/data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim
index 71d72d3a..5176d79d 100644
--- a/data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim
+++ b/data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim
@@ -1,7 +1,7 @@
" SiSU Vim syntax file
" SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
-" SiSU Markup: SiSU (sisu-3.2.0)
-" Last Change: 2012-03-06
+" SiSU Markup: SiSU (sisu-3.2.3)
+" Last Change: 2012-04-15
" URL: <http://git.sisudoc.org/?p=code/sisu.git;a=blob;f=data/sisu/v3/conf/editor-syntax-etc/vim/syntax/sisu.vim;hb=HEAD>
"(originally looked at Ruby Vim by Mirko Nasato)
@@ -46,7 +46,7 @@ if !exists("sisu_no_identifiers")
syn match sisu_sub_header_classify "^\s\+:\(topic_register\|coverage\|format\|identifier\|keywords\|relation\|subject\|type\|dewey\|loc\|oclc\|pg\|isbn\):\s"
syn match sisu_sub_header_date "^\s\+:\(added_to_site\|available\|created\|issued\|modified\|published\|valid\|translated\|original_publication\):\s"
syn match sisu_sub_header_original "^\s\+:\(publisher\|date\|language\|lang_char\|institution\|nationality\|source\):\s"
- syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|omit\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|skin\|stamp\|promo\|ad\|manpage\):\s"
+ syn match sisu_sub_header_make "^\s\+:\(headings\|num_top\|breaks\|language\|italics\|bold\|emphasis\|substitute\|omit\|plaintext_wrap\|texpdf_font_mono\|texpdf_font\|skin\|stamp\|promo\|ad\|manpage\):\s"
syn match sisu_sub_header_notes "^\s\+:\(abstract\|comment\|description\|history\|prefix\|prefix_[ab]\|suffix\):\s"
"% "semantic markers: (ignore)
diff --git a/data/sisu/v3/v/version.yml b/data/sisu/v3/v/version.yml
index 0b0e9d69..95f7aaf1 100644
--- a/data/sisu/v3/v/version.yml
+++ b/data/sisu/v3/v/version.yml
@@ -1,5 +1,5 @@
---
-:version: 3.2.2
-:date_stamp: 2012w14/4
-:date: "2012-04-05"
+:version: 3.2.3
+:date_stamp: 2012w15/7
+:date: "2012-04-15"
:project: SiSU
diff --git a/lib/sisu/v3/dal_syntax.rb b/lib/sisu/v3/dal_syntax.rb
index 73bb6a64..102e44cd 100644
--- a/lib/sisu/v3/dal_syntax.rb
+++ b/lib/sisu/v3/dal_syntax.rb
@@ -124,6 +124,9 @@ module SiSU_DAL_Syntax
@data.each do |dob|
dob=breaks(dob)
dob=if @md.sem_tag then sem(dob) else dob end #revisit
+ dob=line_actions(dob)
+ dob=paragraph_set(dob)
+ dob=substitutions(dob)
dob=wordlist_italics(dob)
dob=wordlist_bold(dob)
dob=bodymarkup(dob)
@@ -203,6 +206,57 @@ module SiSU_DAL_Syntax
gsub(/^\/_\s+(.*)?\s*$/,
"#{Mx[:fa_italics_o]}\\1#{Mx[:fa_italics_c]}")
end
+ def line_actions(dob)
+ dob.obj=if (dob.is !=:heading \
+ && dob.is !=:heading_insert \
+ && dob.is !=:comment \
+ && dob.is !=:meta) \
+ and dob.obj =~ /^!_\s+/
+ embolden(dob.obj)
+ elsif dob.obj =~ /^\/_\s+/
+ italicise(dob.obj)
+ else dob.obj
+ end
+ dob
+ end
+ def paragraph_set(dob)
+ dob.obj=if dob.is !=:meta \
+ && dob.is !=:heading \
+ && dob.is !=:heading_insert \
+ && dob.is !=:code \
+ && dob.is !=:comment \
+ && dob.is !=:table
+ dob.obj.gsub(/\n/m,' ').
+ gsub(/ \s+/m,' ')
+ else dob.obj
+ end
+ dob
+ end
+ def substitutions(dob)
+ dob=dob.dup
+ dob=if defined? @md.make.substitute[:match_and_replace] \
+ and @md.make.substitute[:match_and_replace].class == Array
+ dob=if dob.is !=:meta \
+ && dob.is !=:heading_insert \
+ && dob.is !=:code \
+ && dob.is !=:comment \
+ && dob.is !=:table
+ if dob.obj =~/#{@md.make.substitute[:matches]}/
+ @md.make.substitute[:match_and_replace].each do |x|
+ dob.obj=if x[:case_s]==:i
+ dob.obj.gsub(/#{x[:match]}/mi,x[:replace])
+ else
+ dob.obj.gsub(/#{x[:match]}/m,x[:replace])
+ end
+ end
+ end
+ dob
+ else dob
+ end
+ dob
+ else dob
+ end
+ end
def wordlist_bold(dob)
dob=dob.dup
if (defined? @md.make.bold[:str] \
@@ -239,20 +293,11 @@ module SiSU_DAL_Syntax
else dob.obj
end
else
- dob.obj=if (dob.is !=:heading \
- && dob.is !=:heading_insert \
- && dob.is !=:comment \
- && dob.is !=:meta) \
- and dob.obj =~ /^!_\s+/
- embolden(dob.obj)
- elsif dob.is==:heading \
+ dob.obj=if dob.is==:heading \
and dob.ln.to_s =~/[7-9]/
embolden(dob.obj)
else dob.obj
end
- if dob.obj =~ /\/_\s+/
- dob.obj=italicise(dob.obj)
- end
end
dob
end
diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb
index 5f256314..7466efde 100644
--- a/lib/sisu/v3/hub.rb
+++ b/lib/sisu/v3/hub.rb
@@ -173,7 +173,7 @@ module SiSU
Dir.chdir(@opt.pth) #watch
env=SiSU_Env::InfoEnv.new(fns)
if @req !~/(?:urls|remote)$/
- if @opt.cmd.inspect =~/-P/\
+ if @opt.cmd.inspect =~/-P/ \
and @req =~ /^po4a$/
require_relative 'composite' # composite.rb #pre-processing
SiSU_Po4a::Source.new(@opt).read # -P po4a.rb
diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v3/param.rb
index 5563f780..60f5345b 100644
--- a/lib/sisu/v3/param.rb
+++ b/lib/sisu/v3/param.rb
@@ -803,6 +803,26 @@ module SiSU_Param
else nil
end
end
+ def substitute
+ m=@h['substitute']
+ z=if m
+ w=m.scan(/\/(.+?)\/(i?,)\s*'(.+?)'(?:\s+|\s*;\s*|$)/)
+ arr_hash=[]
+ matches=''
+ w.each do |x|
+ c=(x[1] =~/[i],/) ? :i : :s
+ matches=matches + x[0].gsub(/([${}])/,'\\\\\1') + '|'
+ arr_hash << {
+ match: x[0].gsub(/([${}])/,'\\\\\1'),
+ replace: x[2],
+ case_s: c
+ }
+ end
+ matches.chop!
+ { match_and_replace: arr_hash, matches: matches }
+ else nil
+ end
+ end
def plaintext_wrap
if @h['plaintext_wrap'].to_s =~/\d\d+/ \
and @h['plaintext_wrap'].to_i > 19 \