понедельник, 25 октября 2010 г.

Скрипт для подготовки кода к публикации в блоге

Я периодически публикую код на страницах своего блога, и не редко мне приходится править код, чтобы он правильно обработался движком блога... Обычно приходится заменять следующие символы в соответствующие им html коды:
  • & → &
  • < → &lt;
  • > → &gt;
  • " → &quot;
  • ' → &apos;
Раньше я это делал вручную... Но на днях мне это надоело, поэтому решил набросать маленький скриптек, который бы сэкономил мне время и нервы...

#!/bin/bash

CLIPBOARD=0

[ $# -eq 0 ] && echo "usage: `basename $0` [-c|--clipboard] -|file" 1>&2 && exit 1

[ "$1" = "-c" -o "$1" = "--clipboard" ] && CLIPBOARD=1 && shift
FILE=''
[ "$1" = "-" ] && FILE='-' && shift 
[ -e "$1" ] && FILE=$1 && shift 

_main() {
 sed -e "s/\&/\&amp\;/g;s/</\&lt\;/g;s/>/\&gt\;/g;s/\"/\&quot\;/g;s/'/\&apos\;/g" "$1"
}

if [ $CLIPBOARD -eq 0 ]; then
 _main "$FILE"
else
 _main "$FILE" | xsel -b -i
fi

Ключ -с (или --clipboard) не выводит результат на консоль, а копирует в буфер обмена.
Скрипт может считывать данные либо со стандартного вода ("-"), либо из файла.


UPD: Забыл упомянуть... Скрипт требует для своей работы xsel, в случае использования опции «-c».



Информация с сайта http://angel2s2.blogspot.com/.

8 комментариев:

  1. неплохо такой плагин для worpdpress сделать =)

    ОтветитьУдалить
  2. Как раз сегодня матерился на редактор кода вордпрессовский, за то что сожрал символы. Спасибо, теперь всё стало намного проще

    ОтветитьУдалить
  3. Да, вордпресс грешен этим :)
    Пользуйтесь на здоровье ))

    ОтветитьУдалить
  4. $phrase = "Please ' convert <> it!";
    $symbols = array("&", "<" , ">", "\"", "'");
    $html_symbols = array("&", "<", ">", """, "&apos;");

    $newphrase = str_replace($symbols, $html_symbols, $phrase);
    чуть короче)

    ОтветитьУдалить