dyndoc-ruby-core 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +7 -0
  2. data/dyndoc/.DS_Store +0 -0
  3. data/dyndoc/Dyn/.postload +1 -0
  4. data/dyndoc/Dyn/.preload +1 -0
  5. data/dyndoc/Dyn/After.dyn +3 -0
  6. data/dyndoc/Dyn/Base.dyn +18 -0
  7. data/dyndoc/Dyn/Minimum.dyn +20 -0
  8. data/dyndoc/Model/Html/DefaultPost_html.dyn +5 -0
  9. data/dyndoc/Model/Html/DefaultPre_html.dyn +15 -0
  10. data/dyndoc/Model/Odt/DefaultPost_content.xml +3 -0
  11. data/dyndoc/Model/Odt/DefaultPost_tmpl_content.xml +3 -0
  12. data/dyndoc/Model/Odt/DefaultPre_content.xml +8 -0
  13. data/dyndoc/Model/Odt/DefaultPre_tmpl_content.xml +8 -0
  14. data/dyndoc/Model/Tex/ContentPost_tmpl.tex +1 -0
  15. data/dyndoc/Model/Tex/ContentPre_tmpl.tex +6 -0
  16. data/dyndoc/Model/Tex/DefaultPost_tmpl.tex +73 -0
  17. data/dyndoc/Model/Tex/DefaultPre_tmpl.tex +16 -0
  18. data/dyndoc/Model/Ttm/DefaultPost_tmpl.ttm +3 -0
  19. data/dyndoc/Model/Ttm/DefaultPre_tmpl.ttm +16 -0
  20. data/dyndoc/Std/Array.dyn +96 -0
  21. data/dyndoc/Std/Composer.dyn +38 -0
  22. data/dyndoc/Std/DevTag.dyn +101 -0
  23. data/dyndoc/Std/DynVar.dyn +23 -0
  24. data/dyndoc/Std/File.dyn +55 -0
  25. data/dyndoc/Std/Git.dyn +34 -0
  26. data/dyndoc/Std/List.dyn +46 -0
  27. data/dyndoc/Std/OOP.dyn +32 -0
  28. data/dyndoc/Std/Signal.dyn +18 -0
  29. data/dyndoc/Std/String.dyn +22 -0
  30. data/dyndoc/Std/Styles.dyn +1 -0
  31. data/dyndoc/Std/Test.dyn +282 -0
  32. data/dyndoc/Std/Utils.dyn +42 -0
  33. data/dyndoc/Std/Verb.dyn +5 -0
  34. data/dyndoc/Style/Notation/Math.dyn +7 -0
  35. data/dyndoc/Style/Notation/Stat/Classic.dyn +8 -0
  36. data/dyndoc/Style/Notation/Stat/Cqls.dyn +44 -0
  37. data/dyndoc/Style/Text/Std.dyn +5 -0
  38. data/dyndoc/Style/Text/StdAlias.dyn +3 -0
  39. data/dyndoc/Style/Text/StdTex.dyn +17 -0
  40. data/dyndoc/Style/Text/Txt.dyn +1 -0
  41. data/dyndoc/Tex/.postload +1 -0
  42. data/dyndoc/Tex/.preload +1 -0
  43. data/dyndoc/Tex/10pt_tmpl.tex +1 -0
  44. data/dyndoc/Tex/11pt_tmpl.tex +1 -0
  45. data/dyndoc/Tex/12pt_tmpl.tex +1 -0
  46. data/dyndoc/Tex/Article_tmpl.tex +1 -0
  47. data/dyndoc/Tex/Beamer.dyn_tex +35 -0
  48. data/dyndoc/Tex/BeamerHandout_tmpl.tex +2 -0
  49. data/dyndoc/Tex/Book_tmpl.tex +1 -0
  50. data/dyndoc/Tex/DefaultFirst_tmpl.tex +1 -0
  51. data/dyndoc/Tex/DefaultLast_tmpl.tex +8 -0
  52. data/dyndoc/Tex/Default_tmpl.tex +9 -0
  53. data/dyndoc/Tex/First_tmpl.tex +8 -0
  54. data/dyndoc/Tex/Fr_tmpl.tex +17 -0
  55. data/dyndoc/Tex/Header_tmpl.tex +3 -0
  56. data/dyndoc/Tex/InclGraph_tmpl.tex +19 -0
  57. data/dyndoc/Tex/InclSpatProc_tmpl.tex +70 -0
  58. data/dyndoc/Tex/InclSumMI_tmpl.tex +4 -0
  59. data/dyndoc/Tex/LargeA4_tmpl.tex +5 -0
  60. data/dyndoc/Tex/Last_tmpl.tex +1 -0
  61. data/dyndoc/Tex/Option_tmpl.tex +8 -0
  62. data/dyndoc/Tex/Png_tmpl.tex +1 -0
  63. data/dyndoc/Tex/RefCite2_tmpl.tex +16 -0
  64. data/dyndoc/Tex/RefCite_tmpl.tex +16 -0
  65. data/dyndoc/Tex/Report_tmpl.tex +1 -0
  66. data/dyndoc/Tex/Theorem_tmpl.tex +14 -0
  67. data/dyndoc/Tools/.DS_Store +0 -0
  68. data/dyndoc/Tools/Atom.dyn/index.dyn +42 -0
  69. data/dyndoc/Tools/AtomDyndocker.dyn/index.dyn +43 -0
  70. data/dyndoc/Tools/R/Fig.dyn +144 -0
  71. data/dyndoc/Tools/R/Tools.dyn +344 -0
  72. data/dyndoc/Tools/Tex/Beamer.dyn +204 -0
  73. data/dyndoc/Tools/Tex/BeamerSlide.dyn_tex +199 -0
  74. data/dyndoc/Tools/Tex/Pgf.dyn +115 -0
  75. data/dyndoc/Tools/Tex/Table.dyn +278 -0
  76. data/dyndoc/Tools/Tex/Tools.dyn +37 -0
  77. data/dyndoc/Tools/Tex/Verb.dyn +77 -0
  78. data/dyndoc/Tools/Web/.DS_Store +0 -0
  79. data/dyndoc/Tools/Web/Ace.dyn +54 -0
  80. data/dyndoc/Tools/Web/Code.dyn +129 -0
  81. data/dyndoc/Tools/Web/DHtmlX.dyn +39 -0
  82. data/dyndoc/Tools/Web/DataTable.dyn_html +354 -0
  83. data/dyndoc/Tools/Web/Html.dyn +286 -0
  84. data/dyndoc/Tools/Web/Html/JQuery.dyn +123 -0
  85. data/dyndoc/Tools/Web/Html/Styles.dyn +4 -0
  86. data/dyndoc/Tools/Web/JQueryTools.dyn +87 -0
  87. data/dyndoc/Tools/Web/Layout.dyn +86 -0
  88. data/dyndoc/Tools/Web/Layout/CQLS.dyn +6 -0
  89. data/dyndoc/Tools/Web/Layout/LJK.dyn +41 -0
  90. data/dyndoc/Tools/Web/TabBar.dyn +37 -0
  91. data/dyndoc/Tools/Web/Ttm.dyn +20 -0
  92. data/dyndoc/Tools/Web/Txtl.dyn +14 -0
  93. data/lib/dyndoc-core.rb +59 -0
  94. data/lib/dyndoc/base/envir.rb +541 -0
  95. data/lib/dyndoc/base/filter/call.rb +127 -0
  96. data/lib/dyndoc/base/filter/filter_mngr.rb +637 -0
  97. data/lib/dyndoc/base/filter/server.rb +882 -0
  98. data/lib/dyndoc/base/filters.rb +3 -0
  99. data/lib/dyndoc/base/helpers.rb +9 -0
  100. data/lib/dyndoc/base/helpers/core.rb +32 -0
  101. data/lib/dyndoc/base/helpers/parser.rb +188 -0
  102. data/lib/dyndoc/base/scanner.rb +886 -0
  103. data/lib/dyndoc/base/tags.rb +4 -0
  104. data/lib/dyndoc/base/tags/keys_mngr.rb +401 -0
  105. data/lib/dyndoc/base/tags/part_tag.rb +194 -0
  106. data/lib/dyndoc/base/tags/tag_mngr.rb +125 -0
  107. data/lib/dyndoc/base/tags/user_tag.rb +216 -0
  108. data/lib/dyndoc/base/tmpl.rb +6 -0
  109. data/lib/dyndoc/base/tmpl/eval.rb +581 -0
  110. data/lib/dyndoc/base/tmpl/extension.rb +337 -0
  111. data/lib/dyndoc/base/tmpl/manager.rb +450 -0
  112. data/lib/dyndoc/base/tmpl/oop.rb +57 -0
  113. data/lib/dyndoc/base/tmpl/parse_do.rb +2446 -0
  114. data/lib/dyndoc/base/tmpl/rbenvir.rb +54 -0
  115. data/lib/dyndoc/base/utils.rb +367 -0
  116. data/lib/dyndoc/common/dynArray.rb +234 -0
  117. data/lib/dyndoc/common/file.rb +52 -0
  118. data/lib/dyndoc/common/init.rb +2 -0
  119. data/lib/dyndoc/common/tilt.rb +149 -0
  120. data/lib/dyndoc/common/utils.rb +61 -0
  121. data/lib/dyndoc/common/uv.rb +163 -0
  122. data/lib/dyndoc/init/config.rb +296 -0
  123. data/lib/dyndoc/init/home.rb +9 -0
  124. data/lib/dyndoc/plugins/tex.rb +4 -0
  125. data/lib/dyndoc/plugins/tex/beamer.rb +208 -0
  126. data/lib/dyndoc/plugins/tex/tex_eval.rb +69 -0
  127. data/lib/dyndoc/plugins/tex/tex_parse_do.rb +25 -0
  128. data/lib/dyndoc/plugins/tex/tex_user_tag.rb +32 -0
  129. data/share/R/dyndocMsys2.R +5 -0
  130. data/share/R/dyndocTools.R +9 -0
  131. data/share/R/test.R +14 -0
  132. data/share/R/tools/dynArray.R +34 -0
  133. data/share/R/tools/dynCapture.R +84 -0
  134. data/share/R/tools/dynMsys2.R +54 -0
  135. data/share/julia/dynArray.jl +93 -0
  136. data/share/julia/dyndoc.jl +110 -0
  137. data/share/julia/ruby.jl +37 -0
  138. metadata +202 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 3a0378d90d69707e2fc42064ba4e41e731b63290
4
+ data.tar.gz: 9a8803258b19d2c53ecd52acba5536ada9bb136f
5
+ SHA512:
6
+ metadata.gz: 92495dd0c762ca07b0410ef3cee6bc865c5d8a23f61b6d24c06181871ff315221f5deaeea430d33478b4be5e700f65c5f182130bbc1aab83d50f306ae322ff6a
7
+ data.tar.gz: 0e3e3cd623e7c45a8a9fd5aefe476da6f89183a9a0268937f54fb74672650d092f735e55a776de59dead29d212573d851bb8ed5c577740e9f2ded979329991fb
data/dyndoc/.DS_Store ADDED
Binary file
@@ -0,0 +1 @@
1
+ Dyn/After
@@ -0,0 +1 @@
1
+ 00Dyn/Base
@@ -0,0 +1,3 @@
1
+ {#require]
2
+ Std/Styles
3
+ [#}
@@ -0,0 +1,18 @@
1
+ {#require]
2
+ Std/Utils
3
+ Std/File
4
+ Std/OOP
5
+ Std/DynVar
6
+ Std/Array
7
+ Std/List
8
+ Std/String
9
+ Std/Verb
10
+ Std/Signal
11
+ Std/DevTag
12
+ Std/Composer
13
+ Tools/R/Fig
14
+ Tools/R/Tools
15
+ Tools/Tex/Table
16
+ Tools/Tex/Tools
17
+ Std/Styles
18
+ [#}
@@ -0,0 +1,20 @@
1
+ {#require]
2
+ Std/Utils
3
+ Std/File
4
+ Std/OOP
5
+ Std/DynVar
6
+ Std/Array
7
+ Std/List
8
+ Std/String
9
+ Std/Verb
10
+ Std/Signal
11
+ Std/DevTag
12
+ Std/Composer
13
+ Tools/R/Fig
14
+ Tools/R/Tools
15
+ Tools/Tex/Table
16
+ Tools/Tex/Tools
17
+ Tools/Web/Html
18
+ Tools/Web/Ttm
19
+ Tools/Web/Txtl
20
+ [#}
@@ -0,0 +1,5 @@
1
+ ##{_ENDDOC_}
2
+ </body>
3
+ ##{_FOOTER_}
4
+ ##{_POSTAMBLE_}
5
+ </html>
@@ -0,0 +1,15 @@
1
+ [#=]::_DOCUMENTCLASS_+[]
2
+ [#=]::_PREAMBLE_+[] [#=]::_POSTAMBLE_+[]
3
+ [#=]::_BEGINDOC_+[] [#=]::_ENDDOC_+[]
4
+ [#=]::_HEADER_+[] [#=]::_FOOTER_+[]
5
+ [#=]::_STYLEDOC_+[] [#=]::_JSDOC_+[]
6
+ [#>]##{_DOCUMENTCLASS_}
7
+ ##{_HEADER_}
8
+ <!-- Preamble -->
9
+ ##{_PREAMBLE_}
10
+ <!-- Styles -->
11
+ ##{_STYLEDOC_}
12
+ <!-- Javascript -->
13
+ ##{_JSDOC_}
14
+ <body>
15
+ ##{_BEGINDOC_}
@@ -0,0 +1,3 @@
1
+ </office:text>
2
+ </office:body>
3
+ </office:document-content>
@@ -0,0 +1,3 @@
1
+ </office:text>
2
+ </office:body>
3
+ </office:document-content>
@@ -0,0 +1,8 @@
1
+ {#var]::_STYLEDOC_[+] => [#}
2
+ <?xml version="1.0" encoding="UTF-8"?>
3
+ <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0" office:version="1.1">
4
+ <office:automatic-styles>##{_STYLEDOC_}</office:automatic-styles>
5
+ <office:body>
6
+ <office:text>
7
+ <text:sequence-decls><text:sequence-decl text:display-outline-level="0" text:name="Illustration"/><text:sequence-decl text:display-outline-level="0" text:name="Table"/><text:sequence-decl text:display-outline-level="0" text:name="Text"/><text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
8
+ </text:sequence-decls>
@@ -0,0 +1,8 @@
1
+ {#var]::_STYLEDOC_[+] => [#}
2
+ <?xml version="1.0" encoding="UTF-8"?>
3
+ <office:document-content xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:field="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:field:1.0" office:version="1.1">
4
+ <office:automatic-styles>##{_STYLEDOC_}</office:automatic-styles>
5
+ <office:body>
6
+ <office:text>
7
+ <text:sequence-decls><text:sequence-decl text:display-outline-level="0" text:name="Illustration"/><text:sequence-decl text:display-outline-level="0" text:name="Table"/><text:sequence-decl text:display-outline-level="0" text:name="Text"/><text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
8
+ </text:sequence-decls>
@@ -0,0 +1 @@
1
+ ##{_ENDDOC_}
@@ -0,0 +1,6 @@
1
+ {#var] [::_USEPACKAGE_[+],::_PREAMBLE_[+], ::_POSTAMBLE_[+],::_BEGINDOC_[+],::_ENDDOC_[+],::_TITLE_[+]]
2
+ [#,] [::_DOCUMENTCLASS_[+] => article]
3
+ [#,] [::_STYLEDOC_[+]=>]
4
+ [#,] [::_OPTCLASS_[+]=>]
5
+ [#}{#rb][_optclass_=[]][#}
6
+ ##{_BEGINDOC_}
@@ -0,0 +1,73 @@
1
+ ##{_ENDDOC_}
2
+ \end{document}
3
+ {#set]_OPTCLASS_![#>][[:{_optclass_.uniq.join(",")}]][#}
4
+ {#rb]#only for tex!!!
5
+ pkgs,pkg_opts,pkg_modifs={},{},{}
6
+ nb=-1
7
+ ##p #{=_USEPACKAGE_}
8
+ #{=_USEPACKAGE_}.split("\n").each {|pkg| #
9
+ if pkg =~ /([^\\]*)\|?\\usepackage(?:\[([^\{]*)\])?\{(.*)\}/
10
+ nb+=1
11
+ ##p [$1,$2,$3]
12
+ if pkgs.keys.include? $3
13
+ pkgs[$3] << nb #register same categorie!
14
+ else
15
+ pkgs[$3] = [nb] #create it if does not exist
16
+ end
17
+ pkg_opts[nb],pkg_modifs[nb]=$2,$1 #save options!
18
+ end
19
+ }
20
+ ##Dyndoc.warn :pkgs,pkgs
21
+ #selection between same package.
22
+ pkgs_to_keep=[nil]*(nb+=1)
23
+ #run over
24
+ pkgs.each{|key,inds| #
25
+ #p [key,inds]
26
+ if inds.length>1
27
+ ##p inds
28
+ modifs=inds.map{|i| pkg_modifs[i]}
29
+ ##Dyndoc.warn :modifs,modifs
30
+ i_sel=nil
31
+ modifs.each_with_index{|modif,i| #
32
+ case modif.strip
33
+ when /\d+/ # select the rank!
34
+ i_sel=modif.to_i
35
+ when "-" # remove it if it exists!
36
+ i_sel=nil
37
+ break
38
+ when "!" # this one and not the other
39
+ i_sel=i
40
+ break
41
+ when "?" # only if it does not exist!
42
+ i_sel=i unless i_sel
43
+ when "+" # append :opts
44
+ if i_sel
45
+ if pkg_opts[inds[i_sel]]
46
+ pkg_opts[inds[i_sel]]+=","+pkg_opts[inds[i]]
47
+ else
48
+ pkg_opts[inds[i_sel]]=pkg_opts[inds[i]]
49
+ end
50
+ else
51
+ i_sel=i
52
+ end
53
+ when "" # default is to select
54
+ i_sel=i if !i_sel or pkg_opts[inds[i_sel]]==pkg_opts[inds[i]]
55
+ end
56
+ }
57
+ #p i_sel
58
+ pkgs_to_keep[inds[i_sel]]=key if i_sel
59
+ else
60
+ pkgs_to_keep[inds[0]]=key
61
+ end
62
+ }
63
+
64
+ packages=[]
65
+ #p nb
66
+ (0...nb).each{|i| #
67
+ #Dyndoc.warn :opt,[i,pkg_opts[i],pkgs_to_keep[i]]
68
+ packages << "\\usepackage"+( pkg_opts[i] ? "["+pkg_opts[i]+"]" : "" )+"{"+pkgs_to_keep[i]+"}" if pkgs_to_keep[i]
69
+ }
70
+ packages=packages.join("\n")
71
+ #p packages
72
+ [#}
73
+ {#set]_USEPACKAGE_![#>][:{packages}<\n>][#}
@@ -0,0 +1,16 @@
1
+ {#var] [::_USEPACKAGE_[+],::_PREAMBLE_[+], ::_POSTAMBLE_[+],::_BEGINDOC_[+],::_ENDDOC_[+],::_TITLE_[+]]
2
+ [#,] [::_DOCUMENTCLASS_[+] => article]
3
+ [#,] [::_STYLEDOC_[+]=>]
4
+ [#,] [::_OPTCLASS_[+]=>]
5
+ [#}{#rb][_optclass_=[]][#}
6
+ \documentclass##{_OPTCLASS_}{##{_DOCUMENTCLASS_}}
7
+ %Packages
8
+ ##{_USEPACKAGE_}
9
+ %Preamble
10
+ ##{_PREAMBLE_}
11
+ %Styles
12
+ ##{_STYLEDOC_}
13
+ %Title
14
+ ##{_TITLE_}
15
+ \begin{document}
16
+ ##{_BEGINDOC_}
@@ -0,0 +1,3 @@
1
+ ##{_ENDDOC_}
2
+ \end{document}
3
+ {#set]_OPTCLASS_![#>][[:{_optclass_.uniq.join(",")}]][#}
@@ -0,0 +1,16 @@
1
+ {#var] [::_USEPACKAGE_[+],::_PREAMBLE_[+], ::_POSTAMBLE_[+],::_BEGINDOC_[+],::_ENDDOC_[+],::_TITLE_[+]]
2
+ [#,] [::_DOCUMENTCLASS_[+] => article]
3
+ [#,] [::_STYLEDOC_[+]=>]
4
+ [#,] [::_OPTCLASS_[+]=>]
5
+ [#}{#rb][_optclass_=[]][#}
6
+ \documentclass##{_OPTCLASS_}{##{_DOCUMENTCLASS_}}
7
+ %Packages
8
+ ##{_USEPACKAGE_}
9
+ %Preamble
10
+ ##{_PREAMBLE_}
11
+ %Styles
12
+ ##{_STYLEDOC_}
13
+ %Title
14
+ ##{_TITLE_}
15
+ \begin{document}
16
+ ##{_BEGINDOC_}
@@ -0,0 +1,96 @@
1
+ {#meth]each_with_index.Array[#,]fct[]
2
+ [#?]#{0?fct}[#rb>]
3
+ @vars.extract_raw(".content").each_with_index do |v,i| #
4
+ {#>][#=].index[:{i}][#=].value[:{v[:val]}][#yield]default[#>}
5
+ end
6
+ [#?]else[#rb>]
7
+ @vars.extract_raw(".content").each_with_index do |v,i| #
8
+ {#>][#=].index[:{i}][#=].value[:{v[:val]}][#>]{#call]#{fct}[#,]#{.index}[#,]#{.value}[#call}[#>}
9
+ end
10
+ [#meth}
11
+
12
+ {#meth]each.Array[#,]fct[]
13
+ [#?]#{0?fct}[#rb>]
14
+ @vars.extract_raw(".content").each do |v| #
15
+ {#>][#=].value[:{v[:val]}][#yield]default[#>}
16
+ end
17
+ [#?]else[#rb>]
18
+ @vars.extract_raw(".content").each do |v| #
19
+ {#>][#=].value[:{v[:val]}][#>]{#call]#{fct}[#,]#{.value}[#call}[#>}
20
+ end
21
+ [#meth}
22
+
23
+ {#meth]map.Array[#,]fct[]
24
+ [#?]#{0?fct}[#rb<]##Dyndoc.warn 'toto'
25
+ @vars.extract_raw(".content").map! do |v| #
26
+ res={#>][#=].value[:{v[:val]}][#yield]default[#>}
27
+ ##Dyndoc.warn :res,{val: [res]}
28
+ {val: [res]}
29
+ end
30
+ [#?]else[#rb<]##Dyndoc.warn 'toto2'
31
+ @vars.extract_raw(".content").map! do |v| #
32
+ res={#>][#=].value[:{v[:val]}][#>]{#call]#{fct}[#,]#{.value}[#call}[#>}
33
+ ##Dyndoc.warn :res,{val: [res]}
34
+ {val: [res]}
35
+ end
36
+ [#meth}
37
+
38
+ {#meth]join.Array[#,]sep[,]
39
+ [#rb>][@vars.extract("self.content").join(#{=sep})]
40
+ [#}
41
+
42
+ {#meth]add.Array[#,]elt[#,]pos[-1]
43
+ [#rb<]
44
+ @vars.extract_raw("self.content").insert(#{pos},@vars.extract_raw("elt"))
45
+ [#>][{#join]self[#}]
46
+ [#}
47
+
48
+ ## OLD STUFF to check!
49
+
50
+ {#def]Array[#,]ary[#,]parent
51
+ [#?]#{+?parent}[#rb<]@vars.extract_raw(#{=parent})[#{=ary}]=[]
52
+ [#?]else[#rb<]@vars.local[:prev][#{=ary}]=[]
53
+ [#}
54
+
55
+ {#def]length[#,]ary[#>]#{# #{ary}}[#}
56
+
57
+ {#meth]compact.Array[#rb<]
58
+ @vars.extract_raw("self.content").map!{|e| (e[:val][0].empty? ? nil : e )}.compact!
59
+ [#}
60
+
61
+ {#hide]OLD!!!{#meth]join.Array[#,]sep[]
62
+ [#rb>][#{=self.content}.join(#{=sep})]
63
+ [#}[#}
64
+
65
+ {#meth]apply.Array[#,]_elt_[elt]
66
+ [#rb>]_elt_[#{=_elt_}.strip]
67
+ [#rb<]
68
+ @nb={} unless @nb
69
+ @nb[#{=_elt_}]=#{#.content}
70
+ @ind={} unless @ind
71
+ @ind[#{=_elt_}]=-1
72
+ [#>]
73
+ [{#loop][#rb<][@ind[#{=_elt_}]+=1]
74
+ [#=]#{_elt_}[:self.content.:{@ind[#{=_elt_}]}]
75
+ [#=]ind_#{_elt_}[:{@ind[#{=_elt_}]}]
76
+ [#yield]default
77
+ [#break]:{@ind[#{=_elt_}]==@nb[#{=_elt_}]-1}
78
+ [#}]
79
+ [#rb<]@ind[#{=_elt_}]=-1
80
+ [#}
81
+
82
+ {#meth]mapOLD.Array[#,]_elt_[elt]
83
+ [#rb>]_elt_[#{=_elt_}.strip]
84
+ [#rb<]
85
+ @nb={} unless @nb
86
+ @nb[#{=_elt_}]=#{#.content}
87
+ @ind={} unless @ind
88
+ @ind[#{=_elt_}]=-1
89
+ [#>]
90
+ [{#loop][#rb<]@ind[#{=_elt_}]+=1
91
+ [#>]#{_elt_}[#{.content.:{@ind[#{=_elt_}]}}]
92
+ [#>] updated#{_elt_} [.content.:{@ind[#{=_elt_}]}]
93
+ [#>] #{updated#{_elt_}} [{#yield]default[#}]
94
+ [#break]:{@ind[#{=_elt_}]==@nb[#{=_elt_}]-1}
95
+ [#}]
96
+ [#}
@@ -0,0 +1,38 @@
1
+ example: argument of the #Compose function is of the form
2
+ list of lines containing "|"-separated list of elements of the form
3
+ <caseVar in tmplPartDoc> = < tmplPartDoc > : <comma separated list of part>
4
+ default value for is "docs"
5
+
6
+ {#hide]{#def]Compose[#,]list[]
7
+ [#rb<]docs=#{=list}.split("\n").map{|l| l.split("|")}.flatten.map{|e| e.strip}.flatten
8
+ #p [:docs,docs]
9
+ [#>]{#for]doc in docs
10
+ [#rb<]caseVar,partList=doc.split("=")
11
+ partList,caseVar=caseVar,"docs" unless partList
12
+ caseVar.strip!
13
+ partList.strip!
14
+ #split on the first ":"
15
+ docTmpl,*partList=partList.split(":").map{|e| e.strip}
16
+ partList=partList.join(":").strip
17
+ #puts caseVar;puts docTmpl;puts partList
18
+ [#>]:{caseVar}[:{partList}][#<<]:{docTmpl}
19
+ [#for}
20
+ [#def}[#hide}
21
+
22
+ Version without #for but directly with ruby for and block code!
23
+ {#def]Compose[#,]list[]
24
+ [#rb<]docs=#{=list}.split("\n").map{|l| l.split("|")}.flatten.map{|e| e.strip}.flatten
25
+ #Dyndoc.warn [:docs_in_compose,docs]
26
+ [#rb>]
27
+ for doc in docs do
28
+ caseVar,partList=doc.split("=")
29
+ partList,caseVar=caseVar,"docs" unless partList
30
+ caseVar.strip!
31
+ partList.strip!
32
+ #split on the first ":"
33
+ docTmpl,*partList=partList.split(":").map{|e| e.strip}
34
+ partList=partList.join(":").strip
35
+ #Dyndoc.warn "caseVar",[caseVar,docTmpl,partList]
36
+ {#>][#>]:{caseVar}[:{partList}][#<<]:{docTmpl}[#>}
37
+ end
38
+ [#def}
@@ -0,0 +1,101 @@
1
+ =================================
2
+ | devtag items-like declaration |
3
+ =================================
4
+
5
+ {#def]dtagNew[#,]dtag![][#,]items![]
6
+ [#=]do_items[]
7
+ [#rb<]p @vars.local["items"].keys
8
+ items=@vars.local["items"].keys-["_order_"]
9
+ items -= (var_items=items.select{|it| it=~/^var\_/})
10
+ items -= (pre_items=items.select{|it| it=~/^pre\_/})
11
+ items -= (post_items=items.select{|it| it=~/^post\_/})
12
+ [#>]items4rb[:{items.map{|it| ":"+it}.join(",")}]
13
+ [#>]do_items+[
14
+ items=[#{items4rb}]
15
+ blckMngr.next_child_until!(items)
16
+ ]
17
+ [#rb<]
18
+ for item in pre_items.sort do
19
+ {#>]do_items+[
20
+ #{items.:{item}}
21
+ ]
22
+ [#>}
23
+ end
24
+ [#>]do_items+[begin
25
+ case blckMngr.next_tag!]
26
+ [#rb<]
27
+ for item in items do
28
+ {#>]do_items+[
29
+ when ::{item}
30
+ blckMngr.next_child!
31
+ #{items.:{item}}
32
+ ]
33
+ [#>}
34
+ end
35
+ [#>]do_items+[
36
+ else #just in the case where other tags are added but normally this does not make sense!
37
+ blckMngr.next_child!
38
+ end
39
+ end until blckMngr.at_end?
40
+ ]
41
+ [#rb<]
42
+ for item in post_items.sort do
43
+ {#>]do_items+[
44
+ #{items.:{item}}
45
+ ]
46
+ [#>}
47
+ end
48
+ [#rb<]#puts #{=do_items}
49
+ [#rb<]<CqlsDoc>#CqlsDoc envir!
50
+ DYN[:V3].tmpl.add_dtag({
51
+ :instr=>[#{=dtag}],
52
+ :keyword_reg=>{
53
+ :#{dtag}=> '[%.\w,><?=+:-]+'
54
+ },
55
+ :blck=>{
56
+ :instr=>[:#{dtag}],
57
+ :keyword=>{:#{dtag}=>[#{items4rb}]}
58
+ }
59
+ })
60
+
61
+ module V3
62
+ class TemplateManager
63
+ def do_#{dtag}(tex,blck,filter)
64
+ ##p blck
65
+ blckMngr=BlckMngr.new(self,blck,tex,filter)
66
+ ## the next code is automatically generated!
67
+ #{do_items}
68
+ end
69
+ end
70
+ end
71
+ [#}
72
+
73
+
74
+ ===================================
75
+ | More general devtag declaration |
76
+ ===================================
77
+
78
+ {#def]dtag[#,]dtag![][#,]items![][#,]do_items![]
79
+ [#?]#{+?items}[#rb>]items[#{=items}.split(",").map{|e| ":"+e.strip}.join(",")][#?]end
80
+ [#rb<]<CqlsDoc>#CqlsDoc envir!
81
+ DYN[:V3].tmpl.add_dtag({
82
+ :instr=>[#{=dtag}],
83
+ :keyword_reg=>{
84
+ :#{dtag}=> '[%.\w,><?=+:-]+'
85
+ },
86
+ :blck=>{
87
+ :instr=>[:#{dtag}],
88
+ :keyword=>{:#{dtag}=>[#{items}]}
89
+ }
90
+ })
91
+
92
+ module V3
93
+ class TemplateManager
94
+ def do_#{dtag}(tex,blck,filter)
95
+ blckMngr=BlckMngr.new(self,blck,tex,filter)
96
+ items=[#{items}]
97
+ #{do_items}
98
+ end
99
+ end
100
+ end
101
+ [#}