On 24/08/10 22:47, Maciej Jaros wrote: > At 2010-08-24 15:44, lampak wrote: >> On 24/08/10 15:25, Tgr wrote: >>> lampak<llampak<at> gmail.com> writes: >>> >>>> Hi. I'm working on a script which edits a page, adds a section to it and >>>> then redirects to this page. >>>> >>>> It would be nice if it went straight to the newly-created section. So I >>>> need to create a link with # in it. >>>> >>>> The problem appears when the title of the section contains some >>>> diacritics. For example, link to "bażant królewski" looks like >>>> "Ba.C5.BCant_kr.C3.B3lewski". >>>> >>>> How can I generate in JavaScript such a link which would be identical to >>>> the one generated by MediaWiki? Has somebody written such a function? Or >>>> at least, do you know where it is done in MediaWiki php code? >>> It is pretty simple as long as there is no wikitext or html in the title: >>> convert it to urlencoded UTF-8 (encodeURIComponent does that), replace >>> percent >>> signs with dots, replace spaces with underscores. >> I have tried encodeURIComponent before. Bażant królewski becomes >> Bażant_królewski. Diacritics are not converted. At least not under Firefox. > For basic examples you could use this: > var txt = 'Zażółć'; > txt = encodeURIComponent(encodeURI(txt).replace(/%/g, > '.')).replace(/%/g, '.'); > > Not sure if encodeURI was in old IE (if you care ;-)), but it works with > new browsers. > > Note that this will not work if the section contains mark up code. But > as I understood you are not looking for something bulletproof. Great thanks :) I just added additional replaces to change : and _ back and it works :)
lampak _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
