[Po4a-devel]New module (Dia)

Jordi Vilalta jvprat@wanadoo.es
Fri, 21 May 2004 19:26:32 +0200 (CEST)


  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---1463811584-569916405-1085160392=:10688
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi,

this week I had my first contact with perl. I took the simplest po4a 
module I found (Html) and began changing things. The result has been the 
support for a new format: the uncompressed Dia diagrams.

I've been testing it with the diagrams of a document I'm writing, and it 
works very well for me (although it needs more testing). I'm sure it's not 
perfect, since those are my first lines written in perl. It would be nice 
if somebody could check it.

I hope you find it useful. The Dia diagrams are very interesting for 
technical documentation, and the last version of Dia can export good 
quality pngs (and other formats) without needing X. It's nice to have a 
makefile automaticaly generating images in several languages from the 
original diagrams ;)

I have to thank you (Denis and Martin) for beginning this great project 
(po4a) and taking this to its current status. I was surprised by how easy 
it is to add support for a new format using the packages you wrote :) 
Don't give up!

When I have some free time I'll try to understand the Sgml module to help 
you improve it.

Regards,

Jordi Vilalta


PS: Martin, about the last mail I wrote, there were more issues apart 
from the missing files in CVS. I just want to make sure you saw them, I 
don't want to rush you :P
---1463811584-569916405-1085160392=:10688
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Dia.pm"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.58.0405211926320.10688@r2d2.localdomain.com>
Content-Description: 
Content-Disposition: attachment; filename="Dia.pm"

IyEvdXNyL2Jpbi9wZXJsDQoNCiMgUG80YTo6RGlhLnBtIA0KIyANCiMgZXh0
cmFjdCBhbmQgdHJhbnNsYXRlIHRyYW5zbGF0YWJsZSBzdHJpbmdzIGZyb20g
RGlhIGRpYWdyYW1zLg0KIyANCiMgVGhpcyBjb2RlIGV4dHJhY3RzIHBsYWlu
IHRleHQgZnJvbSBzdHJpbmcgdGFncyBvbiB1bmNvbXByZXNzZWQgRGlhDQoj
IGRpYWdyYW1zLg0KIw0KIyBDb3B5cmlnaHQgKGMpIDIwMDQgYnkgSm9yZGkg
VmlsYWx0YSAgPGp2cHJhdEB3YW5hZG9vLmVzPg0KIw0KIyBUaGlzIHByb2dy
YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yIG1vZGlmeQ0KIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KIyB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvcg0KIyAoYXQgeW91ciBvcHRpb24pIGFueSBs
YXRlciB2ZXJzaW9uLg0KIw0KIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCiMgYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YNCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KIyBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0KIw0KIyBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQ0KIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh
bTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQ0KIyBGb3Vu
ZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEgMDIx
MzksIFVTQS4NCiMNCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KDQo9
aGVhZDEgTkFNRQ0KDQpMb2NhbGU6OlBvNGE6OkRpYSAtIENvbnZlcnQgdW5j
b21wcmVzc2VkIERpYSBkaWFncmFtcyBmcm9tL3RvIFBPIGZpbGVzDQoNCj1o
ZWFkMSBERVNDUklQVElPTg0KDQpUaGUgZ29hbCBwbzRhIFtwbyBmb3IgYW55
dGhpbmddIHByb2plY3QgaXMgdG8gZWFzZSB0cmFuc2xhdGlvbnMgKGFuZCBt
b3JlDQppbnRlcmVzdGluZ2x5LCB0aGUgbWFpbnRlbmFuY2Ugb2YgdHJhbnNs
YXRpb24pIHVzaW5nIGdldHRleHQgdG9vbHMgb24gYXJlYXMNCndoZXJlIHRo
ZXkgd2VyZSBub3QgZXhwZWN0ZWQgbGlrZSBkb2N1bWVudGF0aW9uLiANCg0K
TG9jYWxlOjpQbzRhOjpEaWEgaXMgYSBtb2R1bGUgdG8gaGVscCB0aGUgdHJh
bnNsYXRpb24gb2YgZGlhZ3JhbXMgaW4gdGhlDQp1bmNvbXByZXNzZWQgRGlh
IGZvcm1hdCBpbnRvIG90aGVyIFtodW1hbl0gbGFuZ3VhZ2VzLg0KDQpZb3Ug
Y2FuIGdldCBEaWEgKHRoZSBncmFwaGljYWwgZWRpdG9yIGZvciB0aGVzZSBk
aWFncmFtcykgZnJvbToNCiAgaHR0cDovL3d3dy5nbm9tZS5vcmcvcHJvamVj
dHMvZGlhLw0KDQo9aGVhZDEgVFJBTlNMQVRJTkcgV0lUSCBQTzRBOjpESUEN
Cg0KVGhpcyBtb2R1bGUgb25seSB0cmFuc2xhdGVzIHVuY29tcHJlc3NlZCBE
aWEgZGlhZ3JhbXMuICBZb3UgY2FuIHNhdmUgeW91cg0KdW5jb21wcmVzc2Vk
IGRpYWdyYW1zIHdpdGggRGlhIGl0c2VsZiwgdW5jaGVja2luZyB0aGUgIkNv
bXByZXNzIGRpYWdyYW0NCmZpbGVzIiBhdCB0aGUgIlNhdmUgRGlhZ3JhbSIg
ZGlhbG9nLg0KDQpBbm90aGVyIHdheSBpcyB0byB1bmNvbXByZXNzIHRoZSBk
aWEgZmlsZXMgZnJvbSBjb21tYW5kIGxpbmUgd2l0aDoNCiAgZ3VuemlwIDwg
b3JpZ2luYWwuZGlhID4gdW5jb21wcmVzc2VkLmRpYQ0KDQo9aGVhZDEgU1RB
VFVTIE9GIFRISVMgTU9EVUxFDQoNCkl0IFdvcmtzIEZvciBNZSAodG0pLiAg
Q3VycmVudGx5IGl0IG9ubHkgc2VhcmNoZXMgZm9yIHRyYW5zbGF0ZWFibGUg
c3RyaW5ncywNCndpdGhvdXQgcGFyc2luZyB0aGUgeG1sIGNvZGUgYXJvdW5k
LiAgSXQncyBxdWl0ZSBzaW1wbGUsIGJ1dCBpdCB3b3JrcywgYW5kDQpnaXZl
cyBhIHBlcmZlY3Qgb3V0cHV0IGZvciB2YWxpZCBpbnB1dCBmaWxlcy4gIEl0
IG9ubHkgdHJhbnNsYXRlcyB0aGUgY29udGVucw0Kb2YgdGhlIDxkaWE6c3Ry
aW5nPiB0YWdzLCBidXQgaXQgc2VlbXMgdG8gYmUgYWxsIHRoZSB0ZXh0IHBy
ZXNlbnQgYXQgdGhlDQpkaWFncmFtcy4NCg0KSXQgc2tpcHMgdGhlIGNvbnRl
bnMgb2YgdGhlIDxkaWE6ZGlhZ3JhbWRhdGE+IHRhZyBiZWNhdXNlIHRoZXJl
IGFyZSB1c3VhbGx5DQpzb21lIHN0cmluZ3MgdGhhdCBhcmUgZm9yIGludGVy
bmFsIHVzZSBvZiBEaWEgKG5vdCBpbnRlcmVzdGluZyBmb3IgdHJhbnNsYXRp
b24pLg0KDQpDdXJyZW50bHkgaXQgdHJpZXMgdG8gZ2V0IHRoZSBkaWFncmFt
IGVuY29kaW5nIGZyb20gdGhlIGZpcnN0IGxpbmUgKHRoZSB4bWwNCmRlY2xh
cmF0aW9uKSwgYW5kIGVsc2UgaXQgYXNzdW1lcyBVVEYtOCwgYW5kIGNyZWF0
ZXMgdGhlIC5wbyBjb250ZW5zIGluIHRoZQ0KSVNPLTg4NTktMSBjaGFyYWN0
ZXIgc2V0LiAgSXQgd291bGQgYmUgbmljZSBpZiBpdCBjb3VsZCByZWFkIHRo
ZSBjb21tYW5kIGxpbmUNCmVuY29kaW5nIG9wdGlvbnMsIGJ1dCBJIGhhdmVu
J3Qgd2F0Y2hlZCBob3cgdG8gZG8gaXQuDQoNCkl0IHVzZXMgTG9jYWxlOjpS
ZWNvZGUgZnJvbSB0aGUgcGFja2FnZSBsaWJpbnRsIHRvIHJlY29kZSB0aGUg
Y2hhcmFjdGVyDQpzZXRzLiAgWW91IGNhbiBnZXQgaXQgZnJvbSBodHRwOi8v
c2VhcmNoLmNwYW4ub3JnL35ndWlkby9saWJpbnRsLXBlcmwtMS4xMC8NClRo
ZXJlIG1heSBiZSBhIGJldHRlciBvciBtb3JlIHN0YW5kYXJkIG1vZHVsZSB0
byBkbyB0aGlzLCBidXQgSSBkaWRuJ3Qga25vdy4NCllvdSdyZSB3ZWxjb21l
IHRvIGltcHJvdmUgaXQuDQoNClRoaXMgbW9kdWxlIHNob3VsZCB3b3JrLCBh
bmQgaXQgc2hvdWxkbid0IGJyZWFrIGFueXRoaW5nLCBidXQgaXQgbmVlZHMg
bW9yZQ0KdGVzdGluZy4NCg0KPWhlYWQxIFNFRSBBTFNPDQoNCkw8cG80YSg3
KT4sIEw8TG9jYWxlOjpQbzRhOjpUcmFuc1RyYW5jdG9yKDNwbSk+LCBMPExv
Y2FsZTo6UG80YTo6UG9kKDNwbSk+Lg0KDQo9aGVhZDEgQVVUSE9SUw0KDQpK
b3JkaSBWaWxhbHRhIDxqdnByYXRAd2FuYWRvby5lcz4NCg0KPWhlYWQxIENP
UFlSSUdIVCBBTkQgTElDRU5TRQ0KDQpDb3B5cmlnaHQgKGMpIDIwMDQgYnkg
Sm9yZGkgVmlsYWx0YSAgPGp2cHJhdEB3YW5hZG9vLmVzPg0KDQpUaGlzIHBy
b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IG1heSByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yIG1vZGlmeSBpdA0KdW5kZXIgdGhlIHRlcm1zIG9mIEdQTCAo
c2VlIENPUFlJTkcgZmlsZSkuDQoNCj1jdXQNCg0KcGFja2FnZSBMb2NhbGU6
OlBvNGE6OkRpYTsNCg0KdXNlIDUuMDA2Ow0KdXNlIHN0cmljdDsNCnVzZSB3
YXJuaW5nczsNCg0KcmVxdWlyZSBFeHBvcnRlcjsNCnVzZSB2YXJzIHF3KEBJ
U0EgQEVYUE9SVCk7DQpASVNBID0gcXcoTG9jYWxlOjpQbzRhOjpUcmFuc1Ry
YWN0b3IpOw0KQEVYUE9SVCA9IHF3KG5ldyBpbml0aWFsaXplKTsNCg0KdXNl
IExvY2FsZTo6UG80YTo6VHJhbnNUcmFjdG9yOw0KdXNlIExvY2FsZTo6Z2V0
dGV4dCBxdyhnZXR0ZXh0KTsNCiNpcyB0aGVyZSBhbnkgYmV0dGVyIChvciBt
b3JlIHN0YW5kYXJkKSBwYWNrYWdlIHRoYW4gdGhpcyB0byByZWNvZGUgc3Ry
aW5ncz8NCnVzZSBMb2NhbGU6OlJlY29kZTsNCg0Kc3ViIGluaXRpYWxpemUg
e30NCg0Kc3ViIHJlYWQgew0KCW15ICgkc2VsZiwkZmlsZW5hbWUpPUBfOw0K
CXB1c2ggQHskc2VsZi0+e0RPQ1BPRH17aW5maWxlfX0sICRmaWxlbmFtZTsN
Cgkkc2VsZi0+TG9jYWxlOjpQbzRhOjpUcmFuc1RyYWN0b3I6OnJlYWQoJGZp
bGVuYW1lKTsNCn0NCg0Kc3ViIHBhcnNlIHsNCglteSAkc2VsZj1zaGlmdDsN
CgltYXAgeyRzZWxmLT5wYXJzZV9maWxlKCRfKX0gQHskc2VsZi0+e0RPQ1BP
RH17aW5maWxlfX07DQp9DQoNCiMNCiMgUGFyc2UgZmlsZSBhbmQgdHJhbnNs
YXRlIGl0DQojDQpzdWIgcGFyc2VfZmlsZSB7DQoJbXkgKCRzZWxmLCRmaWxl
bmFtZSk9QF87DQoJbXkgKCRsaW5lLCRyZWYpOw0KCW15ICgkcGFyYWdyYXBo
LCRyZWZlcmVuY2UpOyAjVGhlIHRleHQgdG8gYmUgdHJhbnNsYXRlZA0KDQoJ
I0luaXRpYWxpemluZyB0aGUgcmVjb2Rpbmcgb2JqZWN0cw0KCSMJZDJwOiBk
aWEgdG8gcG8NCgkjCXAyZDogcG8gdG8gZGlhDQoJbXkgKCRkMnAsJHAyZCwk
Y2hhcnNldF9kaWEsJGNoYXJzZXRfcG8pOw0KDQoJKCRsaW5lLCRyZWYpPSRz
ZWxmLT5zaGlmdGxpbmUoKTsNCglpZiAoZGVmaW5lZCgkbGluZSkpIHsNCgkJ
I1RyeSB0byBnZXQgdGhlIGRvY3VtZW50IGVuY29kaW5nIGZyb20gdGhlIHht
bCBoZWFkZXINCgkJaWYgKCAkbGluZSA9fiAvPFw/eG1sLio/ZW5jb2Rpbmc9
IiguKikiLipcPz4vICkgew0KCQkJJGNoYXJzZXRfZGlhID0gJDE7DQoJCX0g
ZWxzZSB7DQoJCQkjRGlhJ3MgZGVmYXVsdCBpcyBVVEYtOA0KCQkJJGNoYXJz
ZXRfZGlhID0gJ1VURi04JzsNCgkJCXdhcm4gZ2V0dGV4dCgicG80YTo6ZGlh
OiBDb3VsZG4ndCBmaW5kIGZpbGUgZW5jb2RpbmcuIEFzc3VtaW5nIFVURi04
LiIpLiJcbiI7DQoJCX0NCgkJI2hvdyB0byBnZXQgY29tbWFuZCBsaW5lIG9w
dGlvbnMgdG8gb3ZlcnJpZGUgaXQ/DQoJCSRjaGFyc2V0X3BvID0gJ0lTTy04
ODU5LTEnOw0KDQoJCSRkMnAgPSBMb2NhbGU6OlJlY29kZS0+bmV3KGZyb20g
PT4gJGNoYXJzZXRfZGlhLA0KCQkJCQl0byA9PiAkY2hhcnNldF9wbyk7DQoJ
CWRpZSAkZDJwLT5nZXRFcnJvciBpZiAkZDJwLT5nZXRFcnJvcjsNCg0KCQkk
cDJkID0gTG9jYWxlOjpSZWNvZGUtPm5ldyhmcm9tID0+ICRjaGFyc2V0X3Bv
LA0KCQkJCQl0byA9PiAkY2hhcnNldF9kaWEpOw0KCQlkaWUgJHAyZC0+Z2V0
RXJyb3IgaWYgJHAyZC0+Z2V0RXJyb3I7DQoJfQ0KCXdoaWxlIChkZWZpbmVk
KCRsaW5lKSkgew0KCQkjZG9uJ3QgdHJhbnNsYXRlIGFueSBzdHJpbmcgYmV0
d2VlbiA8ZGlhOmRpYWdyYW1kYXRhPiB0YWdzDQoJCWlmICggJGxpbmUgPX4g
L148ZGlhOmRpYWdyYW1kYXRhPiguKikvcyApIHsNCgkJCSRsaW5lID0gJDE7
DQoJCQkkc2VsZi0+cHVzaGxpbmUoIjxkaWE6ZGlhZ3JhbWRhdGE+Iik7DQoJ
CQl3aGlsZSAoICRsaW5lICF+IC88XC9kaWE6ZGlhZ3JhbWRhdGE+LyApIHsN
CgkJCQkkc2VsZi0+cHVzaGxpbmUoJGxpbmUpOw0KCQkJCSgkbGluZSwkcmVm
KT0kc2VsZi0+c2hpZnRsaW5lKCk7DQoJCQl9DQoJCQkkbGluZSA9fiAvKC4q
PzxcL2RpYTpkaWFncmFtZGF0YT4pKC4qKS9zOw0KCQkJJHNlbGYtPnB1c2hs
aW5lKCQxKTsNCgkJCSRsaW5lID0gJDI7DQoJCX0gZWxzZSB7DQoJCQlpZiAo
ICRsaW5lID1+IC8oLio/KSg8ZGlhOmRpYWdyYW1kYXRhPi4qKS9zICkgew0K
CQkJCSRzZWxmLT51bnNoaWZ0bGluZSgkMiwkcmVmKTsNCgkJCQkkbGluZSA9
ICQxOw0KCQkJfQ0KCQl9DQoNCgkJI2lmIGN1cnJlbnQgbGluZSBoYXMgYW4g
b3BlbmluZyA8ZGlhOnN0cmluZz4gdGFnLCB3ZSBnZXQNCgkJI2FsbCB0aGUg
cGFyYWdyYXBoIHRvIHRyYW5zbGF0ZSAocG9zaWJseSBmcm9tIG5leHQgbGlu
ZXMpDQoJCWlmICggJGxpbmUgPX4gLyguKj8pPGRpYTpzdHJpbmc+IyguKikv
cyApIHsNCgkJCSNwdXNoaW5nIHRoZSB0ZXh0IGJlZm9yZSB0aGUgdGFnIGFz
IGlzDQoJCQkkc2VsZi0+cHVzaGxpbmUoJDEpOw0KDQoJCQkjc2F2ZSB0aGUg
YmVnaW5uaW5nIG9mIHRoZSB0YWcgY29udGVucyBhbmQgaXRzIHBvc2l0aW9u
DQoJCQkkcGFyYWdyYXBoID0gJDI7DQoJCQkkcmVmZXJlbmNlID0gJHJlZjsN
Cg0KCQkJI2FwcGVuZCB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHRoZSBwYXJh
Z3JhcGggdW50aWwgd2UNCgkJCSNmaW5kIHRoZSBjbG9zaW5nIHRhZw0KCQkJ
d2hpbGUgKCAkcGFyYWdyYXBoICF+IC8uKiM8XC9kaWE6c3RyaW5nPi8gKSB7
DQoJCQkJKCRsaW5lLCRyZWYpPSRzZWxmLT5zaGlmdGxpbmUoKTsNCgkJCQkk
cGFyYWdyYXBoIC49ICRsaW5lOw0KCQkJfQ0KCQkJJHBhcmFncmFwaCA9fiAv
KC4qPykjPFwvZGlhOnN0cmluZz4oLiopL3M7DQoJCQkkcGFyYWdyYXBoID0g
JDE7DQoNCgkJCSNwdXQgdGhlIHRleHQgYWZ0ZXIgdGhlIGNsb3NpbmcgdGFn
IGJhY2sgdG8gdGhlIGlucHV0DQoJCQkjKHRoZXJlIGNvdWxkIGJlIG1vcmUg
dGhhbiBvbmUgc3RyaW5nIHRvIHRyYW5zbGF0ZSBvbg0KCQkJI3RoZSBzYW1l
IGxpbmUpDQoJCQkkc2VsZi0+dW5zaGlmdGxpbmUoJDIsJHJlZik7DQoNCgkJ
CSNyZWNvZGUgdGhlIHBhcmFncmFwaCB0byB0aGUgcG8gY2hhcmFjdGVyIHNl
dA0KCQkJJGQycC0+cmVjb2RlKCRwYXJhZ3JhcGgpOw0KCQkJJHBhcmFncmFw
aCA9ICRzZWxmLT50cmFuc2xhdGUoJHBhcmFncmFwaCwkcmVmZXJlbmNlLCI8
ZGlhOnN0cmluZz4iKTsNCgkJCSNyZWNvZGUgdGhlIHRyYW5zbGF0aW9uIHRv
IHRoZSBkaWEgY2hhcmFjdGVyIHNldA0KCQkJJHAyZC0+cmVjb2RlKCRwYXJh
Z3JhcGgpOw0KCQkJI2luc2VydHMgdHJhbnNsYXRpb24gdG8gb3V0cHV0DQoJ
CQkkc2VsZi0+cHVzaGxpbmUoIjxkaWE6c3RyaW5nPiMiLiRwYXJhZ3JhcGgu
IiM8L2RpYTpzdHJpbmc+Iik7DQoJCX0gZWxzZSB7DQoJCQkjZG9lc24ndCBo
YXZlIHRleHQgdG8gdHJhbnNsYXRlOiBwdXNoIGxpbmUgYXMgaXMNCgkJCSRz
ZWxmLT5wdXNobGluZSgkbGluZSk7DQoJCX0NCg0KCQkjZ2V0IG5leHQgbGlu
ZQ0KCQkoJGxpbmUsJHJlZik9JHNlbGYtPnNoaWZ0bGluZSgpOw0KCX0NCn0N
Cg==

---1463811584-569916405-1085160392=:10688--