Как я
уже писал автору ljupdate, после того, как я начал использовать ljupdate, единственное, чего мне не хватало, это возможности отвечать на ЖЖ комментарии в Емаксе.
Я посмотрел, как это сделано в Semagic, и обнаружил, что там это делается через ж... ужасный хак. В браузере на ссылке, ведущей на добавление комментария, из меню запускается Semagic. Дальше в Semagic пишется комментарий, и после нажатия на кнопку Post, этот комментарий автоматически копируется в поля формы в браузере, после чего опять нужно нажать на кнопку Post, только на этот раз уже в браузере.
Увидев это, я сразу вспомнил, что уже видел что-то подобное в Firefox. Соответствующее расширение называется mozex. Я его пару лет назад использовал в Mozilla, но оно перестало работать в Firefox. Теперь я нашел новую версию, настроил, и все прекрасно заработало.
Итак, что нужно сделать для того, чтобы писать ЖЖ комментарии в Емаксе:
- Идем на сайт mozex.mozdev.org, оттуда идем дальше по ссылке на http://www.gatsby.ucl.ac.uk/~iam23/code/mozex, и на этой странице кликаем на ссылку с текстом "Install a UTF-8 forcing, Firefox 1.5 compatible version of Mozex." Эта ссылка ведёт на файл mozex_utf8-1.071.xpi, т.е. mozex с поддержкой Unicode.
- После установки mozex и перезагрузки браузера, открываем Tools->Extension и Preferences для mozex. В настройках в поле Textareas пишем `/full-path/emacsclient %t', где full-path - полный путь к emacsclient. Если используется Емакс из CVS, то и путь тоже должен быть к emacsclient из CVS, т.е. из подкаталога lib-src, т.к. emacsclient из CVS не совместим с более старыми версиями.
- В свой .emacs добавляем (и запускаем) такой код:
(server-start)
(defun my-lj-reply-visit ()
(when (string-match "^mozex\\.textarea"
(file-name-nondirectory (buffer-file-name)))
(recode-region (point-min) (point-max) 'utf-8 'koi8)
(set-buffer-file-coding-system 'utf-8)))
(add-hook 'server-visit-hook 'my-lj-reply-visit)
(defun my-lj-reply-switch ()
(when (string-match "^mozex\\.textarea"
(file-name-nondirectory (buffer-file-name)))
(html-mode)))
(add-hook 'server-switch-hook 'my-lj-reply-switch)
При желании берём у akshaal код для добавления времени написания комментария и вешаем его на хуки server-visit-hook и server-done-hook. - Теперь для использования всего этого хозяйства, в пустом поле для ответа в браузере из popup-меню выбираем mozex->Edit Textarea, и переключааемся в Емакс. Пишем ответ и нажимаем `C-x #'. Переключаемся обратно в Firefox, и кликаем левой кнопкой мышки в Textarea. Написанный в Емаксе текст появляется в браузере. Нажимаем кнопку Post, и вуаля!
User-Agent: Emacs-ljupdate/3.9.0 Emacs/22.0 (i686-pc-linux-gnu)