Наши заметки о MODx
В этом разделе мы будем собирать небольшую копилку секретов по работе с системой управления контентом сайта (CMS) MODx. Эти заметки ни в коем случае не претендуют на лавры документации. На нашем сайте тема MODx вообще занимает небольшой уголок, и эти материалы мы размещаем только потому, что по роду основной работы нам приходится оказывать техническую поддержку нескольким десяткам организаций, использующих наши прототипы сайтов. В то же время кое-что может пригодиться и другим людям.
Мы не претендуем на изложение "истины в последней инстанции". Наверняка в этих заметках гуру MODx найдут неточности и ошибки. Мы будем очень благодарны, если на это нам укажут в комментариях.
В заметках мы стараемся не просто сразу приводить готовое правильное решение, но и показываем, как мы набивали шишки в процессе поиска.

Как вставлять тексты из других программ


Очень часто приходится вставлять тексты из других программ в контент страницы. Выделили текст в какой-то программе, скопировали в буфер обмена через Ctrl+C, зашли в редактор страницы и вставили через Ctrl-V. Вуаля! Текст на месте! Но не все так просто...

Беда в том, что в буфере обмена может находиться не только текст, но и его форматирование. Если мы скопировали текст из простого редактора, наподобие Notepad, то в буфере действительно только сам текст, "буковки". Но если мы скопировали текст из подозрительного места - там может оказаться что угодно, и это зависит от программы-источника. Даже текст из адресной строки некоторых браузеров, например Safari, может вставиться в TinyMCE с форматированием.

Что уж говорить про MS Word, который так любят некоторые редакторы - там просто горы мусора. А весь этот мусор в виде байтиков пересылается через Интернет, увеличивая время загрузки страниц. Да и расходы на трафик увеличиваются.

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

Вставить текст в редактор можно тремя способами:

1. Обычная вставка через Ctrl+V.

2. Через кнопку Вставить из Word Вставка из Word

3. Через кнопку Вставить как простой текстВставить текст

 Рассмотрим на практике различие во вставке текста из буфера

Берем одну строку, отформатированную в MS Word и вставляем  тремя способами. Сама строка в Word выглядит вот так:

Строка из Word

А теперь посмотрим, что получится при разных вариантах вставки эстой строки через буфер обмена.

1. Результат вставки текста из Word - напрямую, через Ctrl+V:

 

Текст из Word для проверки

 

Вставленная строка выглядит в точности как в Word!

При этом вставился код HTML:

<meta content="Word.Document" name="ProgId" />
<meta content="Microsoft Word 10" name="Generator" />
<meta content="Microsoft Word 10" name="Originator" />
<link href="file:///C:%5CDOCUME%7E1%5CSHAGGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:"Arial Black";
panose-1:2 11 10 4 2 1 2 2 2 4;
mso-font-charset:204;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:647 0 0 0 159 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:595.3pt 841.9pt;
margin:2.0cm 42.5pt 2.0cm 3.0cm;
mso-header-margin:35.4pt;
mso-footer-margin:35.4pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Обычная таблица";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
</p>
<p class="MsoNormal">
<strong><span style="font-size: 20pt">Текст</span></strong><span style="font-size: 20pt"> </span><span style="font-size: 20pt; font-family: 'Arial Black'">из</span><span style="font-size: 20pt"> </span><span lang="EN-US" style="font-size: 20pt; color: red">Word</span><span lang="EN-US" style="font-size: 20pt; color: red"> </span><span style="font-size: 20pt">для <em>проверки</em></span>
</p>
 

  Видите, сколько мусора вставлено? Там и само содержимое не найти! Но зато можно обнаружить интимные подробности - из какого файла это вставлено.  Нет, "такой хоккей нам не нужен".

2. Результат вставки текста из Word - через кнопку Вставка из Word (Вставить из Word):

Для вставки открывается диалоговое окно:

 Вставка из Word

В окно вставляется текст с форматированием, которое было в Word, а в наш документ вставится текст с частичной потерей форматирования (осталось только выделение жирным и курсивом):

Текст из Word для проверки

  Вставился код HTML:

<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<meta content="Word.Document" name="ProgId" />
<meta content="Microsoft Word 10" name="Generator" />
<meta content="Microsoft Word 10" name="Originator" />
<link href="file:///C:%5CDOCUME%7E1%5CSHAGGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List" />
<!--[if gte mso 9]><xml>
Normal
0
MicrosoftInternetExplorer4
</xml><![endif]--><style>
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Обычная таблица";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<p>
<strong>Текст</strong> из Word для <em>проверки</em>
</p>
 

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

3. Результат вставки текста из Word - через кнопку Вставить текст (Вставить как текст):

Для вставки открывается диалоговое окно:  

 Вставка как текст

В окно и в страницу вставляется текст без всякого форматирования:

Текст из Word для проверки

  Вставился код HTML:

Текст из Word для проверки

  Просто текст, никакого форматирования, ничего лишнего. Вот это нам и нужно. Нам не нужно, чтобы на страницах сайта что-то было в точности как в Word. Нам нужны единообразное оформление всех страниц.

Если нам потребуется опубликовать какой-то документ со всем оформлением, "как в Word", мы его выложим в формате PDF для загрузки или для просмотра в браузере - как пожелает посетитель в зависимости от размера файла. Это относится и к документам, подготовленных в других программах. Например, непосредственно на сайте можно просмотреть Руководство по установке ruCAD в "формате сайта". Это же Руководство можно просмотреть в формате PDF. И это же Руководство доступно в виде CHM-справки в составе системы ruCAD после инсталляции.
Разумеется, сам текст был подготовлен один раз в программе Help&Manual, но его визуальное представление сделано в нескольких вариантах.

 

Вывод:

  КнопкаВставка из WordВставить из Word по сути вредна - мусор не удаляет. Зато мы её удалим из своего редактора. И оставляем кнопку Вставить текст для того, чтобы иметь единственный вариант вставки текстов.

 

 

22-01-2009 12:06:22



    Содержание раздела «Вставка текстов»:
Комментарии любых посетителей

Написать комментарий


 
dverzapili
Комментарий
Re: Как вставлять тексты из других программ
Реплика №1: 20.10.2009, 14:45:08
Это все хорощо конечно, но юзер же не будет гемороиться, искать какую-то кнопку в панели сверху "Вставить как текст". А юзер просто нажмет правой кнопкой мыши на поле для ввода и кликнет "Вставить". И вставится все по первому варианту. В результате 1 новость сайта - 14 шрифтом Times, рядом - 10 шрифтом Arial. Ну вы поняли? Как запретить вставку правой кнопкой? Или сделать, чтобы по правой кнопке вставлялось как текст?