Данный форум существует в настоящий момент, как памятник истории развития движения сторонников КОБ и хранилище значительного объёма сопутствующей информации. Функцию площадки общения форум не исполняет. Регистрация новых пользователей запрещена.
На случай, если Вам по какой-либо причине понадобится зарегистрироваться на форуме, пишите в телеграм @Sirin77
|
| Конкретная работа. Предложения. Придумал - предложил - сделал. |
01.12.2011, 21:59
|
#21
|
|
Команда сайта
Регистрация: 21.10.2008
Адрес: Москва
|
Кстати fb2 большинства работ уже или есть или в скором времени будет.
Может в этом направлении поковырять (т.е. в базу заносить)?
В этом направлении koldun работает - он ручками конвертирует, т.е. высококачественно.
Я ему сделал доступ, будет помогать ВСЕ РАБОТЫ ВП СССР доводить до ума.
|
|
|
01.12.2011, 22:31
|
#22
|
|
Команда сайта
Регистрация: 14.05.2009
Адрес: Москва
|
Цитата:
Сообщение от Sirin
Кстати fb2 большинства работ уже или есть или в скором времени будет.
Может в этом направлении поковырять (т.е. в базу заносить)?
В этом направлении koldun работает - он ручками конвертирует, т.е. высококачественно.
Я ему сделал доступ, будет помогать ВСЕ РАБОТЫ ВП СССР доводить до ума.
|
Я вот не понимаю - fb2 - это по сути XML, можно ли его распарсить в нечто адекватное для базы?
Можно!
Но только это вопрос на столько же принципиальный, как - а можно ли html распарсить? Можно! А можно ли текстовик распарсить? Можно! А пожно ли pdf распарсить? Можно!..
То есть вопрос то по сути не о том, как это в базу загнать - с некоторой долей автоматизации загнать получится все. Вопрос в том, как это в базе организовать, как хранить, как делать поиск...
|
|
|
01.12.2011, 22:35
|
#23
|
|
Команда сайта
Регистрация: 21.10.2008
Адрес: Москва
|
Цитата:
FB2-файл - это файл XML
FB2-документ является файлом в формате XML.
XML (англ. Extensible Markup Language — расширяемый язык разметки; произносится [икс-эм-э́л]) — рекомендованный Консорциумом Всемирной паутины язык разметки, фактически представляющий из себя свод общих синтаксических правил. XML предназначен для хранения структурированных данных, для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML), иногда называемых словарями.
|
Вроде бы то, что нужно?..
|
|
|
01.12.2011, 22:38
|
#24
|
|
Команда сайта
Регистрация: 14.05.2009
Адрес: Москва
|
блин
|
|
|
02.12.2011, 00:27
|
#25
|
|
Команда сайта
Регистрация: 21.10.2008
Адрес: Москва
|
|
|
|
02.12.2011, 07:34
|
#26
|
|
Команда сайта
Регистрация: 21.09.2009
Адрес: С Бажен
|
Переводить в fb2 достаточно емкая работа, даже если использовать специальные программы, все равно надо будет руками доводить до ума. Особенно это касается сносок, я бы сказал из-за них +50% работы.
|
|
|
02.12.2011, 09:17
|
#27
|
|
Команда сайта
Регистрация: 14.05.2009
Адрес: Москва
|
Должно быть МВ самая большоая из работ ВП СССР... Всего - 1 миллион символов, в среднем на главу 35 тысяч символов.
Полнотекстовый поиск применяется максимум для полей TEXT, а это 65 тысяч символов.
На первый взгляд все подойдет, но блин - мало ли...
Думаю вот что хранить все таки целесообразнее главами... То есть с максимальной точностью детализации до глав.
То есть вот предложение - делаю таблицы: одну линейную и одну Nested Sets:
Код HTML:
.. (level - 0) Источник
.... (level - 1) Категория
...... (level - 2) Книги (+ связь с автором)
........ (level - 3) Главы
.......... (level - 4) Подразделы
Поиск по Книгам, Главам и Подразделам. По Книгам для простых ТМ, и более детально для работ вроде МВ и ОС.
Таким образом - если что-либо найдено в каком-либо подразделе - мы автоматом получаем цепочку: подраздел > глава > книга (автор) > категория.
На экран выводим:
- навигатор по оглавлению,
- подраздел или главу в зависимости от того, где найдено,
- выделяем найденный фрагмент.
Таким образом у нас получается точная маска поиска (как хотел Сирин), что-то вроде: книга > глава > подраздел = 24.17.3. Далее стоит задача - как довести степень детализации до абзаца.
При парсинге текста в базу для каждой сущности (книга, глава, подраздел) содержащей текст - вставляем периоды, содержащие информацию о нумеровании абзацев, например 47 - 250 - относительно количества абзацев книги в целом. Получаем маску вида 24.17.3.99.
Сноски храним вместе с сущностями, содержащими текст, то есть выводя главу - выводим все сноски в ней использованные и показываем их как тултипы.
Вот, только такое предложение придумал.
Да, tinymce прекрасно интерпретирует в HTML текст, вставленный в него из MS Word.
http://www.tinymce.com/tryit/full.php - нажимаем кнопку "вставить из MS Word", вставляем главу из МВ, нажимаем кнопку "html" - смотрим что получилось на выходе.
Получившийся код вполне подойдет для перепарса в BBCode и последующего хранения.
... ... ...
Что делать?
1. Ну базу то сделать не тяжело.
2. Но - надо сделать еще какую-нибудь страничку, на которой постараться максимально автоматизировать перевод материалов в базу.
Этим и займусь.
... ... ...
С таким подходом мы получаем каталогизацию, которая позволяет хранить как книги, так и журналы, в том числе и "Текущие моменты", а так же отдельные статьи.
Парсинг будет авто-ручной. Но от этого вероятно уйти все равно не получится.
Что-то вроде:
1. Создается категория (если надо),
2. Создается автор (если надо),
3. Создается книга с оглавлением (по оглавлению автоматом формируются главы и подразделы),
4. Главы и подразделы наполняются содержимым (методом copy & paste из MS Word в TinyMCE).
Если книга не содержит каких-либо сложных стилистических моментов, то на добавление 1 книги будет уходить минут 5 (книги вроде МВ). 5 человек соответственно за 5 минут добавят 5 книг.
И вот еще одна мысль пришла - в принципе категории не обязательно ограничивать одним уровнем, можно еще и подкатегории сделать и подразделы подкатегорий! Например:
Код HTML:
.... (level - 1) Категория (История)
...... (level - 2) Подкатегория (Военная история)
...... (level - 2) Подкатегория (Древняя история)
...... (level - 2) Подкатегория (История КПСС)
Последний раз редактировалось Январь; 02.12.2011 в 10:22
|
|
|
02.12.2011, 10:50
|
#28
|
|
Команда сайта
Регистрация: 14.05.2009
Адрес: Москва
|
Проработка элементов стилизации книги.
Сразу лучше составить список стилизованных элементов, которые могут быть в книге.
Например:
- Жирный шрифт,
- Курсив,
- indent, outdent (внешний и внутренний отступы),
- Цитата,
- Таблица,
- Картинка,
- Видео (при печати преобразуется в ссылку на видео).
Ну и т.д.
Чтобы просто потом за голову не хвататься и не делать в порядке под грифом "срочно"...
|
|
|
02.12.2011, 13:27
|
#29
|
|
Команда сайта
Регистрация: 30.10.2008
Адрес: Подмосковие
|
Цитата:
Сообщение от Январь
Таки опять вопрос - формулы как выводить?
|
Для этого есть язык формул Latex. Например, вводим
Цитата:
|
[latex size="1"]\left\{\begin{matrix} {X}_{1}={a}_{11}{X}_{1}+{a}_{12}{X}_{2}+ . . . +{a}_{1n}{X}_{n}+{F}_{1} \\ {X}_{2}={a}_{21}{X}_{1}+{a}_{22}{X}_{2}+ . . . +{a}_{2n}{X}_{n}+{F}_{2} \\ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . \\ {X}_{n}={a}_{n1}{X}_{1}+{a}_{n2}{X}_{2}+ . . . +{a}_{nn}{X}_{n}+{F}_{n} \end{matrix}\right. (1)[/latex]
|
Получаем:
Пример - О контрольных параметрах макроэкономики
Или так:
Цитата:
|
[latex size="2"]{K}_{i}=\frac{{s}_{i}+(p/100)\times \sum_{j=1}^{i-1}{K}_{j}}{1-(p/100)}=\frac{{s}_{i}}{1-(p/100)}+\frac{(p/100)}{1-(p/100)}\sum_{j=1}^{i-1}{K}_{j}[/latex]
|
|
|
|
02.12.2011, 13:54
|
#30
|
|
Команда сайта
Регистрация: 14.05.2009
Адрес: Москва
|
Ничего не понял, но это и не первый вопрос правда.
И так, мы храним в базе формулу: [latex size="1"]{K}_{i}=\frac{{s}_{i}+(p/100)\times \sum_{j=1}^{i-1}{K}_{j}}{1-(p/100)}=\frac{{s}_{i}}{1-(p/100)}+\frac{(p/100)}{1-(p/100)}\sum_{j=1}^{i-1}{K}_{j}[/latex] - при выводе на сайт ее надо преобразовать в картинку. Что именно совершает это преобразование? И на каком этапе?
...
Таблицы (типа таво):
Публикации:
Код HTML:
CREATE TABLE `jx_BookBase` (
`node` bigint(20) unsigned NOT NULL auto_increment,
`parent` bigint(20) unsigned NOT NULL default '0',
`level` bigint(20) unsigned NOT NULL default '0',
`lkey` bigint(20) unsigned NOT NULL default '0',
`rkey` bigint(20) unsigned NOT NULL default '0',
`hide` enum('no','yes') NOT NULL default 'no',
`create` bigint(20) NOT NULL default '0',
`modify` bigint(20) NOT NULL default '0',
`type` varchar(16) NOT NULL default 'undefined',
`author` bigint(20) unsigned NOT NULL default '0',
`name` text,
`text` text,
`chapter` text,
`A` bigint(20) NOT NULL default '0',
`B` bigint(20) NOT NULL default '0',
`signature` text,
PRIMARY KEY (`node`),
UNIQUE KEY `Unique` (`lkey`,`rkey`,`node`,`parent`,`level`),
UNIQUE KEY `Unique (l,r)` (`lkey`,`rkey`),
KEY `Node (parent)` (`parent`),
KEY `Node (level)` (`level`),
KEY `Node (lkey)` (`lkey`),
KEY `Node (rkey)` (`rkey`),
KEY `Node (hide)` (`hide`),
KEY `Node (create)` (`create`),
KEY `Node (modify)` (`modify`),
KEY `Node (type)` (`type`),
KEY `Node (author)` (`author`),
KEY `Period` (`A`,`B`),
KEY `A` (`A`),
KEY `B` (`B`),
KEY `General` (`parent`,`level`,`lkey`,`rkey`,`hide`,`create`,`modify`,`type`,`author`,`node`,`A`,`B`),
FULLTEXT KEY `FullText (name)` (`name`),
FULLTEXT KEY `FullText (text)` (`text`),
FULLTEXT KEY `FullText (signature)` (`signature`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Авторы:
Код HTML:
CREATE TABLE `jx_AuthBase` (
`node` bigint(20) unsigned NOT NULL auto_increment,
`hide` enum('no','yes') NOT NULL default 'no',
`create` bigint(20) NOT NULL default '0',
`modify` bigint(20) NOT NULL default '0',
`name` varchar(64) NOT NULL default 'undefined',
PRIMARY KEY (`node`),
KEY `General` (`hide`,`create`,`modify`,`name`,`node`),
KEY `Node (hide)` (`hide`),
KEY `Node (create)` (`create`),
KEY `Node (modify)` (`modify`),
KEY `Node (name)` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
Последний раз редактировалось Январь; 02.12.2011 в 14:21
|
|
|
Часовой пояс GMT +3, время: 20:20.
|