Управление содержимым сайта по FTP

01.11.2007

Есть мысль насчёт того, как должная быть устроена CMS, чтобы наполнять сайт было легко и приятно.

Представьте, вы пишете статью в Ворде. Сохраняете. Запускаете FTP-клиент (не web-based). На сервере создаете папку под статью. В неё загружаете вордовский файл и картинки.

Остальное движок сайта делает сам: преобразует DOC в HTML, изменяет размер картинок, записывает всё, что нужно, в базу.

Плюсы — скорость (избегаем веб-интерфейсов) и простота (не нужно учиться).

Комментарии

Гость, 01.11.2007 16:54

В принципе, возможно, используя docbook или odf

Дмитрий Сергеев, 01.11.2007 17:24

Серьезных технических препятствий вообще нет. Я вот думаю, может где-то идея с управлением содержимым по FTP уже реализована?

Денис Радченко, 01.11.2007 17:17

Сложно будет преобразовывать DOC/ODF/OOXML в HTML, так, как хочет пользователь. Имхо это основная проблема WYSIWYG

Дмитрий Сергеев, 01.11.2007 17:22

У меня чистая идея, не обремененная земными трудностями :)

Хотя на самом деле сложное форматирование нечасто требуется. А если проблема с преобразованием DOC, я готов даже сохранять текст из ворда в HTML. Подчистить код потом — вполне в человеческих силах.

Алексей, 01.11.2007 18:19

Делал знакомый в 2001 году публикацию новостей на сайт с помощью RTF-файлов. Можно было не выходя из ворда публиковать на сайт. Вообще-то очень удобная вещь была, трудно сказать почему не прижилась. Технические проблемы возникали с некоторыми видами нумерации, таблицами с объединенными ячейками, но это за все время встречалось всего пару раз. А в остальном хватало фильтрации: закрытый перечень разрешенных тегов и атрибутов, остальное чистилось, чтобы стиль сайта не нарушать.

Дмитрий Сергеев, 01.11.2007 19:53

Я думаю, что реализации есть. Надо поискать. Идеально было бы модуль к Drupal сделать :)

Евгений, 01.11.2007 19:44

Только вот что проще для обычной домохозяйки? Веб-интерфейс с полем «Загрузите вордовский файл» или FTP?

Дмитрий Сергеев, 01.11.2007 19:50

Да, CMS с загрузкой по FTP — специальная штука, подойдет не всем. Ориентирована она на редакторов, которые ощутимо теряют время при работе с веб-интерфейсами. Мне бы такая штука минут двадцать в день экономила точно.

Денис Радченко, 02.11.2007 02:12

Можно использовать встроенный в Windows XP мастер Публикации в Веб, тогда с FTP заморачиваться не нужно будет.
Выбираете файл в проводнике, делаете опубликовать, логин/пароль и выбирайте категорию и все.

Дмитрий Сергеев, 02.11.2007 15:31

Попробую.

DimaT, 02.11.2007 18:06

Есть еще такая штуковина как WebDAV, с которой многие ОСи могут работать стандартными методами.
В той же винде WebDAV ресурс подключается в несколько кликов.
В отличии от FTP, у WebDAV более продвинутое разграничение прав, и, если не ошибаюсь, то есть еще и история изменений.
Это все на уровне протокола, а так, то, конечно еще зависит от реализации сервера.

Артём Курапов, 01.11.2007 19:50

Ну я знаю что на box.net есть плагин для нового word который позволяет сохранять файл на сервак туда. Дальше дело парсинга - каждую минуту проверять наличие файла и преобразовывать в статью.
Но у меня уже дело привычки.. Плюс проще наверно вставить XML-RPC интерфейс и работать с MS Live Writer ( http://kurapov.name/article/1105 )

Дмитрий Сергеев, 01.11.2007 20:01

Еще лучше, не нужно возиться с FTP-клиентом.

Но я пол-года назад пробовал пару блоговых клиентов, они были не слишком развиты: картинки не умели загружать, русской орфографии не было.

Хочется одну программу, которая «от и до» делает. Может для oowriter'а что-то есть. Ну и штуки для MS посмотрю, спасибо.

Kyхa, 01.11.2007 21:04

"Представьте, вы пишете статью в Ворде. Сохраняете. Запускаете FTP-клиент (не web-based). На сервере создаете папку под статью. В неё загружаете вордовский файл и картинки."

Мне кажется, проще "пишите статью в Ворде. Сохраняете. И отправляете на нужное мыло".
Ну а движок будет периодически почту мониторить просто и при новых письмах делать всю работу.

Дмитрий Сергеев, 02.11.2007 15:23

Да. Такая мысль уже высказана в комментариях к прошлому посту.

Kyхa, 01.11.2007 21:12

Кстати, я ворд очень заценил... Раньше, когда с новым разбирался, локально блог вел... И казалось что это хорошо. А ворд казался инструментом для ламеров.

Но сейчас, когда обычная работа это когда нужно протестить десятки варинтов чего-либо и везде принтскрины, принтскрины, принтскрины - быстрый паст просто в вордовский документ стал просто незаменим.

Дмитрий Сергеев, 02.11.2007 15:29

Есть в нём и хорошее и плохое. То, что в HTML списки делает, как bull nbsp nbsp nbsp — просто позор. А, например, работа со стилями и возможности автозамены служебных символов (^p, ^t) мне нравятся.

Главное, люди привыкли в нём тексты писать. Зачем их пересаживать на web-based WYSIWYG-редактор а-ля TinyMCE, который гораздо хуже работает.

Кстати, хорошее сочетание «web-based WYSIWYG-редактор а-ля TinyMCE» :)

Vladimir, 01.11.2007 21:18

Такое в plone есть.

Дмитрий Сергеев, 02.11.2007 15:30

Спасибо, посмотрю при случае. Но пока с пайтоном что-то не складывается :(

Vladimir, 02.11.2007 23:14

Зря.
Хоте по мне plone - жуткий монстр. Предпочитаю pylons.

Денис Радченко, 02.11.2007 02:15

Кстати, ни у кого не было опыта настройки XML-RPC, чтобы можно писать на сайт через Windows Live Writer/BlogJet ?

Владимир Лучанинов, 02.11.2007 09:48

> Представьте, вы пишете статью в Ворде
Ага, а потом надо лишь нажать кнопку "Publish to web". И в итоге получится MS Sharepoint :)

Эх, если бы придумать как выдрать или использовать модуль Dreamweaver по очистке Word-файлов от мусора. Там он грамотно реализован, но, к сожалению, открытого API я не нашёл.

Денис Радченко, 02.11.2007 10:01

А Tidy на вордовских файлах не работает?

Владимир Лучанинов, 02.11.2007 11:45

Работает. Но чтобы вычистить все MsoNormal, style="font-face: Times New Roman; lang: en-us", нужно долго писать правила.
Если кто-то такое делал, киньте ссылку, пожалуйста.

Дмитрий Сергеев, 02.11.2007 15:36

А я не знал про Tidy. Посмотрю, спасибо.

Дмитрий Сергеев, 02.11.2007 15:34

Стили ворда чистятся при помощи парочки regexp'ов. Здесь нет проблемы.

Вообще ни в чём нет проблемы, нужен умный скрипт, который сам сделает из сырых материалов страницу сайта. Чтобы такой скрипт написать, талант не нужен. Никаких особенных знаний не требуется. Просто посидеть некоторое время.

Kyхa, 02.11.2007 16:29

Разбираясь как скрапить хтмл с помощью пхп (кстати, не подскажите с помощью чего Вы это делаете?), наткнулся на классы, которые можно использовать при очистке вордовского текста:
http://www.phpclasses.org/browse/package/1020.html
http://www.phpclasses.org/browse/package/1352.html

Дмитрий Сергеев, 02.11.2007 17:30

Вот нашёл свой PHP-код двухлетней давности. Не уверен в качестве регулярного выражения, да и вообще... Но на одном сайте до сих пор работает.
function msword2html($t)
{
// Оставляем только «хорошие» теги
$t = strip_tags($t, '<h1><p><table><tr><td>...');
// Вылавливаем открывающиеся теги и
// обрабатываем их функцией cut_attr()
$t = preg_replace_callback('/(<)[^\/][^>]+(>)/', 'cut_attr', $t);
return $t;
}
function cut_attr($w)
{
// Работаем со строкой, вырезая все атрибуты кроме
// ценных colspan, rowspan, href
...
return $w;
}

Владимир Лучанинов, 02.11.2007 19:58

О, спасибо. А то по поводу "парочки регэкспов" немного недооценили умение ворда вставлять неожиданный мусор.
А сильно жёстко тоже вычищать нельзя - некоторое форматирование может оказаться важным.

В общем, работа значительно больше, чем на час и поэтому готовые классы намного лучше.

Владимир Соловьёв, 02.11.2007 19:48

Мы делали похожий движок, .doc-файлы через .net-админку на сайт, и он себя не оправдал.

Оказалось чрезвычайно много мелких проблем с разборкой файла, чисткой от лишней разметки и добавлению функций. Проблемы с таблицами, картинками, списками. И при этом для нескольких браузеров. Очень тяжело обслуживать. Может быть в новом формате .docx стало лучше, не знаю.

Самое смешное, что от движка пришлось отказаться поскольку люди ждут именно веб-интерфейса а такой системе надо обчуаться.

Дмитрий Сергеев, 03.11.2007 19:38

Кому-то нужен веб-интерфейс, а я вот накушался :)

Alexey Prishchepo, 02.11.2007 20:54

А можно я как пользователь скажу?:) Сразу возникает вопрос, а как быть со структурой? В какой именно раздел сайта опубликовать материал, какой заголовок присвоить странице? В каком меню сделать ссылку? Какой, в конце концов, будет адрес у новой страницы?

Такой способ публикования материалов приемлем для новостей, это — да. И то, непонятно, как быть с заголовком новости, и как сделать ее анонс. Ещё вариант — публикация постов в блог; блоггер, насколько я знаю, принимает письма: заголовок — в название поста, текст — в текст, можно было бы такую функцию прикрутить к какому-нибудь движку, для тех, кого блоггер чем-то не устраивает.

Дмитрий Сергеев, 03.11.2007 19:43

В ворде есть механизм стилей. С его помощью можно творить чудеса разметки. И еще в ворде есть возможность создавать шаблоны.

Дмитрий Сергеев, 03.11.2007 19:41

Это только сервис, или можно как-то исходники получить?

Медик, 06.11.2007 00:34

fogmaker, спасибо за ссылку!

Дмитрий Сергеев, 06.11.2007 00:47

Один ссылки не в тему ставит, другой подписывается хитрым анкором и первого хвалит. Куда катится мир...

fogmaker, 06.11.2007 04:04

Блин, чувак, ну кильни ты линку, коль не в тему она тебе показалась. Чего энтропию преумножать? А за исходниками - велкам в асю.

зы. мир - это охуенная штука. никуда он не катится. все путем. а вопрос твой риторический лузерством отдает. ага.

snow_wons, 20.11.2007 23:42

Простите, но это изврат. Очень сильный изврат.
Не проще ли поставить FCKEditor (не работает в опере, но очень хорош) или TinyMCE?
Генерируют вполне приличный код, из ворда вставлять текст умеют с сохранением стилей и чисткой мусора.
А уже потом обработать safeHTML.
А скопировать текст из окна ворда в окно браузера не очень сложно.

Дмитрий Сергеев, 21.11.2007 00:26

Знаете, почему после того, как попробуешь соулсик, ничем другим музыку качать не хочется? Потому что не нужно пользоваться веб-интерфейсом.

Знаете, почему CLI многим продвинутым пользователям нравится больше GUI?..

snow_wons, 21.11.2007 01:04

Не знаю. Не пробовал. И не хочется даже. Ибо музыку качаю редко. Почти всегда с одного сайта. И из неудобств только баннер на полэкрана.
А вообще отношение к файлообменным сетям очень не хорошее.

Ну.. командная строка часто бывает весьма удобна. Но для каждого случая нужно выбирать подходящий инструмент.
К примеру. Можно в html написать статью. С картинами и большими буквами ©. Можно отправить её через командную строку на сайт. А всё равно смотреть придётся через браузер. Вдруг чтонибудь поползёт.. А если сразу видеть что получается - то и телодвижений меньше.
К томуже не все знают html. И не всем его нужно знать.

Или. Часто, Очень часто слышу что vi удобный редактор. Уверен что это так и есть. Но всё равно пользуюсь ZendStudio. Пусть тормозящей нещадно, но удобной.

На хабре пару недель назад был пост. О том как в командной строке сделать из кучки картинок галерею. Да, решение красивое.
Но, во-первых до него нужно додуматься.
Во-вторых, если понадобится во второй раз - то нужно где-то хранить.
В-третьих, зачем? если и так каждый день пользуешься bridge, где это встроено.

Командная строка хороша там где нужно что нибудь выполнить с особыми параметрами, или операция выполняется раз в год и писать под это дело оболочку нет смысла.

Дмитрий Сергеев, 21.11.2007 01:15

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

snow_wons, 21.11.2007 01:22

Как сказали выше для этого очень хорошо подходит почта.
Или можно клиента делать (как семанжетик для ЖЖ).
Или просто выкладывать в какую либо дирректорию на сайте новую информацию (в формате близком к XML) и пусть cron её кушает.

Маслаков Александр, 29.07.2008 12:40

Уже занимался поиском материала по этому делу. Здесь нашел пару интересных ссылок.

В начале: DOC файл с картинками и всем остальным на борту

В конце: Готовая HTML страница, с "вынутыми" из доки рисунками, сохраненными на сервере...

Почему WISYWIG плох? Да потому что уже замучался сохранять рисунки, заливать их на сервер, вставлять в редактор, калупаться в коде, прописывая определенные классы к рисункам.

Ну что ж. Когда наберется приличная инфа, то займусь созданием класса.

Вопрос: Я так понимаю, рисунки в Doc файле переводятся в определенный формат? base32/64? Как их от туда достать?

Дмитрий Сергеев, 30.07.2008 00:31

Маслаков Александр, я бы работал не с DOC, а с RTF. А может даже с MHTML (веб-страница в одном файле).