Лупайте сю скалу...
Іван Франко


Wed 25 of Nov, 2009 [06:29 UTC]

Search Wiki PageName
Search
in:
Пані Маєш: <<Уроки>>
Тут зібрана різноманітна інформація з тих областей, які мене цікавлять. В основному це буде так чи інакше пов'язане моєю роботою (я все ще працюю системним адміністратором Юнікса) чи загальними інтересами, як то українська мова, література. Або ж з місцями мого перебування -- Київ, Токіо. Але немає ґарантії, що тут не з'явиться іще щось цікавеньке (як на мою особисту думку).

mozex і UTF-8

print



Чудове розширення для Мозили mozex, дозволяє робити надзвичайно багато — переглядати вихідні тексти сторінки HTML, редагувати текстові поля у зовнішньому редакторі (Emacs, VI) — мало до цих пір одну суттєву ваду: працювало виключно з англійською мовою. Китайці зробили те, що було потрібно українцям — додали пітримку Юнікоду. Ця сторінка вже написана в новому mozex'і з підтримкою Юнікоду, написана у Emacs'і і у vi.

Джерело знань

  1. Ось на цій сторінці (японська мова) можна подивитися і при бажанні зрозуміти, що треба зробити: http://www.cas.cmc.osaka-u.ac.jp/~paoon/OriginalDoc/
  2. Сторінка японською посилається на сторіку китайською http://plasma.z6i.org/archives/003171.html з якої теж при бажанні можна витягти деяку інформацію, а саме текст патчу для JavaScript'у MOZEX'у.
  3. Я робив свої зміни в Мозилі, де вже був встановлений mozex. Сама установка розширення mozex не описана, ще досить тривіальний процес і залишається домашнім завданням читачеві.

Внизу до сторінки долучені два файли: текст латки для mozex.js і сам архів mozex.jar


Далі йде просто опис того, що я зробив трохи зрозумівши, що вимагається:
(нагору)

Процес

Скопіювати jar файл mozex'у кудись у безпечне місце і розархівувати його:

JAR файл — це звичайний ZIP архів. Його розархівація — не велика наука.
 $ unzip mozex.jar

Зміст файлу mozex.jar
$ unzip -l mozex.jar 
 Archive:  mozex.jar
 rchive:  mozex.jar
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  09-21-03 18:20   content/
        0  12-19-05 15:58   content/mozex/
     2703  09-03-03 16:42   content/mozex/contents.rdf
    32350  12-19-05 15:56   content/mozex/mozex.js
     2761  09-21-03 15:03   content/mozex/mozex.xul
     8504  12-13-02 20:29   content/mozex/md5.js
     1154  06-15-03 02:47   content/mozex/mozexPrefOverlay.xul
     5430  09-21-03 15:04   content/mozex/pref-mozex.js
     6895  09-21-03 15:03   content/mozex/pref-mozex.xul
     5717  09-21-03 15:03   content/mozex/mozexPrefDialog.xul
    32348  12-19-05 15:45   content/mozex/mozex.js~
 --------                   -------
    97862                   11 files


(нагору)

Відредагувати файл content/mozex.js

Файл можна або відредагувати вручну або застосувати команду patch
Текст латки
    --- content/mozex/mozex.js      2005-12-19 15:56:35.000000000 +0900
    +++ content.new/mozex/mozex.js  2003-09-21 17:14:58.000000000 +0900
    @@ -864,17 +864,12 @@
		 mozexError("cannot create temporary file '" + filename + "': " + e); 
		 return false;
	     }
    -        var uc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
    -          createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
    -        uc.charset = "UTF-8";
    -        var data_stream = uc.ConvertFromUnicode( data );
    -
    +       
	     var stream = Components.classes["@mozilla.org/network/file-output-stream;1"].
			  createInstance(Components.interfaces.nsIFileOutputStream);
	     var PR_WRONLY = 0x02;
	     stream.init(file, PR_WRONLY, 0600, 0);
    -        //stream.write(data, data.length);
    -        stream.write(data_stream, data_stream.length);
    +        stream.write(data, data.length);
	     stream.flush()
	     stream.close();
	 } 
    @@ -903,12 +898,7 @@
		 var data = sis.read(sis.available());
		 sis.close();
		 is.close();
    -//           return data;
    -        var uc = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"].
    -          createInstance(Components.interfaces.nsIScriptableUnicodeConverter);
    -        uc.charset = "UTF-8";
    -            return uc.ConvertToUnicode( data );
    -
    +            return data;
	     }
	     else {
		 mozexError("temporary file '" + filename + "' does not exist or is not readable");


(нагору)

Заархівувати mozex.jar назад, скопіювати його туди, де він має бути і запустити Мозилу:

Встановити файл
    $ zip  -r mozex.jar  content
    $ cp mozex.jar ~/.mozilla/default/zhps3gyn.slt/chrome/mozex.jar


(нагору)

Використання

Запуск VI з mozex


Щоб не мучитися від того, що я не знаю з якими шрифтами в мене запускається VI, я це явним чином вказую в командному рядку mozex'а:
Командний рядок для VI
/usr/bin/X11/xterm -fn  -misc-fixed-medium-r-semicondensed--0-0-75-75-c-0-iso10646-1 -T mozex::edit-text::VI -exec vi %t


(нагору)

Запуск emacs'а не складніший за VI

Декому він здасться навіть простішим
Командний рядок для EMAZCS
/usr/bin/emacs %t





List of attached files
  name desc uploaded size >
1 : 15 icon mozex.diff diff файл для mozex.js Mon 19 of Dec, 2005 [07:49 UTC] by dmytro 1.60 Kb 117
2 : 14 icon mozex.jar JavaScript фрхів mozex.jar Mon 19 of Dec, 2005 [07:49 UTC] by dmytro 23.76 Kb 133

This is Tiki v1.8.5 (CVS) -Polaris- © 2002–2004 by the Tiki community     Created by: dmytro last modification: Monday 19 of December, 2005 [08:10:03 UTC] by dmytro





дмитро ковальов