dyndoc-ruby-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ [#}