metanorma-taste 0.1.3 → 0.1.4

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.adoc +106 -46
  3. data/data/csa/config.yaml +25 -23
  4. data/data/csa/csa.standard.xsl +58 -76
  5. data/data/elf/config.yaml +10 -8
  6. data/data/enosema/config.yaml +10 -8
  7. data/data/icc/config.yaml +14 -12
  8. data/data/mbxif/config.yaml +26 -0
  9. data/data/mbxif/copyright.adoc +36 -0
  10. data/data/mbxif/i18n.yaml +4 -0
  11. data/data/mbxif/mbxif-back-cover.pdf +3504 -7
  12. data/data/mbxif/mbxif-front-cover.pdf +54968 -16
  13. data/data/mbxif/mbxif-logos.pdf +11330 -46
  14. data/data/mbxif/mbxif-logos_caeif.svg +1 -0
  15. data/data/mbxif/mbxif-logos_caxif.svg +1 -0
  16. data/data/mbxif/mbxif-logos_ewisif.svg +1 -0
  17. data/data/mbxif/mbxif-logos_jtif.svg +1 -0
  18. data/data/mbxif/mbxif-logos_lotar.svg +1 -0
  19. data/data/mbxif/mbxif-logos_mbxif.svg +1 -0
  20. data/data/mbxif/mbxif-logos_pdmif.svg +1 -0
  21. data/data/mbxif/mbxif.xsl +361 -0
  22. data/data/pdfa/config.yaml +16 -14
  23. data/data/pdfa/i18n.yaml +2 -4
  24. data/data/pdfa/pdfa-logo.emf +0 -0
  25. data/data/pdfa/pdfa-logo.svg +1 -1
  26. data/data/pdfa/pdfa.xsl +47 -10
  27. data/data/swf/config.yaml +14 -8
  28. data/data/swf/copyright.adoc +3 -4
  29. data/data/swf/swf-back-cover.pdf +3504 -7
  30. data/data/swf/swf-front-cover.pdf +3472 -3
  31. data/data/swf/swf-logo-with-graphic.svg +1 -0
  32. data/data/swf/swf-logo.svg +1 -0
  33. data/data/swf/swf.xsl +361 -0
  34. data/lib/metanorma/taste/base.rb +23 -19
  35. data/lib/metanorma/taste/base_override.rb +7 -47
  36. data/lib/metanorma/taste/filename_attributes.rb +53 -0
  37. data/lib/metanorma/taste/taste_config.rb +0 -34
  38. data/lib/metanorma/taste/value_attributes.rb +59 -0
  39. data/lib/metanorma/taste/version.rb +1 -1
  40. data/lib/metanorma/taste_register.rb +6 -6
  41. metadata +23 -2
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="660mm" height="160mm" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1870.87 453.54"><defs><radialGradient id="uuid-dae556c8-0d79-4092-996d-0a82866ffca0" cx="270.53" cy="282.23" fx="270.53" fy="282.23" r="342.21" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#fff"/><stop offset=".2" stop-color="#b7e5e5"/><stop offset=".39" stop-color="#75cecd"/><stop offset=".49" stop-color="#5cc5c4"/></radialGradient></defs><g id="uuid-db6ed1e1-103f-452f-b16d-9ffea9fa6adb"><path d="M547.7,70.52l-3.55,34.76c-9.04-5.02-26.7-10.36-44.79-10.36-11.31,0-20.67,1.74-20.67,10.05,0,5.74,6.78,7.08,14.1,9.13l23.26,6.46c25.3,6.97,40.27,18.35,40.27,40.09,0,26.25-23.58,44.19-61.37,44.19-27.78,0-49.42-6.87-59.65-11.59l4.31-34.86c8.51,4.41,28.85,12.1,52.22,12.1,10.77,0,18.95-2.36,18.95-9.02,0-4.2-3.23-7.08-12.06-9.33l-22.5-5.74c-19.49-4.92-41.34-15.18-41.34-41.94s25.09-43.27,62.34-43.27c21.96,0,38.87,4.1,50.5,9.33Z" style="fill:#231f20;"/><path d="M612.03,165.17v37.43h-42.96V63.35h73.97c36.5,0,56.96,22.05,56.96,50.14s-20.46,51.68-56.96,51.68h-31.01ZM612.03,97.08v34.45h23.69c12.6,0,20.67-5.95,20.67-17.23,0-11.89-7.64-17.23-20.67-17.23h-23.69Z" style="fill:#231f20;"/><path d="M789.8,179.32h-52.97l-9.37,23.28h-45.87l56.2-139.25h51.25l56.09,139.25h-45.87l-9.47-23.28ZM746.63,148.45h33.48l-16.69-46.55-16.8,46.55Z" style="fill:#231f20;"/><path d="M862.1,96.77h-41.67v-33.43h127.37v33.43h-42.74v105.82h-42.96v-105.82Z" style="fill:#231f20;"/><path d="M1000.2,202.59h-42.96V63.35h42.96v139.25Z" style="fill:#231f20;"/><path d="M1117.5,179.32h-52.97l-9.37,23.28h-45.87l56.2-139.25h51.25l56.09,139.25h-45.87l-9.47-23.28ZM1074.33,148.45h33.48l-16.69-46.55-16.8,46.55Z" style="fill:#231f20;"/><path d="M1294.48,202.59h-113.16V63.35h42.96v106.64h70.2v32.61Z" style="fill:#231f20;"/><path d="M1341.47,63.35h42.31l24.55,95.26,29.72-93.31h32.3l29.72,93.31,24.66-95.26h42.21l-38.76,139.25h-50.28l-23.69-66.96-23.58,66.96h-50.39l-38.76-139.25Z" style="fill:#231f20;"/><path d="M1690.5,202.59h-114.02V63.35h113.48v32.81h-70.52v19.58h63.42v32.61h-63.42v21.64h71.06v32.61Z" style="fill:#231f20;"/><path d="M1703.83,202.59V63.35h77.73c23.58,0,44.25,13.23,44.25,36.3,0,13.95-5.71,24.4-18.73,31.48,17.98,5.74,26.06,18.56,26.06,33.43,0,23.89-19.81,38.04-44.57,38.04h-84.73ZM1745.28,94.11v23.69h27.35c7.11,0,11.31-5.02,11.31-12.2,0-6.67-4.52-11.48-12.17-11.48h-26.49ZM1745.28,147.12v26.15h30.04c8.18,0,13.35-5.64,13.35-12.82,0-7.69-5.06-13.33-13.35-13.33h-30.04Z" style="fill:#231f20;"/><path d="M446.03,320.29v67.9h-9.48v-139.91h94.48v8.35h-85v55.33h69.13v8.35h-69.13Z" style="fill:#231f20;"/><path d="M621.45,246.22c43.17,0,73.77,29.88,73.77,72.02s-30.6,72.02-73.77,72.02-73.77-29.88-73.77-72.02,30.6-72.02,73.77-72.02ZM621.45,381.9c37.6,0,64.29-27.1,64.29-63.67s-26.99-63.67-64.29-63.67-64.29,26.48-64.29,63.67,26.68,63.67,64.29,63.67Z" style="fill:#231f20;"/><path d="M731.07,248.28h9.48v89.32c0,26.79,19.78,44.1,51,44.1s50.79-17.31,50.79-44.1v-89.32h9.48v89.32c0,31.84-23.28,52.65-60.27,52.65s-60.48-20.81-60.48-52.65v-89.32Z" style="fill:#231f20;"/><path d="M1025.27,388.19h-10.71l-106.74-126.93v126.93h-9.48v-139.91h10.92l106.53,126.83v-126.72h9.48v139.81Z" style="fill:#231f20;"/><path d="M1128.05,248.28c47.8,0,71.71,29.05,71.71,70.06,0,43.58-24.11,69.85-72.12,69.85h-54.6v-139.91h55.02ZM1082.51,256.62v123.22h46.57c38.22,0,61.2-21.74,61.2-61.51s-22.98-61.71-61.2-61.71h-46.57Z" style="fill:#231f20;"/><path d="M1344.45,388.19h-9.48l-15.35-35.65h-82.32l-15.35,35.65h-9.89l60.27-139.91h12.36l59.76,139.91ZM1240.91,344.2h75.11l-37.5-86.96-37.6,86.96Z" style="fill:#231f20;"/><path d="M1395.36,256.62v131.57h-9.48v-131.57h-49.66v-8.35h108.69v8.35h-49.56Z" style="fill:#231f20;"/><path d="M1474.31,248.28h9.48v139.91h-9.48v-139.91Z" style="fill:#231f20;"/><path d="M1595.54,246.22c43.17,0,73.77,29.88,73.77,72.02s-30.6,72.02-73.77,72.02-73.77-29.88-73.77-72.02,30.6-72.02,73.77-72.02ZM1595.54,381.9c37.6,0,64.29-27.1,64.29-63.67s-26.99-63.67-64.29-63.67-64.29,26.48-64.29,63.67,26.68,63.67,64.29,63.67Z" style="fill:#231f20;"/><path d="M1833.86,388.19h-10.71l-106.74-126.93v126.93h-9.48v-139.91h10.92l106.53,126.83v-126.72h9.48v139.81Z" style="fill:#231f20;"/><rect x="434.87" y="224.67" width="1398.09" height="2.27" style="fill:#231f20;"/></g><g id="uuid-2ab11994-b891-4da7-87a1-3e4c5865356a"><path d="M396.47,292.16c-11.42,4.43-27.8,5.09-36.55,5.09-6.3,0-12.85-.33-17.54-.9-17.02-2.5-35.84-6.37-51.64-10.63-3.12-.88-6.08-1.76-8.8-2.61l-.63-.19-.07-.66c-.14-1.4-.68-2.74-1.56-3.89l-.45-.58.41-.6c.05-.07.27-.37.27-.37,4.8-6.42,10.75-15.98,16.32-26.19,8.18-15.48,14.61-32.34,17.71-40.97,4.25-13.25,7.67-27.14,9.05-34.42.66-4.25,1.06-8.45,1.27-13.22l.03-.64.59-.25c2.46-1.03,4.09-3.43,4.16-6.13v-.43s.33-.29.33-.29c7.09-6.35,13.55-13.45,18.7-20.54,5.2-7.67,11.04-18.31,10.03-32.61-1.02-11.83-6.2-19.52-10.2-23.79,8.14,15.01,6.77,28.75,5.67,34.37v.08c-4.01,14.49-14.49,26.78-18.86,31.43-2.39,2.24-4.7,4.34-6.87,6.23l-.64.56-.66-.55c-.42-.34-.88-.63-1.37-.85l-.6-.28v-.66c.22-7.95-.64-27.56-3.62-39-4.4-15.92-8.51-23.81-11.93-29.41-10.69-16.56-22.01-24.52-29.59-29.07-12.88-7.85-25.48-10.26-35.78-11.46,15.31,3.34,23.23,8,30.23,12.12.73.43,1.45.85,2.17,1.27,16.35,9.52,25.85,23.5,30.07,31,6.02,11.35,10.21,26.42,11.7,36.34,1.28,8.63,1.39,16.4,1.48,23.25.02,1.35.04,2.64.06,3.88.01.48.01.97.01,1.45v.57l-.49.29c-2.07,1.25-3.3,3.45-3.3,5.89,0,1.05.23,2.07.68,3.01l.36.75-.66.5c-4.69,3.49-8.97,6.35-13.1,9.12-2.33,1.55-4.73,3.16-7.16,4.85-20.65,13.07-42.37,24.67-56.99,32.12-23.58,11.33-39.55,16.89-51.22,20.95-1.23.43-2.41.83-3.53,1.23-1.91.73-3.94,1.48-6.57,2.42l-.76.28-.43-.68c-1.62-2.56-4.32-4.1-7.22-4.1-1.7,0-3.35.52-4.76,1.52l-.57.4-.58-.38c-4.29-2.88-7.87-5.58-12.82-9.34l-.65-.49c-13.81-10.65-23.43-20.38-29.05-26.67-12.69-13.92-16.89-26.52-19.15-33.29l-.06-.19-.03-.08c-3.88-15.95-2.03-27.64-.29-35.06,3.98-15.41,11.92-26.79,16.32-32.26,8.92-9.76,19.96-18.62,31.92-25.6,20.33-11.67,38.32-17.3,45.09-19.17,20.3-5.98,35.21-6.62,40.68-6.62.4,0,.79,0,1.18.01-2.61-.14-5.24-.21-7.86-.21-21.79,0-38.82,4.86-49.71,8.52-25.8,9.02-41.64,21.17-49.22,26.99-11.97,9.84-18.2,17.04-26.33,26.87-8.85,11.05-15.98,21.81-21.18,31.96-6.08,11.84-8.86,20.17-11.6,30.55-2.53,9.58-3.8,19.19-4.24,32.14-.65,13.28,1.03,25.32,2.02,32.51l.09.6c.02.14.04.31.06.51,0,0,.04.24.03.24.11,1.06.22,2.59.15,3.24-.85-.9-1.64-2.07-2-2.63h-.02c-.05-.09-.1-.18-.15-.27-.01-.02-.02-.04-.02-.04-5.95-11.11-8.44-28.43-8.66-37.46-.14-11.77.21-20.19,2.46-30.98,2.17-10.4,6.84-23.29,9.45-29.12,5.13-11.66,12.59-23.65,18.48-31.95-3.82,4.89-7.64,10.68-12.34,18.16-7.13,11.6-13.09,27.04-15.84,37.21-2.81,10.41-4.17,19.85-4.39,30.58-.09,10.95.75,19.86,2.56,27.24,3.01,13.27,9.14,23.01,12.08,27.69l.26.41.02.05c.1.2.19.38.28.6l.28.6-.44.49c-.63.71-1.15,1.61-1.49,2.59l-.33.95-.95-.33c-.71-.25-1.42-.51-2.16-.77-.56-.2-1.12-.4-1.7-.61-14.45-5.24-21.2-17.55-24.4-25.63.41,3.35,1.39,7.26,3.75,11.69,5.78,10.31,12.59,14.23,19.03,16.92,2.07.75,3.97,1.37,5.78,1.89l.58.16.13.59c.68,3.16,2.93,5.38,5.48,5.4h.71s.24.68.24.68l.13.39c3.92,11.7,10.06,26.13,13.84,33.76,4.39,8.84,12.4,21.6,18.4,30.33,5.44,7.9,14.02,18.15,26.22,31.3,7.8,7.97,13.65,12.91,20.56,18.3l1.61,1.25-1.97.52c-7.13,1.87-13.8,2.71-21.63,2.71-1.4,0-2.86-.03-4.4-.09-21.79-1.6-37.27-9.98-45.84-15.72,6.11,5.85,14.74,11.01,24.72,14.68,8.46,2.9,17.42,4.37,26.63,4.37,6.23,0,11.34-.7,14.52-1.27,2.96-.55,6.03-1.21,9.12-1.97l.41-.1.36.23c.46.28,1,.43,1.55.43.25,0,.49-.03.72-.09l.47-.13.4.29c14.99,11.13,27.22,17.37,36.16,21.55,24.94,10.66,39.12,12.6,50.52,14.16,1.25.17,2.46.34,3.63.51,4.45.62,9.07.92,14.15.92,6.57,0,12.54-.51,17.8-.95l1.2-.1c6.43-.68,12.13-2.06,16.76-3.52-6.65,1.38-14.01,2.56-19.69,2.82-2.7.14-5.48.21-8.26.21-21.73,0-39.58-4.34-46.25-6.21-25.81-7.32-43.69-18.36-53.3-24.3-3.21-2.02-6.18-4.01-9.07-6.09l-1.66-1.2,1.96-.59c3.53-1.05,7.14-2.27,10.66-3.6,19.01-8.15,28.89-15.42,36.1-20.73,1.03-.76,2.01-1.47,2.93-2.14l2.07-1.51.45.11c.54.12,1.08.19,1.59.19,1.7,0,3.3-.63,4.5-1.79l.3-.28h.52l.11.03c14.79,3.3,32.32,6.02,41.3,6.89,7.44.74,14.24,1.08,21.37,1.08,9.99,0,20.6-.66,35.51-2.23,24.65-2.48,45.23-13.59,52.94-18.25,17.45-10.19,26.84-23.33,31.87-30.38,2.18-3.19,4-6.3,5.53-9.24-2.69,4.61-7.25,11.75-12.65,17.26-7.74,7.49-19.91,18.29-36.13,25.5-12.41,5.17-23.7,9.1-38.4,11.5-5.09.78-18.35,2.58-31.35,2.58-.92,0-1.82-.01-2.72-.03h-.36c-11.3-.24-24.1-.49-37.71-2.67-8.22-1.32-16.42-2.94-22.41-4.12-1.94-.38-3.63-.72-5.01-.98l-.83-.16v-.93l-.06-.52.4-.35c3.47-3.02,8.42-7.36,12.3-10.83,5.66-5.07,11.54-11.13,20.26-20.89,5.79-6.48,9.87-12.04,11.79-14.78l.41-.59.69.2c.7.2,1.45.3,2.22.3,2.49,0,4.81-1.07,6.37-2.93l.43-.51.63.19c4.37,1.27,23.68,6.4,27.19,7.23,2.32.56,23.22,5.47,42.41,7.02h.4c3.5.1,6.82.18,10.14.18,6.54,0,14.58-.28,24.64-2.34,5.74-1.5,12.59-3.69,19.86-8.55,2.78-2.06,5.51-4.19,8.15-6.43s4.13-5.36,4.63-6.87c-5.85,6.07-12.48,10.4-21.45,14.11ZM70.27,217.99c-.54-5.25-.81-18.85-.65-23.19.2-4.96.87-17.4,2.86-25.88,2.09-8.92,3.9-15.22,6.44-22.46,2.59-7.36,7.12-16.87,10.46-23.02,3.28-6.03,7.91-13.57,11.45-17.41,0-.01.01-.03.03-.04.34-.38,3.1-3.4,4.01-4.27.85-.85-.96,3.08-1.72,4.72-.08.16-.14.31-.19.41l-.08.17s-.02.04-.03.06l-.26.56c-2,4.29-5.01,10.78-6.3,17.9-1.24,6.85-2.41,16.05-.41,26.42,2.01,10.41,5.02,17.84,11.52,28.4,5.55,8.49,10.19,13.37,16.61,20.12.92.96,1.87,1.96,2.81,2.97,7.63,7.36,16.99,14.76,22.02,18.75l.61.48c4.34,3.44,8.06,6.05,10.83,7.95l.61.41-.21.7c-.26.89-.38,1.82-.38,2.79v.75l-.73.21c-16.97,5.05-32.66,8.5-42.87,10.5-12.69,2.12-22.05,3.11-29.44,3.11-2.29,0-4.38-.1-6.37-.29l-.9-.09v-.9c-.07-3.62-2.22-6.67-5.01-7.13h-.54l-.28-.54c-.21-.41-.41-.81-.58-1.21-1.34-3.22-2.47-12.89-3.3-20.96ZM212.32,341.65c-1.79,1.45-3.4,2.7-4.79,3.73-12.83,9.29-23.35,14.6-33.1,19.27-5.01,2.06-9.03,3.6-12.66,4.83l-.45.16-.41-.25c-.48-.3-1.02-.45-1.56-.45-.28,0-.56.04-.83.12l-.51.15-.42-.33c-5.58-4.47-10.87-9.24-15.79-13.75-11.42-11.36-23.13-24.87-31.32-36.16-10.63-15.19-17.81-29.03-21.15-35.93-3.65-7.55-7.76-19.04-9.98-25.21-.56-1.55-1-2.79-1.3-3.59l-.21-.61.35-.36.58-1.22,1.02,1.1c.67.73,1.96,2.44,3.74,4.79,3.33,4.39,7.88,10.4,11.73,14.49,5.75,6.12,15.44,14.42,28.03,24,10.41,7.92,26.5,17.64,43.03,26,13.55,6.84,26.45,11.17,41.9,16.11,1.11.35,2.3.71,3.64,1.08l.57.16.14.57c.01.06.04.12.05.18l.23.66-.55.44ZM265.43,287.39c-1.43,1.77-3.73,4.6-5.36,6.64-2.34,2.93-11.44,13.86-18.48,21.3-5.43,5.73-15.08,14.29-18.98,17.71l-.5.43-.61-.28c-.85-.42-1.83-.63-2.81-.63-2.26,0-4.37,1.16-5.51,3.04l-.41.66-.75-.22c-5.49-1.65-10.14-3.18-13.82-4.53-6.95-2.55-24.43-9.21-36.57-15.83-14.37-7.83-25.41-14.56-33.79-20.57-10.66-7.93-18.05-13.92-22.56-18.34l-1.5-1.46c-4.76-4.63-10.7-10.39-14.59-15.39-2.19-2.8-3.92-4.62-5.33-6.04l-1.89-1.88,2.66.16c1.72.1,3.48.15,5.36.15,3.87,0,7.71-.21,11.77-.44l.66-.04c17.75-1.08,36.25-4.47,55-10.07,1.18-.36,2.56-.78,4.1-1.27l.16-.05h.62l.3.35c1.65,1.91,3.98,3,6.41,3,2.26,0,4.4-.92,6.03-2.59l.57-.58.69.43c2.38,1.49,4.7,2.9,6.72,4.1,6.3,3.73,17.17,9.54,31.4,16.77,11.31,5.49,19.78,9,32.37,13.95,8.43,3.27,13.95,5.04,17.37,6.1l.77.26-.06.81v.09c0,1.13.24,2.21.71,3.23l.26.57-.4.48ZM266.24,277.64c-1.14-.43-2.24-.87-3.35-1.3-1.87-.73-3.8-1.49-5.87-2.26-10.77-4.1-21.38-8.5-34.42-14.3-18.6-8.7-28.85-14.79-37.07-19.69l-2.36-1.4c-.98-.54-1.91-1.07-2.81-1.57l-3.23-1.81,2.14-.73c11.84-4.07,27.91-9.79,37.51-13.65,10.96-4.38,29.52-12.78,55.66-27.88,15.56-8.7,29.19-18.18,39.14-25.1,1.37-.95,2.66-1.84,3.88-2.69.41-.28.82-.57,1.23-.86l1.85-1.34-.26,2.27c-.12,1.08-.24,2.15-.38,3.25-1.14,7.9-3.13,16.75-5.9,26.32-3.22,11.09-7.24,22.25-11.94,33.16-5.47,12.68-10.53,21.73-14.33,28.2-1.11,1.89-2.41,4.16-3.77,6.57-2.23,3.91-4.75,8.33-6.94,11.9l-.34.56-.64-.08c-.31-.04-.63-.06-.95-.06-2.19,0-4.23.81-5.78,2.29l-.46.45-.6-.24Z" style="fill:url(#uuid-dae556c8-0d79-4092-996d-0a82866ffca0); stroke:#8cd3d5; stroke-miterlimit:10;"/><path d="M322.33,150.02c2.57,0,4.66,2.14,4.66,4.77s-2.09,4.77-4.66,4.77-4.66-2.14-4.66-4.77,2.09-4.77,4.66-4.77Z" style="fill:#fff;"/><path d="M168.99,227.3c3.65,0,6.63,3.23,6.63,7.21s-2.97,7.21-6.63,7.21-6.63-3.23-6.63-7.21,2.97-7.21,6.63-7.21Z" style="fill:#fff;"/><path d="M74.23,253.26c-1.98,0-3.66-2.41-3.66-5.27s1.68-5.27,3.66-5.27,3.66,2.41,3.66,5.27-1.68,5.27-3.66,5.27Z" style="fill:#fff;"/><path d="M159.36,373.44c-.75,0-1.36-.63-1.36-1.4s.61-1.4,1.36-1.4,1.36.63,1.36,1.4-.61,1.4-1.36,1.4Z" style="fill:#fff;"/><path d="M218.69,342.66c-2.36,0-4.29-1.8-4.29-4.02s1.92-4.02,4.29-4.02,4.29,1.8,4.29,4.02-1.92,4.02-4.29,4.02Z" style="fill:#fff;"/><ellipse cx="273.08" cy="283.1" rx="6.15" ry="5.89" style="fill:#fff;"/></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><svg id="uuid-e99cb179-c768-46e8-b32b-bba4bb636e01" xmlns="http://www.w3.org/2000/svg" width="530mm" height="160mm" viewBox="0 0 1502.36 453.54"><path d="M61.88,321.34v67.9h-9.48v-139.91h94.48v8.35H61.88v55.33h69.13v8.35H61.88Z" style="fill:#231f20;"/><path d="M237.3,247.27c43.17,0,73.77,29.88,73.77,72.02s-30.6,72.02-73.77,72.02-73.77-29.88-73.77-72.02,30.6-72.02,73.77-72.02ZM237.3,382.96c37.6,0,64.29-27.1,64.29-63.67s-26.99-63.67-64.29-63.67-64.29,26.48-64.29,63.67,26.68,63.67,64.29,63.67Z" style="fill:#231f20;"/><path d="M346.92,249.33h9.48v89.32c0,26.79,19.78,44.1,51,44.1s50.79-17.31,50.79-44.1v-89.32h9.48v89.32c0,31.84-23.28,52.65-60.27,52.65s-60.48-20.81-60.48-52.65v-89.32Z" style="fill:#231f20;"/><path d="M641.12,389.24h-10.71l-106.74-126.93v126.93h-9.48v-139.91h10.92l106.53,126.83v-126.72h9.48v139.81Z" style="fill:#231f20;"/><path d="M743.89,249.33c47.8,0,71.71,29.05,71.71,70.06,0,43.58-24.11,69.85-72.12,69.85h-54.6v-139.91h55.02ZM698.36,257.67v123.22h46.57c38.22,0,61.2-21.74,61.2-61.51s-22.98-61.71-61.2-61.71h-46.57Z" style="fill:#231f20;"/><path d="M960.3,389.24h-9.48l-15.35-35.65h-82.32l-15.35,35.65h-9.89l60.27-139.91h12.36l59.76,139.91ZM856.76,345.25h75.11l-37.5-86.96-37.6,86.96Z" style="fill:#231f20;"/><path d="M1011.21,257.67v131.57h-9.48v-131.57h-49.66v-8.35h108.69v8.35h-49.56Z" style="fill:#231f20;"/><path d="M1090.15,249.33h9.48v139.91h-9.48v-139.91Z" style="fill:#231f20;"/><path d="M1211.38,247.27c43.17,0,73.77,29.88,73.77,72.02s-30.6,72.02-73.77,72.02-73.77-29.88-73.77-72.02,30.6-72.02,73.77-72.02ZM1211.38,382.96c37.6,0,64.29-27.1,64.29-63.67s-26.99-63.67-64.29-63.67-64.29,26.48-64.29,63.67,26.68,63.67,64.29,63.67Z" style="fill:#231f20;"/><path d="M1449.71,389.24h-10.71l-106.74-126.93v126.93h-9.48v-139.91h10.92l106.53,126.83v-126.72h9.48v139.81Z" style="fill:#231f20;"/><path d="M164.92,71.57l-3.55,34.76c-9.04-5.02-26.7-10.36-44.79-10.36-11.31,0-20.67,1.74-20.67,10.05,0,5.74,6.78,7.08,14.1,9.13l23.26,6.46c25.3,6.97,40.27,18.35,40.27,40.09,0,26.25-23.58,44.19-61.37,44.19-27.78,0-49.42-6.87-59.65-11.59l4.31-34.86c8.51,4.41,28.85,12.1,52.22,12.1,10.77,0,18.95-2.36,18.95-9.02,0-4.2-3.23-7.08-12.06-9.33l-22.5-5.74c-19.49-4.92-41.34-15.18-41.34-41.94s25.09-43.27,62.34-43.27c21.96,0,38.87,4.1,50.5,9.33Z" style="fill:#231f20;"/><path d="M229.24,166.22v37.43h-42.96V64.4h73.97c36.5,0,56.96,22.05,56.96,50.14s-20.46,51.68-56.96,51.68h-31.01ZM229.24,98.13v34.45h23.69c12.6,0,20.67-5.95,20.67-17.23,0-11.89-7.64-17.23-20.67-17.23h-23.69Z" style="fill:#231f20;"/><path d="M407.01,180.37h-52.97l-9.37,23.28h-45.87l56.2-139.25h51.25l56.09,139.25h-45.87l-9.47-23.28ZM363.84,149.5h33.48l-16.69-46.55-16.8,46.55Z" style="fill:#231f20;"/><path d="M479.31,97.82h-41.67v-33.43h127.37v33.43h-42.74v105.82h-42.96v-105.82Z" style="fill:#231f20;"/><path d="M617.41,203.64h-42.96V64.4h42.96v139.25Z" style="fill:#231f20;"/><path d="M734.71,180.37h-52.97l-9.37,23.28h-45.87l56.2-139.25h51.25l56.09,139.25h-45.87l-9.47-23.28ZM691.54,149.5h33.48l-16.69-46.55-16.8,46.55Z" style="fill:#231f20;"/><path d="M911.69,203.64h-113.16V64.4h42.96v106.64h70.2v32.61Z" style="fill:#231f20;"/><path d="M958.68,64.4h42.31l24.55,95.26,29.72-93.31h32.3l29.72,93.31,24.66-95.26h42.2l-38.76,139.25h-50.28l-23.69-66.96-23.58,66.96h-50.39l-38.76-139.25Z" style="fill:#231f20;"/><path d="M1307.71,203.64h-114.02V64.4h113.48v32.81h-70.52v19.58h63.42v32.61h-63.42v21.64h71.06v32.61Z" style="fill:#231f20;"/><path d="M1321.04,203.64V64.4h77.73c23.58,0,44.25,13.23,44.25,36.3,0,13.95-5.71,24.4-18.73,31.48,17.98,5.74,26.05,18.56,26.05,33.43,0,23.89-19.81,38.04-44.57,38.04h-84.73ZM1362.5,95.16v23.69h27.35c7.11,0,11.3-5.02,11.3-12.2,0-6.67-4.52-11.48-12.17-11.48h-26.49ZM1362.5,148.17v26.15h30.04c8.18,0,13.35-5.64,13.35-12.82,0-7.69-5.06-13.33-13.35-13.33h-30.04Z" style="fill:#231f20;"/><rect x="52.01" y="225.72" width="1398.09" height="2.27" style="fill:#231f20;"/></svg>
data/data/swf/swf.xsl ADDED
@@ -0,0 +1,361 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:mn="https://www.metanorma.org/ns/standoc" xmlns:mnx="https://www.metanorma.org/ns/xslt" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:java="http://xml.apache.org/xalan/java" xmlns:barcode="http://barcode4j.krysalis.org/ns" xmlns:redirect="http://xml.apache.org/xalan/redirect" exclude-result-prefixes="java" extension-element-prefixes="redirect" version="1.0">
2
+
3
+ <xsl:variable name="pageWidth">210</xsl:variable>
4
+ <xsl:variable name="pageHeight">297</xsl:variable>
5
+
6
+ <xsl:variable name="marginTop">25</xsl:variable>
7
+ <xsl:variable name="marginBottom">25</xsl:variable>
8
+
9
+ <xsl:variable name="color_black">rgb(30, 25, 29)</xsl:variable>
10
+ <xsl:variable name="color_header_background">rgb(240, 234, 219)</xsl:variable>
11
+
12
+ <xsl:template name="layout-master-set">
13
+ <fo:layout-master-set>
14
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
15
+ <fo:region-body margin-top="60mm" margin-bottom="30mm" margin-left="19mm" margin-right="20mm"/>
16
+ <fo:region-before region-name="header" extent="10mm"/>
17
+ <fo:region-after region-name="footer" extent="20mm"/>
18
+ </fo:simple-page-master>
19
+
20
+ <fo:simple-page-master master-name="even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
21
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
22
+ <fo:region-before region-name="header-even" extent="20mm"/>
23
+ <fo:region-after region-name="footer-even" extent="20mm"/>
24
+ <fo:region-start region-name="left-region" extent="13mm"/>
25
+ <fo:region-end region-name="right-region" extent="12mm"/>
26
+ </fo:simple-page-master>
27
+ <fo:simple-page-master master-name="odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
28
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
29
+ <fo:region-before region-name="header-odd" extent="20mm"/>
30
+ <fo:region-after region-name="footer-odd" extent="20mm"/>
31
+ <fo:region-start region-name="left-region" extent="13mm"/>
32
+ <fo:region-end region-name="right-region" extent="12mm"/>
33
+ </fo:simple-page-master>
34
+ <fo:page-sequence-master master-name="document">
35
+ <fo:repeatable-page-master-alternatives>
36
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
37
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
38
+ </fo:repeatable-page-master-alternatives>
39
+ </fo:page-sequence-master>
40
+
41
+
42
+ <fo:simple-page-master master-name="even-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
43
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
44
+ <fo:region-before region-name="header-even" extent="20mm"/>
45
+ <fo:region-after region-name="footer-even" extent="20mm"/>
46
+ <fo:region-start region-name="left-region" extent="13mm"/>
47
+ <fo:region-end region-name="right-region" extent="12mm"/>
48
+ </fo:simple-page-master>
49
+ <fo:simple-page-master master-name="odd-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
50
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
51
+ <fo:region-before region-name="header-odd" extent="20mm"/>
52
+ <fo:region-after region-name="footer-odd" extent="20mm"/>
53
+ <fo:region-start region-name="left-region" extent="13mm"/>
54
+ <fo:region-end region-name="right-region" extent="12mm"/>
55
+ </fo:simple-page-master>
56
+ <fo:page-sequence-master master-name="document-landscape">
57
+ <fo:repeatable-page-master-alternatives>
58
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-landscape"/>
59
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-landscape"/>
60
+ </fo:repeatable-page-master-alternatives>
61
+ </fo:page-sequence-master>
62
+
63
+ </fo:layout-master-set>
64
+ </xsl:template>
65
+
66
+
67
+ <xsl:variable name="copyright_year" select="/mn:metanorma/mn:bibdata/mn:copyright/mn:from"/>
68
+ <xsl:variable name="copyright_holder" select="normalize-space(/mn:metanorma/mn:bibdata/mn:copyright/mn:owner/mn:organization/mn:name)"/>
69
+ <xsl:variable name="copyrightText">
70
+ <xsl:text>© </xsl:text>
71
+ <xsl:value-of select="$copyright_year"/>
72
+ <xsl:text>. The </xsl:text>
73
+ <xsl:value-of select="$copyright_holder"/>
74
+ <xsl:text>, Inc. </xsl:text>
75
+ <xsl:variable name="all_rights_reserved">
76
+ <xsl:call-template name="getLocalizedString">
77
+ <xsl:with-param name="key">all_rights_reserved</xsl:with-param>
78
+ </xsl:call-template>
79
+ </xsl:variable>
80
+ <xsl:value-of select="$all_rights_reserved"/>
81
+ <xsl:text>.</xsl:text>
82
+ </xsl:variable>
83
+
84
+ <xsl:template name="cover-page">
85
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force" font-family="Nacelle" >
86
+ <fo:static-content flow-name="header">
87
+ <xsl:call-template name="insertBackgroundPageImage"/>
88
+ </fo:static-content>
89
+
90
+ <fo:static-content flow-name="footer">
91
+ <fo:block-container height="20mm" display-align="center">
92
+ <fo:block font-size="12pt" font-weight="300" color="white" margin-left="11.3mm">
93
+ <xsl:value-of select="$copyrightText"/>
94
+ </fo:block>
95
+ </fo:block-container>
96
+ </fo:static-content>
97
+
98
+ <fo:flow flow-name="xsl-region-body" color="{$color_black}">
99
+
100
+ <fo:block-container margin-right="30mm">
101
+ <fo:block-container margin-right="0mm">
102
+
103
+ <fo:block font-size="20pt" font-weight="600" margin-left="1mm">
104
+ <xsl:value-of select="/mn:metanorma/mn:bibdata/mn:docidentifier"/>
105
+ </fo:block>
106
+
107
+ <xsl:variable name="titles">
108
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and (@type = 'intro' or not(@type))]"/>
109
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and @type = 'main'][last()]"/>
110
+ </xsl:variable>
111
+
112
+ <xsl:for-each select="xalan:nodeset($titles)/mn:title">
113
+ <fo:block font-size="21pt" font-weight="600" margin-top="6mm" role="H1">
114
+ <xsl:if test="position() = 1">
115
+ <xsl:attribute name="font-size">22pt</xsl:attribute>
116
+ <xsl:attribute name="margin-top">17mm</xsl:attribute>
117
+ </xsl:if>
118
+ <xsl:apply-templates />
119
+ </fo:block>
120
+ </xsl:for-each>
121
+
122
+ <xsl:variable name="title_part">
123
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and @type = 'part']"/>
124
+ </xsl:variable>
125
+ <xsl:for-each select="xalan:nodeset($title_part)/mn:title">
126
+ <fo:block font-size="21pt" font-weight="600" margin-top="9mm">
127
+ <xsl:apply-templates />
128
+ </fo:block>
129
+ </xsl:for-each>
130
+
131
+ <fo:block font-size="14pt" font-weight="normal" margin-top="17mm">
132
+ <xsl:call-template name="convertDate">
133
+ <xsl:with-param name="date" select="/mn:metanorma/mn:bibdata/mn:version/mn:revision-date"/>
134
+ <xsl:with-param name="format">full</xsl:with-param>
135
+ </xsl:call-template>
136
+ </fo:block>
137
+ </fo:block-container>
138
+ </fo:block-container>
139
+ </fo:flow>
140
+ </fo:page-sequence>
141
+ </xsl:template> <!-- END cover-page -->
142
+
143
+
144
+ <xsl:template name="back-page">
145
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force" font-family="Nacelle" >
146
+ <fo:static-content flow-name="header">
147
+ <xsl:call-template name="insertBackgroundPageImage">
148
+ <xsl:with-param name="name">backpage-image</xsl:with-param>
149
+ <xsl:with-param name="suffix">back</xsl:with-param>
150
+ </xsl:call-template>
151
+ </fo:static-content>
152
+
153
+ <fo:static-content flow-name="footer">
154
+ <fo:block-container height="20mm" display-align="center">
155
+ <fo:block font-size="12pt" font-weight="300" color="white" margin-left="11.3mm">
156
+ <xsl:value-of select="$copyrightText"/>
157
+ </fo:block>
158
+ </fo:block-container>
159
+ </fo:static-content>
160
+
161
+ <fo:flow flow-name="xsl-region-body" color="{$color_black}">
162
+ <fo:block-container margin-left="1mm" margin-right="5mm">
163
+ <fo:block-container margin-left="0mm">
164
+
165
+ <xsl:variable name="contributors_">
166
+ <xsl:for-each select="/mn:metanorma/mn:bibdata/mn:contributor[mn:role[@type = 'author' and normalize-space(mn:description) != 'leadership']]/mn:person/mn:name/mn:completename">
167
+ <xsl:copy-of select="."/>
168
+ </xsl:for-each>
169
+ </xsl:variable>
170
+ <xsl:variable name="contributors" select="xalan:nodeset($contributors_)"/>
171
+
172
+ <xsl:if test="$contributors/*">
173
+ <fo:block font-size="14pt" font-weight="600">Document contributors</fo:block>
174
+ <fo:block font-size="12pt" font-weight="300" margin-top="5.5mm">
175
+ <xsl:for-each select="$contributors/*">
176
+ <fo:inline keep-together.within-line="always"><xsl:value-of select="."/></fo:inline><xsl:if test="position() != last()">, </xsl:if>
177
+ </xsl:for-each>
178
+ </fo:block>
179
+ </xsl:if>
180
+
181
+ <xsl:variable name="leadership_">
182
+ <xsl:for-each select="/mn:metanorma/mn:bibdata/mn:contributor[mn:role[@type = 'author' and mn:description = 'leadership']]/mn:person">
183
+ <xsl:copy-of select="."/>
184
+ </xsl:for-each>
185
+ </xsl:variable>
186
+ <xsl:variable name="leadership" select="xalan:nodeset($leadership_)"/>
187
+
188
+ <xsl:if test="$leadership/*">
189
+ <fo:block font-size="14pt" font-weight="600" margin-top="11mm">Spatial Web Foundation leadership</fo:block>
190
+
191
+ <fo:block font-size="12pt" font-weight="300" margin-top="5.5mm">
192
+ <fo:table table-layout="fixed" width="100%">
193
+ <fo:table-column column-width="51mm"/>
194
+ <fo:table-column column-width="90mm"/>
195
+ <fo:table-body>
196
+ <xsl:for-each select="$leadership/*">
197
+ <fo:table-row>
198
+ <fo:table-cell>
199
+ <fo:block font-weight="600">
200
+ <xsl:value-of select="mn:name/mn:completename"/>
201
+ </fo:block>
202
+ </fo:table-cell>
203
+ <fo:table-cell>
204
+ <fo:block font-weight="300">
205
+ <xsl:value-of select="mn:affiliation"/>
206
+ </fo:block>
207
+ </fo:table-cell>
208
+ </fo:table-row>
209
+ </xsl:for-each>
210
+ </fo:table-body>
211
+ </fo:table>
212
+ </fo:block>
213
+ </xsl:if>
214
+
215
+
216
+ <fo:block font-size="12pt" font-weight="300" margin-top="15mm">
217
+ <xsl:text>Comments about the Spatial Web and this document can be sent to</xsl:text>
218
+ <xsl:value-of select="$linebreak"/>
219
+ <xsl:text>the Spatial Web Foundation at info@spatialwebfoundation.org</xsl:text>
220
+ </fo:block>
221
+ </fo:block-container>
222
+ </fo:block-container>
223
+ </fo:flow>
224
+ </fo:page-sequence>
225
+ </xsl:template> <!-- Ena back-page -->
226
+
227
+
228
+ <xsl:template name="insertHeaderFooter">
229
+ <xsl:call-template name="insertHeader"/>
230
+ <xsl:call-template name="insertFooter"/>
231
+ </xsl:template>
232
+
233
+ <xsl:template name="insertHeader">
234
+ <xsl:variable name="docidentifier" select="/mn:metanorma/mn:bibdata/mn:docidentifier"/>
235
+ <xsl:call-template name="insertHeaderOdd">
236
+ <xsl:with-param name="text" select="$docidentifier"/>
237
+ </xsl:call-template>
238
+ <xsl:call-template name="insertHeaderEven">
239
+ <xsl:with-param name="text" select="$docidentifier"/>
240
+ </xsl:call-template>
241
+ </xsl:template>
242
+
243
+ <xsl:attribute-set name="header-style">
244
+ <xsl:attribute name="absolute-position">fixed</xsl:attribute>
245
+ <xsl:attribute name="left">0mm</xsl:attribute>
246
+ <xsl:attribute name="top">0mm</xsl:attribute>
247
+ <xsl:attribute name="width"><xsl:value-of select="$pageWidth"/>mm</xsl:attribute>
248
+ <xsl:attribute name="font-family">Nacelle</xsl:attribute>
249
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
250
+ <xsl:attribute name="font-weight">300</xsl:attribute>
251
+ <xsl:attribute name="height">20mm</xsl:attribute>
252
+ <xsl:attribute name="color"><xsl:value-of select="$color_black"/></xsl:attribute>
253
+ <xsl:attribute name="background-color"><xsl:value-of select="$color_header_background"/></xsl:attribute>
254
+ <xsl:attribute name="display-align">center</xsl:attribute>
255
+ </xsl:attribute-set>
256
+
257
+ <xsl:template name="insertHeaderOdd">
258
+ <xsl:param name="text"/>
259
+ <fo:static-content flow-name="header-odd" role="artifact">
260
+ <fo:block-container xsl:use-attribute-sets="header-style" id="__internal_layout__headerodd_{generate-id()}_{.//*[@id][1]/@id}">
261
+ <fo:block text-align="right" margin-right="7mm">
262
+ <xsl:value-of select="$text"/>
263
+ </fo:block>
264
+ </fo:block-container>
265
+ </fo:static-content>
266
+ </xsl:template>
267
+
268
+ <xsl:template name="insertHeaderEven">
269
+ <xsl:param name="text"/>
270
+ <fo:static-content flow-name="header-even" role="artifact">
271
+ <fo:block-container xsl:use-attribute-sets="header-style" id="__internal_layout__headereven_{generate-id()}_{.//*[@id][1]/@id}">
272
+ <fo:block margin-left="10mm">
273
+ <xsl:value-of select="$text"/>
274
+ </fo:block>
275
+ </fo:block-container>
276
+ </fo:static-content>
277
+ </xsl:template>
278
+
279
+ <xsl:attribute-set name="footer-style">
280
+ <xsl:attribute name="absolute-position">fixed</xsl:attribute>
281
+ <xsl:attribute name="left">0mm</xsl:attribute>
282
+ <xsl:attribute name="top"><xsl:value-of select="$pageHeight - 20"/>mm</xsl:attribute>
283
+ <xsl:attribute name="width"><xsl:value-of select="$pageWidth"/>mm</xsl:attribute>
284
+ <xsl:attribute name="font-family">Nacelle</xsl:attribute>
285
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
286
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
287
+ <xsl:attribute name="height">20mm</xsl:attribute>
288
+ <xsl:attribute name="color">white</xsl:attribute>
289
+ <xsl:attribute name="background-color"><xsl:value-of select="$color_black"/></xsl:attribute>
290
+ <xsl:attribute name="display-align">center</xsl:attribute>
291
+ </xsl:attribute-set>
292
+
293
+ <xsl:template name="insertFooter">
294
+ <xsl:variable name="titles_">
295
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and (@type = 'intro' or not(@type))]"/>
296
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and @type = 'main'][last()]"/>
297
+ <xsl:copy-of select="/mn:metanorma/mn:bibdata/mn:title[@language = $lang and @type = 'part']"/>
298
+ </xsl:variable>
299
+ <xsl:variable name="titles">
300
+ <xsl:for-each select="xalan:nodeset($titles_)/mn:title">
301
+ <xsl:apply-templates />
302
+ <xsl:if test="position() != last()"> — </xsl:if>
303
+ </xsl:for-each>
304
+ </xsl:variable>
305
+ <xsl:call-template name="insertFooterOdd">
306
+ <xsl:with-param name="text" select="$titles"/>
307
+ </xsl:call-template>
308
+ <xsl:call-template name="insertFooterEven">
309
+ <xsl:with-param name="text" select="$titles"/>
310
+ </xsl:call-template>
311
+ </xsl:template>
312
+
313
+ <xsl:template name="insertFooterOdd">
314
+ <xsl:param name="text"/>
315
+ <fo:static-content flow-name="footer-odd" role="artifact">
316
+ <fo:block-container xsl:use-attribute-sets="footer-style" id="__internal_layout__footerodd_{generate-id()}_{.//*[@id][1]/@id}">
317
+ <fo:table table-layout="fixed" width="100%">
318
+ <fo:table-column column-width="proportional-column-width(9)"/>
319
+ <fo:table-column column-width="proportional-column-width(1)"/>
320
+ <fo:table-body>
321
+ <fo:table-row>
322
+ <fo:table-cell padding-left="7mm">
323
+ <fo:block>
324
+ <xsl:copy-of select="$text"/>
325
+ </fo:block>
326
+ </fo:table-cell>
327
+ <fo:table-cell text-align="right" padding-right="7mm">
328
+ <fo:block><fo:page-number/></fo:block>
329
+ </fo:table-cell>
330
+ </fo:table-row>
331
+ </fo:table-body>
332
+ </fo:table>
333
+ </fo:block-container>
334
+ </fo:static-content>
335
+ </xsl:template>
336
+
337
+ <xsl:template name="insertFooterEven">
338
+ <xsl:param name="text"/>
339
+ <fo:static-content flow-name="footer-even" role="artifact">
340
+ <fo:block-container xsl:use-attribute-sets="footer-style" id="__internal_layout__footereven_{generate-id()}_{.//*[@id][1]/@id}">
341
+ <fo:table table-layout="fixed" width="100%">
342
+ <fo:table-column column-width="proportional-column-width(1)"/>
343
+ <fo:table-column column-width="proportional-column-width(9)"/>
344
+ <fo:table-body>
345
+ <fo:table-row>
346
+ <fo:table-cell padding-left="10mm">
347
+ <fo:block><fo:page-number/></fo:block>
348
+ </fo:table-cell>
349
+ <fo:table-cell text-align="right" padding-right="9mm">
350
+ <fo:block>
351
+ <xsl:copy-of select="$text"/>
352
+ </fo:block>
353
+ </fo:table-cell>
354
+ </fo:table-row>
355
+ </fo:table-body>
356
+ </fo:table>
357
+ </fo:block-container>
358
+ </fo:static-content>
359
+ </xsl:template>
360
+
361
+ </xsl:stylesheet>
@@ -7,7 +7,7 @@ module Metanorma
7
7
  # Base processor for taste-specific document attribute handling
8
8
  #
9
9
  # This class handles the processing of AsciiDoc attributes for taste-specific
10
- # document generation, including file-based overrides, base configuration overrides,
10
+ # document generation, including filename-based attributes, value-based attributes,
11
11
  # and doctype-specific transformations.
12
12
  #
13
13
  # @example Basic usage
@@ -30,15 +30,15 @@ module Metanorma
30
30
  # @return [TasteConfig] The taste configuration object
31
31
  attr_reader :config
32
32
 
33
- # Mapping of base override configuration keys to AsciiDoc attribute names
33
+ # Mapping of value-based attribute configuration keys to AsciiDoc attribute names
34
34
  #
35
- # This constant defines how base_override configuration properties
35
+ # This constant defines how base_override.value_attributes configuration properties
36
36
  # are translated into AsciiDoc document attributes.
37
37
  #
38
38
  # @example Configuration to attribute mapping
39
- # config.base_override.publisher => :publisher:
40
- # config.base_override.presentation_metadata_color_secondary => :presentation-metadata-color-secondary:
41
- BASE_OVERRIDE_MAPPINGS = {
39
+ # config.base_override.value_attributes.publisher => :publisher:
40
+ # config.base_override.value_attributes.presentation_metadata_color_secondary => :presentation-metadata-color-secondary:
41
+ VALUE_ATTRIBUTE_MAPPINGS = {
42
42
  publisher: "publisher",
43
43
  publisher_abbr: "publisher_abbr",
44
44
  presentation_metadata_color_secondary: "presentation-metadata-color-secondary",
@@ -122,8 +122,8 @@ module Metanorma
122
122
  # Build all attribute overrides from various sources
123
123
  #
124
124
  # This method coordinates the building of attributes from:
125
- # - File-based sources (copyright, logo, i18n)
126
- # - Base override configuration
125
+ # - Filename-based attributes (copyright, logo, i18n, stylesheets)
126
+ # - Value-based attributes (publisher, fonts, presentation metadata)
127
127
  # - Doctype-specific overrides
128
128
  #
129
129
  # @param attrs [Array<String>] Original attributes array
@@ -139,10 +139,10 @@ module Metanorma
139
139
  [attrs, override_attrs]
140
140
  end
141
141
 
142
- # Add file-based attribute overrides
142
+ # Add filename-based attribute overrides
143
143
  #
144
- # Processes file-based configuration properties and adds corresponding
145
- # attributes if the files exist.
144
+ # Processes filename-based configuration properties from base_override.filename_attributes
145
+ # and adds corresponding attributes if the files exist.
146
146
  #
147
147
  # @param override_attrs [Array<String>] Array to append override attributes to
148
148
  def add_file_based_overrides(override_attrs)
@@ -151,7 +151,7 @@ module Metanorma
151
151
  end
152
152
  end
153
153
 
154
- # Get the mapping of file-based configuration attributes to AsciiDoc attributes
154
+ # Get the mapping of filename-based configuration attributes to AsciiDoc attributes
155
155
  #
156
156
  # @return [Hash<Symbol, String>] Mapping of config attributes to AsciiDoc attribute names
157
157
  def file_override_mappings
@@ -173,6 +173,8 @@ module Metanorma
173
173
  pdfstylesheet: "pdf-stylesheet",
174
174
  pdfstylesheet_override: "pdf-stylesheet-override",
175
175
  customize: "customize",
176
+ coverpage_image: "coverpage-image",
177
+ backpage_image: "backpage-image",
176
178
  }
177
179
  end
178
180
 
@@ -188,7 +190,7 @@ module Metanorma
188
190
  override_attrs << ":#{attr_name}: #{filepath}"
189
191
  end
190
192
 
191
- # Get the full file path for a configuration attribute
193
+ # Get the full file path for a filename-based configuration attribute
192
194
  #
193
195
  # @param config_attr [Symbol] The configuration attribute name
194
196
  # @return [String, nil] The full file path, or nil if not configured
@@ -197,23 +199,25 @@ module Metanorma
197
199
  # file_path_for(:copyright_notice) # => "data/icc/copyright.adoc"
198
200
  # file_path_for(:publisher_logo) # => "data/icc/logo.svg"
199
201
  def file_path_for(config_attr)
200
- filename = @config.send(config_attr)
202
+ return nil unless @config.base_override&.filename_attributes
203
+
204
+ filename = @config.base_override.filename_attributes.send(config_attr)
201
205
  return nil unless filename
202
206
 
203
207
  File.join(@directory, filename)
204
208
  end
205
209
 
206
- # Add base configuration override attributes
210
+ # Add value-based configuration override attributes
207
211
  #
208
- # Processes base_override configuration and adds corresponding
212
+ # Processes base_override.value_attributes configuration and adds corresponding
209
213
  # AsciiDoc attributes for each configured property.
210
214
  #
211
215
  # @param override_attrs [Array<String>] Array to append override attributes to
212
216
  def add_base_configuration_overrides(override_attrs)
213
- return unless @config.base_override
217
+ return unless @config.base_override&.value_attributes
214
218
 
215
- BASE_OVERRIDE_MAPPINGS.each do |config_key, attr_key|
216
- value = @config.base_override.send(config_key)
219
+ VALUE_ATTRIBUTE_MAPPINGS.each do |config_key, attr_key|
220
+ value = @config.base_override.value_attributes.send(config_key)
217
221
  next unless value
218
222
 
219
223
  override_attrs << ":#{attr_key}: #{value}"
@@ -1,60 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require "lutaml/model"
4
+ require_relative "filename_attributes"
5
+ require_relative "value_attributes"
4
6
 
5
7
  module Metanorma
6
8
  module Taste
7
9
  # Model for base-override configuration
10
+ # Contains nested filename-attributes and value-attributes
8
11
  class BaseOverride < Lutaml::Model::Serializable
9
- attribute :publisher, :string
10
- attribute :publisher_abbr, :string
11
- attribute :body_font, :string
12
- attribute :header_font, :string
13
- attribute :monospace_font, :string
14
- attribute :presentation_metadata_color_secondary, :string
15
- attribute :presentation_metadata_backcover_text, :string
16
- attribute :presentation_metadata_ul_label_list, :string
17
- attribute :presentation_metadata_annex_delim, :string
18
- attribute :presentation_metadata_middle_title, :string
19
- attribute :presentation_metadata_ol_label_template_alphabet, :string
20
- attribute :presentation_metadata_ol_label_template_alphabet_upper, :string
21
- attribute :presentation_metadata_ol_label_template_roman, :string
22
- attribute :presentation_metadata_ol_label_template_roman_upper, :string
23
- attribute :presentation_metadata_ol_label_template_arabic, :string
24
- attribute :fonts, :string
25
- attribute :pdf_stylesheet_override, :string
26
- attribute :output_extensions, :string
12
+ attribute :filename_attributes, FilenameAttributes
13
+ attribute :value_attributes, ValueAttributes
27
14
 
28
15
  key_value do
29
- map "publisher", to: :publisher
30
- map "publisher_abbr", to: :publisher_abbr
31
- map "body-font", to: :body_font
32
- map "header-font", to: :header_font
33
- map "monospace-font", to: :monospace_font
34
- map "fonts", to: :fonts
35
- map "presentation-metadata-color-secondary",
36
- to: :presentation_metadata_color_secondary
37
- map "presentation-metadata-backcover-text",
38
- to: :presentation_metadata_backcover_text
39
- map "presentation-metadata-ul-label-list",
40
- to: :presentation_metadata_ul_label_list
41
- map "presentation-metadata-annex-delim",
42
- to: :presentation_metadata_annex_delim
43
- map "presentation-metadata-middle-title",
44
- to: :presentation_metadata_middle_title
45
- map "presentation-metadata-ol-label-template-alphabet",
46
- to: :presentation_metadata_ol_label_template_alphabet
47
- map "presentation-metadata-ol-label-template-alphabet_upper",
48
- to: :presentation_metadata_ol_label_template_alphabet_upper
49
- map "presentation-metadata-ol-label-template-roman",
50
- to: :presentation_metadata_ol_label_template_roman
51
- map "presentation-metadata-ol-label-template-roman_upper",
52
- to: :presentation_metadata_ol_label_template_roman_upper
53
- map "presentation-metadata-ol-label-template-arabic",
54
- to: :presentation_metadata_ol_label_template_arabic
55
- map "fonts", to: :fonts
56
- map "pdf-stylesheet-override", to: :pdf_stylesheet_override
57
- map "output-extensions", to: :output_extensions
16
+ map "filename-attributes", to: :filename_attributes
17
+ map "value-attributes", to: :value_attributes
58
18
  end
59
19
  end
60
20
  end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Metanorma
6
+ module Taste
7
+ # Model for filename-based attributes configuration
8
+ # These are Metanorma document attributes that contain filenames
9
+ class FilenameAttributes < Lutaml::Model::Serializable
10
+ attribute :copyright_notice, :string
11
+ attribute :i18n_dictionary, :string
12
+ attribute :publisher_logo, :string
13
+ attribute :htmlcoverpage, :string
14
+ attribute :htmlintropage, :string
15
+ attribute :htmlstylesheet, :string
16
+ attribute :htmlstylesheet_override, :string
17
+ attribute :wordcoverpage, :string
18
+ attribute :wordintropage, :string
19
+ attribute :wordstylesheet, :string
20
+ attribute :wordstylesheet_override, :string
21
+ attribute :header, :string
22
+ attribute :standardstylesheet, :string
23
+ attribute :standardstylesheet_override, :string
24
+ attribute :pdfstylesheet, :string
25
+ attribute :pdfstylesheet_override, :string
26
+ attribute :customize, :string
27
+ attribute :coverpage_image, :string
28
+ attribute :backpage_image, :string
29
+
30
+ key_value do
31
+ map "copyright-notice", to: :copyright_notice
32
+ map "i18n-dictionary", to: :i18n_dictionary
33
+ map "publisher-logo", to: :publisher_logo
34
+ map "htmlcoverpage", to: :htmlcoverpage
35
+ map "htmlintropage", to: :htmlintropage
36
+ map "htmlstylesheet", to: :htmlstylesheet
37
+ map "htmlstylesheet-override", to: :htmlstylesheet_override
38
+ map "wordcoverpage", to: :wordcoverpage
39
+ map "wordintropage", to: :wordintropage
40
+ map "wordstylesheet", to: :wordstylesheet
41
+ map "wordstylesheet-override", to: :wordstylesheet_override
42
+ map "standardstylesheet", to: :standardstylesheet
43
+ map "standardstylesheet-override", to: :standardstylesheet_override
44
+ map "header", to: :header
45
+ map "pdf-stylesheet", to: :pdfstylesheet
46
+ map "pdf-stylesheet-override", to: :pdfstylesheet_override
47
+ map "customize", to: :customize
48
+ map "coverpage-image", to: :coverpage_image
49
+ map "backpage-image", to: :backpage_image
50
+ end
51
+ end
52
+ end
53
+ end