Kompx.com or Compmiscellanea.com

Браузер lynx. Создание sitemap.xml

Операционные системы : Linux

Существует немало онлайн сервисов для создания sitemap.xml. Однако его можно сделать и самому на своем компьютере, используя браузер lynx и несколько утилит командной строки Linux. Далее описывается пример использующего их bash-скрипта, названного "sitemap.sh".

Bash-скрипт, который создает файл sitemap.xml:

#!/bin/bash

cd /home/me/sitemap/www/

lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://www.compmiscellanea.com/ > /dev/null

cd /home/me/sitemap/www2/

lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://compmiscellanea.com/ > /dev/null

cat /home/me/sitemap/www2/traverse.dat >> /home/me/sitemap/www/traverse.dat

cat /home/me/sitemap/www/traverse.dat | sed -e 's/\<www\>\.//g' | sort | uniq > /home/me/sitemap/sitemap/sitemap.xml

sed -i 's/\&/\&amp\;/g' /home/me/sitemap/sitemap/sitemap.xml

sed -i "s/'/\&apos\;/g" /home/me/sitemap/sitemap/sitemap.xml

sed -i 's/"/\&quot\;/g' /home/me/sitemap/sitemap/sitemap.xml

sed -i 's/>/\&gt\;/g' /home/me/sitemap/sitemap/sitemap.xml

sed -i 's/</\&lt\;/g' /home/me/sitemap/sitemap/sitemap.xml

sed -i 's/http:\/\//http:\/\/www\./g' /home/me/sitemap/sitemap/sitemap.xml

sed -i -e 's/^/<url><loc>/' /home/me/sitemap/sitemap/sitemap.xml

sed -i -e 's/$/<\/loc><\/url>/' /home/me/sitemap/sitemap/sitemap.xml

sed -i -e '1 i <?xml version="1\.0" encoding="UTF-8"?>\r\r<urlset xmlns="http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9" xmlns:xsi="http:\/\/www\.w3\.org\/2001\/XMLSchema-instance" xsi:schemaLocation="http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9 http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9\/sitemap\.xsd">\r\r<!-- created by sitemap.sh from http:\/\/www.compmiscellanea.com\/en\/lynx-browser-creating-sitemap.xml\.htm -->\r\r' /home/me/sitemap/sitemap/sitemap.xml

sed -i -e '$ a \\r</urlset>' /home/me/sitemap/sitemap/sitemap.xml

sed -i '/static/d' /home/me/sitemap/sitemap/sitemap.xml

echo "...Done"

После того, как файл с bash-скриптом готов: "chmod +x sitemap.sh", что бы сделать его исполняемым.

Скачать sitemap.sh в архиве sitemap.sh.tar.gz ( После того, как архив загружен и распакован, в файле заменить http://www.compmiscellanea.com/ на нужное доменное имя сайта с "www" и заменить http://compmiscellanea.com/ на нужное доменное имя сайта без "www". Вместо "static" в последней строке файла поставить строку, которую должны содержать ссылки, что бы они были удалены из списка. Затем "chmod +x sitemap.sh". Затем запустить sitemap.sh ).

Комментарии

Скачать sitemap2.sh с построчными комментариями в архиве sitemap2.sh.tar.gz.

Перед тем, как запустить bash-скрипт, нужно создать три папки. Так как браузер lynx в каких-то случаях может пропустить некоторые ссылки, если доменное имя сайта будет указано с или без "www", то bash-скрипт запускает lynx дважды, обрабатывая сайт по доменному имени с "www" и обрабатывая сайт по доменному имени без "www".

Получающиеся два файла помещаются в две разные папки, здесь это "/home/me/sitemap/www/" и "/home/me/sitemap/www2/". А директория "/home/me/sitemap/sitemap/" предназначена для создаваемого sitemap.xml.


1. Путь к bash

#!/bin/bash

2. Переход в папку - браузер lynx поместит туда файлы, полученные при обработке сайта по доменному имени с "www"

cd /home/me/sitemap/www/

3. Запуск браузера lynx для обработки сайта. Поскольку lynx может пропустить некоторые ссылки, если доменное имя сайта будет указано с или без "www", bash-скрипт запускает lynx дважды, обрабатывая сайт и по доменному имени с "www", и по доменному имени без "www". В данной строке bash-скрипта - с "www". Lynx браузер автоматически пройдет по всем страницам и ссылкам на них. Все куки будут приниматься. С помощью "-connect_timeout" можно указать сколько времени в секундах lynx будет пытаться перейти по каждой ссылке

lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://www.compmiscellanea.com/ > /dev/null

4. Переход в другую папку - браузер lynx поместит туда файлы, полученные при обработке сайта по доменному имени без "www"

cd /home/me/sitemap/www2/

5. Запуск браузера lynx для обработки сайта. Поскольку lynx может пропустить некоторые ссылки, если доменное имя сайта будет указано с или без "www", bash-скрипт запускает lynx дважды, обрабатывая сайт и по доменному имени с "www", и по доменному имени без "www". В данной строке bash-скрипта - без "www". Lynx автоматически пройдет по всем страницам и ссылкам на них. Все куки будут приниматься. С помощью "-connect_timeout" можно указать сколько времени в секундах lynx будет пытаться перейти по каждой ссылке

lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://compmiscellanea.com/ > /dev/null

6. При запуске браузера lynx дважды, для обработки сайта и по доменному имени с "www", и по доменному имени без "www", создаются два файла с собранными ссылками. Здесь содержимое второго файла добавляется к концу первого

cat /home/me/sitemap/www2/traverse.dat >> /home/me/sitemap/www/traverse.dat

7. Ссылки, собранные lynx при обработке сайта по доменному имени без "www" не содержат "www.". Что бы сделать список ссылок единообразным, "www." у остальных ссылок тоже убираются. Затем они все сортируются по алфавиту с помощью sort. Затем uniq удаляет повторяющиеся записи. После чего результат сохраняется в файл "sitemap.xml", создаваемый в процессе

cat /home/me/sitemap/www/traverse.dat | sed -e 's/\<www\>\.//g' | sort | uniq > /home/me/sitemap/sitemap/sitemap.xml

8. Если в URL есть &, ', ", > и <, они заменяются на &amp;, &apos;, &quot;, &gt;, &lt;. Другие специальные и не-ASCII символы должны быть приведены в соответствие с действующими стандартами файла sitemap.xml [ 1 ] и общей практикой [ 2 ] разработчиками веб-сайта, страницы которого будут обрабатываться или CMS этого сайта. Иначе lynx будет пробовать понять эти URL согласно своим правилам и возможностям, пробовать их прочитать и записать в traverse.dat. В зависимости от среды, где lynx запущен, это иногда может быть более или менее успешно, а иногда более или менее нет.

& заменяется на &amp;

sed -i 's/\&/\&amp\;/g' /home/me/sitemap/sitemap/sitemap.xml

9. Замена ' на &apos;

sed -i "s/'/\&apos\;/g" /home/me/sitemap/sitemap/sitemap.xml

10. Замена " на &quot;

sed -i 's/"/\&quot\;/g' /home/me/sitemap/sitemap/sitemap.xml

11. Замена > на &gt;

sed -i 's/>/\&gt\;/g' /home/me/sitemap/sitemap/sitemap.xml

12. Замена < на &lt;

sed -i 's/</\&lt\;/g' /home/me/sitemap/sitemap/sitemap.xml

13. Ко всем ссылкам добавляется www.

sed -i 's/http:\/\//http:\/\/www\./g' /home/me/sitemap/sitemap/sitemap.xml

14. Перед каждой строкой добавляется <url><loc>

sed -i -e 's/^/<url><loc>/' /home/me/sitemap/sitemap/sitemap.xml

15. После каждой строки добавляется </url></loc>

sed -i -e 's/$/<\/loc><\/url>/' /home/me/sitemap/sitemap/sitemap.xml

16. Перед содержимым файла добавляются открывающие теги XML документа и комментарий

sed -i -e '1 i <?xml version="1\.0" encoding="UTF-8"?>\r\r<urlset xmlns="http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9" xmlns:xsi="http:\/\/www\.w3\.org\/2001\/XMLSchema-instance" xsi:schemaLocation="http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9 http:\/\/www\.sitemaps\.org\/schemas\/sitemap\/0\.9\/sitemap\.xsd">\r\r<!-- created by sitemap.sh from http:\/\/www.compmiscellanea.com\/en\/lynx-browser-creating-sitemap.xml\.htm -->\r\r' /home/me/sitemap/sitemap/sitemap.xml

17. После содержимого файла добавляется закрывающий тег XML документа

sed -i -e '$ a \\r</urlset>' /home/me/sitemap/sitemap/sitemap.xml

18. Удаление ненужных ссылок по содержанию в них указанной строки

sed -i '/static/d' /home/me/sitemap/sitemap/sitemap.xml

19. Сообщение, что процесс завершен

echo "...Done"


Документация браузера lynx по опциям "-traversal" и "-crawl": CRAWL.announce.


Aliosque subditos et thema

 

JavaScript ролловер. Смена изображения

 

Пример n.1 ( Для современных веб браузеров: Internet Explorer 4.0+, Firefox 1.0+, Google Chrome, Opera 4.0+, Safari 3.1+, SeaMonkey 1.0+, [ 3 ] ): HTML / XHTML. Код: <a href="javascript-rollover-smena-izobrazhenija.htm" onmouseover="image_over();" onmouseout="image_out();"><img src="out.gif" class="image" id="imageout" width="728" height="67" alt="JavaScript ролловер. Смена изображения" /></a> CSS. Код: .image {border: 0px;} JavaScript. Код: imageout=new Image(); imageout.src="out.gif"; imageover=new Image(); imageover.src="over.gif"; function image_out(){ document.images['imageout'].src='out.gif'; }; function image_over(){ document.images['imageout'].src='over.gif'; }; Изображение для смены 1 ( out.gif ): Изображение для смены 2 ( over.gif ): Пример n.2 ( Для старых веб браузеров: Internet Explorer 4.0+, Netscape 3.04+, Opera 3.21+ ): HTML / XHTML. Код: <a href="javascript-rollover-smena-izobrazhenija.htm" onmouseover="image_over();" onmouseout="image_out();"><img src="out.gif" class="image" id="imageout" name="imageout" width="728" height="67" border="0" alt="JavaScript ролловер. Смена изображения"></a> JavaScript.

Адаптивная HTML таблица

 

Если HTML таблица содержит слишком много данных, она становится шире, чем доступное пространство на странице и начинает за него выходить. Чтобы исправить ситуацию, можно добавить таблице горизонтальную прокрутку. Пример: 12345678910 Table_data_1 Table_data_2 Table_data_3 Table_data_4 Table_data_5 Table_data_6 Table_data_7 Table_data_8 Table_data_9 Table_data_10 HTML / XHTML. Код: <table> <tr> <th>1</th> <th>2</th> <th>3</th> <th>4</th> <th>5</th> <th>6</th> <th>7</th> <th>8</th> <th>9</th> <th>10</th> </tr> <tr> <td>Table_data_1</td> <td>Table_data_2</td> <td>Table_data_3</td> <td>Table_data_4</td> <td>Table_data_5</td> <td>Table_data_6</td> <td>Table_data_7</td> <td>Table_data_8</td> <td>Table_data_9</td> <td>Table_data_10</td> </tr> </table> CSS. Код: table {display: block; overflow-x: auto;} /* Дополнительные CSS, просто для приведения примера к некоему внешнему виду: */ table {border-collapse: collapse;} table td,th {padding: 10px; border: 1px #000 solid;} Примечание: CSS свойство display: block делает так, что таблица занимает по ширине только столько пространства, сколько ей нужно, чтобы вместить данные без визуальных искажений. Не больше, не растягиваясь по всей ширине доступного пространства на странице. Даже если в CSS код добавлен width: 100%. Пример: 123 Table_data_1 Table_data_2 Table_data_3 [ 1 ] А так же в Netscape 9.0. [ 2 ] А так же в Netscape 9.0.