لربما سمعت أو قرأت أثناء تجولك في عالم المصادر الحرة عن مستند بصيغة docbook و أنه هو المعتمد في توثيق المشاريع و الكتب، ولربما تسألت ما هي دوكبوك ولما لا يستخدمون صيغة معروفة أخرى مثل HTML أو TXT مثلا .
تعتبر صيغة دوكبوك لغة ترميز دلالية متخصصة للمستندات التقنية، وبالأساس قصد منها كتابة المستندات التقنية التي لها علاقة بعتاد الحاسوب و برمجياته، ولكن يمكن استخدامها لأي نوع آخر من الوثائق.
وكأي لغة دلالية ، تمكن لغة دوكبوك مستخدميها من إنشاء محتوى الوثيقة في هيئة عرض محايدة تستطيع السيطرة على البنية المنطقية للمحتوى، وبعد ذلك يمكن لهذا المحتوى أن ينشر بتشكيلة واسعة من الهيئات تشمل HTML و PDF و صفحات man ( التي تستخدم في عرض المساعدة للأنظمة المبني على اليونكس واللينكس ) و HTML Help ( لإنشاء مستندات chm) من دون الحاجة إلى تغيير أي شيء في المصدر الأصلي.
نظرة عامة
في الإصدارة الجديدة من دوكبوك 5.0 ، أصبحت لغة دوكبوك بالكامل لغة XML . وعرفت دوكبوك باستخدام مخطط RELAXNG وهو عبارة عن نموذج لتحديد البني و المحتويات لمستند XML.
وكلغة دلالية فإن دوكبوك لا تصف كيف تبدو محتوياتها ، ولكن بالمقابل تهتم بالمحتوى بشكل أساسي. على سبيل المثال، بدلا من شرح كيفية تهيئة الخلاصة لتبدو بشكل مرئي ، فإن دوكبوك تحدد أن هذه الفقرة هي الخلاصة فقط ، و تترك المجال لأداة معالجة خارجية أو تطبيق خارجي ليقرر أين يضع الخلاصة في الصفحة وكيف ستبدو.
لغة دوكبوك تقدم تنويعة ضخمة من الوسوم الدلالية. وهي تقسم في ثلاثة أصناف رئيسية: تركيبية ، و وسوم على مستوى الكتلة و وسوم خطية. الوسوم التركيبية تحدد الخصائص التوضيحية لمحتوياتها. فعلى سبيل المثال فإن وسم book يحدد أن العناصر المندرجة تحته تمثل أجزاء من كتاب. وهذا الوسم يحوي العنوان و الفصول و مسرد الكلمات و المحلقات وغيرها. الوسوم التركيبية في دوكبوك تحوي - ليس كلها -:
- set وهو عنونة لمجموعة كتب من واحد فأكثر .
- book وهو عنونة لمجموعة من الفصول و المقالات و[أو] أجزاء ، مع مسرد الكلمات و الملاحق بشكل اختياري.
- part وهو عنوان مجموعة من فصل أو أكثر ، ويمكن أن يكون جزء من مجموعة أخرى.
- article و هو عنونة لمجموعة غير معدودة من العناصر على مستوى المقطع.
- chapter وهو عنونة لمجموعة معدودة من العناصر على مستوى المقطع
- appendix يحوي على النص الذي يصرح على أنه ملحق.
الوسوم التركيبية يمكنها أن تحوي على الوسوم تركيبية أخرى، وهي تمثل الوسوم ذات المستوى الأعلى فقط في مستند دوكبوك.
الوسوم على مستوى الكتلة هي عناصر مثل الفقرات والقوائم وهلم جرا، وليس كل العناصر يمكنها أن تحوى على نصوص مباشرة. وترتيب الوسوم على مستوى المقطع يكون بشكل كل وسم أسفل من الثاني، و كلمة أسفل يمكن أن تفسر على حسب طريقة طباعة اللغة، فمثلا اللغة العربية تعني كل وسم أسفل من الثاني بالمعنى الحرفي لكلمة أسفل، بينما في اللغة الصينية والتي تطبع من اليمين إلى يسار ، تعني كلمة أسفل أنه أيمن.
دوكبوك الدلالية متكيفة كليا مع مثل هذه الطرق على مستوى اللغات.
الوسوم الخطية هي وسوم مثل التأكيد و الوصلات التشعيبية و هلم جرا. وهي تحيط بالنص داخل عنصر من مستوى المقطع. هذه الوسوم لا تسبب أي خطأ للنص أثناء تهيئة الفقرات ، ولكن تقدم معالجة طباعية خاصة للنص بواسطة تغيير الخط وحجمه و الصفات المماثلة. هذه التغييرات الخاصة ليست جزءا من مواصفات دوكبوك. وهذا يعني أن معالج دوكبوك لا يحتاج لتحويل وسم التأكيد emphasis إلى أن يكون مائلا، فالقارئ مبني على معالج دوكبوك يمكن أن يزيد حجم الكلمات . أو المعالج المبني على النص يمكن أن يستخدم الخط العريض بدلا من المائل. إن مواصفات دوكبوك لا تقول أنها تتوقع معالجة طباعية مختلفة ولكنها لا توفر متطلبات مخصصة في كيفية المعالجة المتوقعة.
مثال على مستند دوكبوك
<?xml version="1.0" encoding="UTF-8"?>
<book xml:id="simple_book" xmlns="http://docbook.org/ns/docbook" version="5.0">
<title>Very simple book</title>
<chapter xml:id="chapter_1">
<title>Chapter 1</title>
<para>Hello world!</para>
<para>I hope that your day is proceeding <emphasis>splendidly</emphasis>!</para>
</chapter>
<chapter xml:id="chapter_2">
<title>Chapter 2</title>
<para>Hello again, world!</para>
</chapter>
</book>
بشكل دلالي ، فإن هذا المثال هو كتاب، فهو يحوى على عنوان title و فصلين لكل واحد منها عنوانه الخاص. وهذان الفصلان يحويان على فقرات تحوي على نصوص، إن ترميز المستند يعتبر مقرؤا بشكل كبير في اللغة الإنجليزية.
معالجة دوكبوك ونشرها
إن إنشاء وتحرير ملفات دوكبوك يعتبر فقط نصف المعركة، فبعد أن أنشأت المستند فأنت بحاجة إلى نشره سواءا عن طريقة طباعته أم عن طريق النشر عبر الانترنت. تتم هذه الطريقة بواسطة ما يسمى أوراق الأنماط، وعبر سنوات عدة كانت هناك عدة محاولات لإنتاج لغة للأوراق الأنماط قياسية ولكن لم تصل أي محاولة للنجاح.
على العموم هناك ثلاثة معايير مشتهرة للأوراق الأنماط وهي:
CSS وهي المستخدمة لتنسيق مستندات HTML و أنشأت بواسطة هيئة W3C
XSL يتعبر هذا المعيار أكثر شهرة والمستخدم في تكنولوجيا دوكبوك و له إصدارتان الاولى والثاني ويوفر الكثير من المميزات المهمة و المعقدة.
XQuery وقد طور هذا المعيار بالتوازي مع معيار XSL 2.0 .
تاريخها
عمر لغة دوكبوك أكثر ستة عشر سنة، بدأت في عام 1991 كمشروع انضمت فيه شركة HAL لأنظمة الحاسوب و أورالي وطورت بالأساس لإيجاد طريقة لتبادل وثائق اليونكس المنضودة على هيئة Troff. وبدأت بالظهور والاشتهار بين الشركات وبشكل متلاحق أصبحت تديرها وتصونها منظمة خاصة بها وهي Davenport Group. وفي منتصف 1998 أصبحت لجنة تقنية لمنظمة دعم معايير بنى المعلومات OASIS.
لماذا تستخدم دوكبوك؟
لماذا يجهد أصحاب البرامج والمشاريع أنفسهم باستخدام دوكبوك ؟
- لأنها قابلة للنقل ، الوثيقة المكتوبة بصيغة دوكبوك يمكن أن تحول إلى الصيغ التالية HTML- PostScript-PDF- RTF- DVI- ASCII بسهولة وسرعة من دون أي أدوات غالية الثمن.
- لأنها مرنة، بحيث تمكنك من إخراج الوثيقة بهيئات متعددة مثل صفحات HTML أو PDF أو شرائح أو كتاب بصغية HTML متعدد الصفحات وغيرها من الهيئات.
- لأنها تفصل المحتوى من هيئة الوثيقة ! لغة دوكبوك يهمها فقط بنية الوثيقة، وتحرر المؤلف من القلق حول تهيئة الوثيقة و تخطيطها.
- سهلة الفهم ، معظم عناصر دوكبوك تشرح نفسها بنفسها.
- يمكن أن تدير محتويات ضخمة جدا، بحيث يمكنك أن تقسم المستند إلى عدة ملفات مختلفة و تعمل عليها بشكل منفصل و مريح.
- إنها حرة ومجانية ، هناك الكثير من الأدوات الحرة تستخدم للعمل مع دوكبوك.
هيئة دوكبوك تعتبر مناسبة جدا لأي مجموعة من المستندات التقنية تنشر وتصان باستمرار. وعدة مؤلفين يمكنهم المشاركة في المستند الواحد ، و تدمج إضافاتهم إلى الوثيقة بسهولة وذلك يرجع إلى أن كل المؤلفين يستخدمون لغة توصيف عالية البنية والمعيارية.
إن تنضيد المستند باستخدام دوكبوك يأخذ بكل تأكيد الكثير من الجهد والوقت ، ولكن ما تحصل عليه بالمقابل من أداء و مرونة و نظام نشر غير مكلف و ينمو مع احتياجاتك ، يجعل الأمر يستحق ذلك الجهد والوقت.
أين تستخدم دوكبوك؟
- في عالم الكتب المطبوعة ، هناك الكثير من المؤلفين يستخدمون دوكبوك في كتابة كتبهم لجميع الأغراض بحيث يسهل نشره بشكل مطبوع أو نشره على الانترنت وهناك الكثير من ذلك.
- في المقالات و الأطروحات العلمية.
- في صيانة المواقع.
- إنتاج شرائح تقديمية و ملخصات مطبوعة.
- في وثائق البرامج التجارية و العتاد.
متى لا تستخدم دوكبوك؟
بما أن لغة دوبكبوك تعتمد في تنسيقها للهيئة المصدرة على الأوراق النمطية stylesheets فإنها لا تتوافق مع مخططات عالية التصميم للمحتوى مثل المجلات.
مشاريع تستخدم دوكبوك:
- FreeBSD, KDE, GNOME و GTK-API و توثيق نواة اللينكس و مشروع وثائق اللينكس
برامج دوكبوك
بما أن وثيقة دوكبوك هي مستند XML ، فيمكنك أن تنشأها باستخدام أي محرر نصي ، وهناك عدة برامج تستطيع أن تسهل هذه العملية ومن أبرزها:
إيماكس - NetBeans - jedit - Quanta .
وتوجد هناك محررات مرئية من نوع " الذي تراه هو ما تحصل عليه " ومن أشهرها XMLmind و Oxygen XML.
ولعملية النشر يمكنك استخدام أحد هذه المحركات الخاصة بـ XSLT
-Xsltproc وهو معالج مجاني مكتوب بلغة السي ، وهو متوفر كجزء من مكتبة libxml2 من مشروع تطوير جنوم، وهو يعد من أسرع المعالجات.
- Saxon وهو معالج مجاني مكتوب بلغة الجافا يمكنه العمل على أي منصة مع مفسر جافا جديد.
- Xalan وهو جزء من مشروع Apache XML ، وهو يستخدم مع مفسر Xerces XML .
أو محركات FO وهي تستخدم لإنشاء ملفات PDF من ملفات FO ويتوفر منها اثنان حران:
- Passive TeX
- FOP وهو معالج مبني على جافا من مشروع Apache XML.
مصادر تعليمية
:- DocBook: The Definitive Guide
-XML - Managing Data Exchange/DocBook
- DocBook XSL: The Complete Guide
-Documention with DocBook on Win32
-DocBook Demystification HOWTO
disqus