от Славей Караджов(20-12-2002)

рейтинг (16)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Съдържание:

  • Нови възможности при писане на статии в Linux-BG
    • Оцветяване и подреждане на програмен код
    • Добавяне на таблица с "най-важното"
  • Софтуерът, който прави това
    • Обща информация
    • Как да добавите нови възможности
    • От къде да свалите програмния код

Нови възможности при писане на статии

Oткрояването на програмен код, синтактично оцветяване и подреждане са едни от нещата, които правят статия с примерен код по-лесна за четене и усвояване. От скоро в Linux-BG има въведена такава възможност. В момента има готово синтактично оцветяване на код на C, C++, Perl, PHP, Java, Bash, MySQL и Scheme. При необходимост може да се добави поддръжка на множество други програмни езици. За синтактичното оцветяване се използват Perl модули предоставени ни от: http://www.beautifier.org/. Ето и няколко примера за използването им в Linux-BG. Първият е с демонстрирането на програма на C. За да започнете програмен блок, трябва на нов ред да напишете:
<doс type="code" syntax="c" title="Hello.c">
 
След което въведете на следващите редове кода на програмата и добавете на нов ред:
</doс>
 
Тагът doc трябва да е написал с малки букви на латиница.
Забележете атрибутите syntax,type и title. Ако искате да публикувате код на C++ или на Perl трябва да напишете за C++ syntax="cpp" и за Perl syntax="perl". Възможностите за момента, които може да използвате са c, cpp, perl, php, java, mysql, html, scheme, bash. Имайте предвид, че те се пишат само с малки букви.
Hello.c
#include <stdio.h>
 void main() {
         printf("Hello World");
 }
В нашият пример над блока с програмния код се появи заглавие "Hello.c". Този текст може да се промени, като замените title="Hello.c" с title="_друг_текст_". По тази логика, ако искате да има заглавие над текста "Пример: 1", то трябва да напишете title="Пример: 1".

Добавяне на блок с програмен код е една от новите възможности. Освен нея може да добавяте например таблица с "резюме" на мъдрите неща, които сте казали във вашата статия.
Заглавие
<doс type="table" title="Заглавие" align="left">
 Съдържание.
 </doс>
 
и крайния резултат изглежда така:
Заглавие
Съдържание.

До тук демонстрирах как да използвате следните типове елементи: code, table. Ако сте програмирали на Perl може лесно да добавите желани от вас елементи. За в бъдеще може да се вграждат елементи от други страници на този сайт или да се извлича и визуализира документ от друг сайт. Така например може да се направи модул, който извлича XML файл и неговото съдържание се обработва и вгражда като илюстрация на статията, която ще напишете.

Софтуерът, който прави това

Елементите се "вграждат" в статията. До тук демонстрирах как да се използват. Сега ще ви покажа как да напишете собствен елемент за вграждане. Погледнете кода на елемента text.pm, който форматира текста така, че да излиза добре в HTML страница.
text.pm
package Doc_Embed::text;
 use strict; 
 
 
 sub parseElement  {
         my ($content, %attr) = @_;
         $content =~ s/&/&/g;
         $content =~ s/</</g;
         $content =~ s/>/>/g;
         $content = "<pre>$content</pre>";
         return $content;
 }
 
 1;
Когато създавате нов елемент е нужно да спазите няколко условия:
  • името на програмния пакет да започва с Doc_Element:: . За елемента text името e: Doc_Embed::text
  • трябва да има една функция с име parseElement, която има аргументи ($content, %attr)
  • файла да се намира в същата директория в която са и другите елементи

Нека да направим нов елемент. Това ще бъде пример за елемент, в който :) се заменя с картинка на усмихнато лице. Нека новият модул се казва "smiley". В него задължително трябва да присъства функция с име parseElement, която да има аргументи ($content, %attr).
smiley.pm
package Doc_Embed::smiley;
 use strict; 
 
 
 sub parseElement  {
         my ($content, %attr) = @_;
         return $content;
 }
 
 1;
За да заменим :) с картинка на усмихнато лице ще използваме следния израз
Примерен код на perl
$content = ~s/:\)/\<img src="\/ads\/smiley.gif"\>/g;
И нашият нов модул вече изглежда така:
smiley.pm
package Doc_Embed::smiley;
 use strict; 
 
 
 sub parseElement  {
         my ($content, %attr) = @_;
         $content = ~s/:\)/\<img src="\/ads\/smiley.gif"\>/g;
         return $content;
 }
 
 1;
Току що създадения модул трябва да се копира в doc_embed/ директорията (там където са code.pm, table.pm, text.pm и др.).
По надолу ще ви покажа как да използвате този нов елемент за вграждане.
<doс type="smiley">
 Аз съм модул "smiley" :)
 </doс>
 
Резултатът е:
-------------------
Аз съм модул "smiley"
-------------------
Предполагам вече сте се досетили и за други елементи, които ще е полезно да се вграждат в текста.

Програмния код

Програмния код може да свалите от [тук]. Целият пакет се казва Doc_Embed и е версия 0.0.1. С ваша помощ той може да стане много по-полезен и мощен. Doc_Embed /вер. 0.0.1/ се разпространява под GPL лиценз. Предлагам ви и една задача за упражнение - да напишете прост елемент-калкулатор, който може да пресметне изрази от вида:
((2+3)/4)*8+1
 
Успех


<< Заинтересовани за проектът по разработване на портала ? | Пак за преводите на програми (Част II или предложението) >>