61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
 | 
						|
 | 
						|
gendefault
 | 
						|
 | 
						|
etitle "Documentation de ulib"
 | 
						|
array_from_lines ulibnames "$(list_files lib/ulib)"
 | 
						|
# faire les pages
 | 
						|
for ulibname in "${ulibnames[@]}"; do
 | 
						|
    awkrun <"lib/ulib/$ulibname" 'BEGIN {
 | 
						|
  in_func = 0
 | 
						|
  dump_doc = 0
 | 
						|
  dumped_doc = 0
 | 
						|
  print
 | 
						|
}
 | 
						|
!in_func && $0 ~ /^function / {
 | 
						|
  if (match($0, /function +([^ ]+)\(\)/, vs)) {
 | 
						|
    funcname = vs[1]
 | 
						|
    if (funcname !~ /^_/) {
 | 
						|
      in_func = 1
 | 
						|
      dump_doc = 1
 | 
						|
      dumped_doc = 0
 | 
						|
      print "==== " funcname " ===="
 | 
						|
      if ($0 ~ /}$/) {
 | 
						|
        in_func = 0
 | 
						|
        dump_doc = 0
 | 
						|
        dumped_doc = 0
 | 
						|
      }
 | 
						|
      next
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
in_func && dump_doc && $0 !~ /^ *#/ {
 | 
						|
  dump_doc = 0
 | 
						|
}
 | 
						|
in_func && dump_doc && $0 ~ /^ *#/ {
 | 
						|
  if (!dumped_doc) print "<code>"
 | 
						|
  gsub(/^ *#+/, "")
 | 
						|
  print
 | 
						|
  dumped_doc = 1
 | 
						|
}
 | 
						|
in_func && $0 ~ /}$/ {
 | 
						|
  if (dumped_doc) print "</code>"
 | 
						|
  in_func = 0
 | 
						|
  dump_doc = 0
 | 
						|
  dumped_doc = 0
 | 
						|
}
 | 
						|
END { if (in_func) print "</code>" }
 | 
						|
' | setpage "$ulibname" ulib
 | 
						|
done
 | 
						|
eend
 | 
						|
 | 
						|
# faire l'entête
 | 
						|
addpage start <<EOF
 | 
						|
==== Librairies ulib ====
 | 
						|
EOF
 | 
						|
for ulibname in "${ulibnames[@]}"; do
 | 
						|
    addpage start <<EOF
 | 
						|
  * [[${ns}ulib:$ulibname]]
 | 
						|
EOF
 | 
						|
done
 |