Автор Гілка: Форматування тексту  (Прочитано 5478 раз)

Відсутній illia

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
  • користувач linux з 2007 року
Я юрист. Часом бавлюся з програмуванням на С. Прочитав Кернігана та Рітчі друге видання.
По роботі досить часто тягну закони та інші нормативно правові акти з http://zakon.rada.gov.ua
Оформлення тексту на сайті просто жахливе. Зараз я дію так:
  • 1. Ручками витягую текст з сайту;
  • 2. Пропускаю його через написану мною просту програму, що видаляє зайві пробіли та відступи нового рядка.
Хочу спробувати автоматично створювати зміст документу, виділяти статті та розділи. Я так розумію, що для цього потрібно переводити звичайний текст в якийсь формат.
У який формат краще переводити текст законів, щоб було можливо під час читання зручно переглядати їх зміст, змінювати шрифт, керувати виглядом виділених елементів (статей та розділів), здійснювати звичайний пошук у тексті (я так розумію, що це доступно у всіх переглядачах)?
Як це правильно реалізувати у своїй програмі.
Ідеалом є також і створення системи що буде автоматично витягувати текст з сайту, але все з часом.

Про правила, що діють на сайті знаю:http://zakon.rada.gov.ua/cgi-bin/laws/main.cgi?user=rules

Відсутній yurchor

  • Видавець
  • *******
  • дописів: 3636
  • Карма: +3/-0
  • Grateful for our Iron Lung
    • Вікі користувачів KDE
Re: Форматування тексту
« Відповідей #1 : 2011-08-05 10:50:47 »
Я, як найкриволапіший програміст цього форуму  ;), написав би якийсь скрипт на Perl або Python для переробки HTML->HTML з паралельним висмикуванням тексту curl або wget.

Теоретично, все вирішується написанням xslt, але це мистецтво втрачено років п’ять тому (з’ясувалося в процесі нещодавніх розслідувань процесу перетворення документації KDE), до того ж текст верстався ..., тому мови про первинне форматування, фактично, не може бути.
Try to reach you before winter comes
Always a place for you in my heart
You're not alone
All used up
I'd give anything to talk to you

Відсутній illia

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
  • користувач linux з 2007 року
Re: Форматування тексту
« Відповідей #2 : 2011-08-05 11:47:14 »
Цитата
до того ж текст верстався ..., тому мови про первинне форматування, фактично, не може бути.
Ключеві слова: Стаття, розділ... (при бажанні можу виділити й список змін що обрамляється зазвичай {}) Написані усюди однаково. При пошуку на сторінці сайту чи в скопійованому тексті в gedit завжди спрацьовують. Тому автоматично створити зміст документу я вважаю, що зможу. Залишається питання, як це діло оформити по зручніше.
Це скоріше забавка ніж, щось серйозне. Тому тільки С. ;)

Відсутній Михайло Даниленко

  • Адміністратор ЩОДО
  • Літератор
  • *****
  • дописів: 1262
  • Карма: +0/-0
  • [Debian Stretch]
Re: Форматування тексту
« Відповідей #3 : 2011-08-05 12:14:48 »
Це скоріше забавка ніж, щось серйозне. Тому тільки С. ;)
Любить пан витрачати час o_O
Я б рекомендував перл (особливо якщо це не щось серйозне, де потрібна максимальна швидкість) плюс html (або щось, з чого його можна генерувати) + css (для зміни оформлення) - швидко, гнучко, зручно. Наприклад, я, для генерації документації бібліотек використовую скрипт на 200 рядків коду (насправді працює десь 50), що проходиться по сирцях програми, збирає інформацію, і на її основі генерує markdown, з якого потім через ikiwiki генерується html.
P.S. Off-topic:
Так, я знаю, для цього є doxygen, але по-перше, там більше писати, щоб отримати потрібне форматування, по-друге це монстр
$ op install doxygen
...
Необхідно завантажити 0 B/453 MB архівів.
After this operation, 751 MB of additional disk space will be used.
Бажаєте продовжити [Т/н]? n
Перервано.
« Змінено: 2011-08-05 12:24:28 від ISBear »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Форматування тексту
« Відповідей #4 : 2011-08-05 13:18:38 »
Напевно найкраще конвертувати у формат FB2.  (FictionBook)

Його можна конвертувати у різні формати Калібром (calibre) або читати різними читалками.
[Fedora Linux]

Відсутній illia

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
  • користувач linux з 2007 року
Re: Форматування тексту
« Відповідей #5 : 2011-08-06 10:37:02 »
При роботі з законами бажано, щоб була наявна можливість переглядати зміст у панелі з права (чи де там кому зручно). FBReader у моїй Ubuntu такої можливості не надає хоча текст там виглядає досить непогано та і можливість використання бібліотеки з зручним пошуком також на користь формату fb2.
FBReader розповсюджується під GPL3. Інформацію про ліцензію на формат fb2 я не знайшов.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3820
  • Карма: +11/-0
  • Програміст
Re: Форматування тексту
« Відповідей #6 : 2011-08-06 10:55:59 »
Подивіться калібром — там є така можливість.
[Fedora Linux]

Відсутній illia

  • Новачок
  • *
  • дописів: 33
  • Карма: +0/-0
  • користувач linux з 2007 року
Re: Форматування тексту
« Відповідей #7 : 2011-08-09 10:42:55 »
Як зроблю щось цікаве, то відпишусь в темі. Інформацію про ліцензію на формат fb2 я так і не знайшов.

Відсутній BM

  • Кореспондент
  • ***
  • дописів: 162
  • Карма: +0/-0
  • SUSE Linux Products GmbH
Re: Форматування тексту
« Відповідей #8 : 2011-08-19 15:31:13 »
Я юрист.
...
По роботі досить часто тягну закони та інші нормативно правові акти з http://zakon.rada.gov.ua
...
У який формат краще переводити текст законів, щоб було можливо під час читання зручно переглядати їх зміст, змінювати шрифт, керувати виглядом виділених елементів (статей та розділів), здійснювати звичайний пошук у тексті (я так розумію, що це доступно у всіх переглядачах)?

Під час читання змінювати шрифт? WTF! Мені не дуже зрозуміло що ви хочете. Поки що ви хочете "конячку поні"...  :-?

Ідеалом є також і створення системи що буде автоматично витягувати текст з сайту, але все з часом.

А ось тут зрозуміло. Отже якщо досьогодні спромоглися незненавидіти ІТ забавками на С, тоді Java допоможе тут як по маслу (приклад використання у пункті №3):
1. sudo zypper ar http://download.opensuse.org/repositories/Java:/base/openSUSE_11.4/ java-base
2. sudo zypper in nekohtml
3. http://nekohtml.sourceforge.net/usage.html

Програмку з одного класу скомпілювати в JAR, всунути десь в крон і буде воно вам витягувати і пхати куди вже там треба.


Hope this helps.

P.S. Хоча... з українським законодавством "cat /dev/random > рішення-суду.txt" повністю вистачить. :-)
« Змінено: 2011-08-19 15:39:36 від BM »