Типограф для uCoz

javascript, типограф, форматирование, текст, скрипт, решение

В системе uCoz появилось достаточно много блогов. Половина из них уже заявила о себе в «Ю.Блогах», все они пишут в неделю хотябы по одному посту. Но смотря на многие посты, видя, что они не абсолютно не отформатированы, мне хочется закрыть страницу блога, ибо читать неприятно.

«Типограф для uCoz» призван изменить ситуацию. Всего одним нажатием на кнопку, он отформатирует текст. Идея-креэтором была еще студия Артемия Лебедева. Я решил сделать похожее, но только на uCoz.
Возможности

  • Заменяет «дефисо-минус», использованный в качестве тире на традиционное длинное тире;
  • Заменяет «клавиатурные» кавычки на «русские»;
  • Если после точки, запятой, любых других знаков нет пробела, автоматически вставляет его;
  • Ваши предложения принимаются.

Установка
Для блога. Переходим в «ДизайнУправление дизайномБлогСтраница архива материалов», после $BODY$ вставляем код:
Code
<script>
$('#doSmbBt').after('<input type="button" value="Оттипографить" onclick="typograf()">')
function typograf(){
var a=document.getElementById('message');
a.value=a.value.replace(/ - /g,' — ');
a.value=a.value.replace(/'/g,''');
a.value=a.value.replace(/([.,!?])/g,'$1 ');
a.value=a.value.replace(/"(.+)"/g,'«$1»');
}
</script>

Для новостей. В «ДизайнУправление дизайномНовости сайтаСтраница архива материалов». На форуме, «Форма добавления сообщения».
Code
<?if($PAGE_ID$='add' || $PAGE_ID$='edit')?>
<script>
$('#doSmbBt').after('<input type="button" value="Оттипографить" onclick="typograf()">')
function typograf(){
var a=document.getElementById('message');
a.value=a.value.replace(/ - /g,' — ');
a.value=a.value.replace(/'/g,''');
a.value=a.value.replace(/([.,!?])/g,'$1 ');
a.value=a.value.replace(/"(.+)"/g,'«$1»');
}
</script>
<?else?><?endif?>

Приветствуются идеи, дополнения.Кто сможет пожертвовать инвайтик на Хабрахабр?Пост был написан с использованием типографа.UPD: версия пользователя uWeb:

Code
<script>
(function () {
  var a = document.getElementById('brief'),
  b = document.getElementById('message');
  c = function (d) {
  return d.replace(/ - /g, ' — ').replace(/'/g, "'").replace(/([.,!?])/g, '$1 ').replace(/"(.+)"/g, '«$1»')
  },
  document.getElementById('nwF7').onclick = function () {
  a.value = c(a.value),
  b.value = c(b.value),
  document.getElementById('doSmbBt').click()
  }
})();
</script>
Рассказать в
Подписаться по RSS
Дата: 06.09.2010 • Теги:

javascript, типограф, форматирование, текст, скрипт, решение

+1
Материалы этой категории:
    Не найдено.
Просмотров: 1563, комментариев: 22
А возможен ли принудительный типограф? Т.е. чтобы при кнопки добавления поста он сам типографировал всё?
11.04.2010, 22:31
или нет?
#2
Да, можно. klimenko
или нет?
#22
@klimenko и как? UnderShot
или нет?
uWeb: ты всю контору поламал)
11.04.2010, 23:33
или нет?
#8
Fixed. UnderShot
или нет?
#4: vladko95
Придраться мне в коде к нечему, так как я в JS не силен, но идея очень хорошая.
11.04.2010, 23:41
или нет?
#5: USF
предлагаю доработать допустим выделением цифр(тогда их лучше видно), и еще чтобы после точки буквы заменялись в UpperCase, а то часто забывают))
12.04.2010, 00:02
или нет?
#6: uWeb
o__O
12.04.2010, 00:08
или нет?
#7: almlex
1. Не экранируется содержимое тегов <pre>, <code> и [code]
2. Не экранируются кавычки у аттрибутов html-тегов.
3. Конструкция "бла-бла "ля-ля"" превратится в «бла-бла "ля-ля"»
4. С каждым выполнением функции пробелов после точки становится всё больше.
5. 5^2 не заменяется на 5²
6. 2*2 не заменяется на 2×2
7. Если написать «Кто—то», типограф не заменит тире на дефис.

К тому же, ошибка в синтаксисе, и для модуля «новости» не правильно подобран id.

Вывод: этот типограф — говнецо

PS. Не существует «дефисо-минуса». Есть дефис - и минус –, просто в некоторых шрифтах они выглядят одинаково.

12.04.2010, 13:26
или нет?
#9
1, 5-7. Добавлю.
2-4. Изменю.
PS. Дефисо-минус: http://habrahabr.ru/blogs/typography/20588/
PPS: спасибо за указание ошибок. UnderShot
или нет?
#10: almlex
Чуть не забыл. Бери и адаптируй — http://www.erlang.com.ru/devanagari, а то велосипед изобретать пошёл.
12.04.2010, 14:58
или нет?
#11: WRC
UnderShot: а не короче будет написать a.value=a.value.replace(/ - /g,' — ').replace(/'/g,''').replace(/([.,!?])/g,'$1 ').replace(/"(.+)"/g,'«$1»');
????
12.04.2010, 15:21
или нет?
#14
В переделке я так и сделаю. Спасибо. UnderShot
или нет?
Специальные символы — http://undershot.ru/portfolio/test/symbols.html
12.04.2010, 20:43
или нет?
#13
Ты предлогаешь все это вставить в скрипт? UnderShot
или нет?
#18
Не всё, а некоторые символы. Какие — сам решай. Shutich
или нет?
#19
Так и сделал UnderShot
или нет?
#15: almlex
WRC, ну тогда уж и

function typograf(a){
a=document.getElementById('message');

13.04.2010, 10:05
или нет?
#16: WRC
almlex: да тогда уж зачем тут ваще jq впихивать... можно и без него сделать короче данного кода... да за место кнопки оттипографить можно использовать обычную кнопку добавления.
14.04.2010, 07:05
или нет?
#17: WRC
UnderShot: да кстате... смотрю версия шаблона №2, а кривит хуже старого... http://s08.radikal.ru/i181/1004/06/d0858a0bbc3d.jpg
14.04.2010, 07:11
или нет?
#21
Вроде исправлено. UnderShot
или нет?
#20: almlex
WRC, уж не знаю где вы там jq увидели...
15.04.2010, 23:57
или нет?
Комментируешь?

Ctrl+↵