кодировать URL, а не кодировать - PullRequest
1 голос
/ 25 августа 2010

Я работаю с шаблоном в Moveable Type и хотел бы сделать следующее:

<a href="http://twitter.com/share?url=<$mt:EntryPermalink encode_url="1" $>">Twitter</a>

Все это работает, но я боюсь, что текущая ссылка или в какой-то момент, даже если я использую тэг title mt, может оказаться неправильной для адресной строки браузера. Я думал, что вы могли бы использовать encode_url = "1", но он не для кодирования моих заголовков или ссылок. Например: у меня есть заголовок с пробелами, а в результирующем коде все еще есть пробелы. Также для приведенного выше примера не следует ли кодировать http: // специальным образом? Потому что он этого не делает.

Я что-то здесь не так делаю?

1 Ответ

1 голос
/ 27 сентября 2010

Я только что проверил этот код, и он выводится правильно для меня.Я использую MT 4.34.Я использовал следующий шаблон кода в шаблоне индекса:

<mt:Var name="url" value="http://google.com/hello I have spaces">
<mt:Entries lastn="1">
    Permalink: <mt:EntryPermalink encode_url="1"><br />
    Fake URL: <mt:Var name="url" encode_url="1">
</mt:Entries>

И я получил следующий вывод:

Permalink: http%3A%2F%2Fwww.capndesign.com%2Farchives%2F2010%2F09%2Fthe_big_picture_scenes_from_china.php
Fake URL: http%3A%2F%2Fgoogle.com%2Fhello%20I%20have%20spaces

Так что я бы подтвердил, что вы используете текущую версию MT(4.34 или 5.x), который поддерживает этот модификатор, потому что пробелы и специальные символы должны определенно заменяться сущностями HTML.Я также попробовал бы код, который я предоставил выше, чтобы увидеть, получаете ли вы тот же вывод (за исключением того, что ваша постоянная ссылка, очевидно, будет отличаться).

...