1. اول از همه، اسکی‌داک (asciidoc یا asciidoctor) به چه درد می‌خورد؟

اسکی‌داک قرار است که نوشتن مقاله، کتاب، پرزنتیشن، یا راهنما و همچنین تبدیل آن نوشته‌ها به فرمت‌های مختلف را ساده‌ کند. حرف اسکی‌داک این است: وقتی می‌خواهی چیزی بنویسی به فرم‌ دادن‌ها، نوع واژه‌پرداز، یا فرمت نهایی انتشار توجه نکن. فقط بنشین و نوشته‌ات را با ویرایشگر دلخواهت بنویس اما به گونه‌ای (پروتکل یا زبان اسکی‌داک) بنویس که هم برای آدم‌ها خوانا باشد و هم من (برنامه اسکی‌داک) بتوانم بعدا نوشته تو را فرم مناسب بدهم و آن را به انواع فرمت‌ها تبدیل کنم.

نوشته‌هایی که با رعایت پروتکل اسکی‌داک نوشته شده‌اند هم برای آدم‌ها و هم کامپیوترها خوانا هستند در عین این که قابلیت این را دارند تا به فرمت‌های مختلفی تبدیل بشوند.

برنامه‌های تبدیل اسکی‌داک به فرمت‌های دیگر برنامه‌های کدباز و رایگانی هستند که به راحتی می‌توان از آن‌ها استفاده کرد.

2. چه کسانی از اسکی‌داک استفاده می‌کند؟

کم نیستند. یک لیست از موارد استفاده از اسکی‌داک در اینجا آمده است. همانطور که از لیست مشخص است بیشتر کسانی که از اسکی‌داکتر (همان اسکی‌داک، توضیح خواهم داد) استفاده می کنند در حوزه نرم‌افزار هستند اما دلیل این مسئله احتمالا این است که محل تولد اسکی‌داک اینجا بوده است و دلیل این نیست که فکر کنیم کاربرد اسکی‌داک فقط در این حوزه است. شاخص‌ترین این موارد استفاده شاید انتشارات O’Reilly باشد با آن کتابهایی که عکس جانداران مختلف روی جلدشان است. مورد دیگر شاید Github باشد که در سیستمش از این زبان استفاده می‌کند. من خودم یک کتاب آکادمیک با کلی جزییات نگارشی با اسکی‌داکتر نوشته‌ام (اینجا) که از اسکی‌داک به فرمت‌های مختلف از جمله PDF (از طریق لاتک، توضیح خواهم داد) تبدیل کرده‌ام.

3. الان این سایت asciidoctor.ir قرار است که چه بکند؟

قرار است که در ورودی برای کاربران فارسی‌زبان اسکی‌داک و اسکی‌داکتر باشد. ایده‌اش هم این است که با استفاده از اسکی‌داک نوشتن مقاله، کتاب، پرزنتیشن، راهنما، … به زبان فارسی راحت‌تر می‌شود و تولیدات بیشتر و باکیفیت‌تری به زبان فارسی تولید خواهد شد. در عین حال نمی‌دانم در آینده چه چیزهایی ممکن است به این سایت اضافه بشود یا نشود. حداقلش همین چندتا پرسش و پاسخ است.

4. اصلا اسکی‌داک فارسی و راست به چپ نویسی را پشتیبانی می‌کند؟

هنوز به طور رسمی نه اما عملا یک تستی که انجام داده‌ایم (اینجا) به جز چند نکته کوچک کارکرد بقیه‌اش درست است. دلیل این درست بودن هم این است که اصولا اسکی‌داک خودش به صورت یک پروتکل نشان‌گذاری قرار نیست که کار خیلی خاصی —به جز ترجمه تعداد کمی واژه کلیدی اسکی‌داک— برای فارسی‌نویسی بکند و بیشتر کارها به دوش مبدل‌ها است. در مبدل‌ها هم بعضی از آن‌ها قرار نیست خیلی کار خاصی بکنند. مثلا مبدل اسکی‌داک به HTML با استفاده از یک استایل مناسب فارسی خروجی کارش به جز چند نکته کوچک مناسب است. با این حال قرار است که این نکات هم در نسخه‌های بعدی اسکی‌داک و اسکی‌داکتر رفع بشود تا به صورت رسمی پشتیبانی از زبانهای راست‌نویس مثل فارسی عملی شود.

5. اسکی‌داک در مقایسه شبیه چیست و با چه چیزی متفاوت است؟

اجازه بدهید ابتدا به صورت فنی بگوییم: اگر با مقایسه بخواهیم بدانیم که اسکی‌داک چیست، اسکی‌داک یک پروتکل و یا زبان نشان‌گذاری سبک (lightweight markup) است مثل Markdown، اما قوی‌تر و قابل گسترش. دایره مقایسه را گسترده‌تر کنیم اسکی‌داک چیزی است مثل HTML یا Latex اما خواناتر و ساده‌نویس‌تر. دایره مقایسه را باز هم گسترده‌تر کنیم اسکی‌داک متعلق به پارادایم ویزیویم (WYSIWYM)ها، همچون لاتک و اچ‌تی‌ام‌ال است در برابر پارادایم ویزیویگ‌ها (WYSIWYG) که مثلا Microsoft Word به این خانواده تعلق دارد. اسکی‌داک یک پروتکل سمانتیک (معنایی) برای نوشتن است که با استاندارد DocBook همخوان است.

اگر هیچ یک از این مقایسه‌ها یا اسم‌ها برای شما مفهوم نیست بخشهای بعدی برایتان توضیح بیشتری خواهم داد.

6. یک نفر که به صورت اسکی‌داک می‌نویسد یعنی چه می‌کند؟

آن یک نفر پشت یک ویرایشگر (مثلا خیلی ساده مثل نت‌پد (notepad) یا مخصوص نویسندگان مثل اسکریونر (Scrivener) یا مخصوص کدکاران مثل سابلایم (Sublime) یا حتی اگر دوست داشتید چیزی مثل مایکروسافت ورد) می‌نشیند و شروع به نوشتن می‌کند. او در هنگام نوشتن توجه می‌کند تا از پروتکل نشانگذاری اسکی‌داک پیروی کند. مثلا تیتر مطلبش را این شکلی بنویسد = این یک تیتر است. بعد این نوشته را به صورت ساده (plain text) می‌دهد برنامه اسکی‌داکتر (Asciidoctor) و از آن برنامه می‌خواهد تا نوشته را که یک مقاله، کتاب، پرزنتیشن یا راهنما است را به فرم مشخصی مثلا PDF یا HTML یا DocBook یا ePub تبدیل کند. بعضی از این فرم‌ها خودشان ممکن است در مرحله بعدی به فرم‌های دیگر تبدیل بشوند؛ مثلا DocBook را می‌شود به لاتک تبدیل کرد و از امکانات قوی لاتک در حروف‌چینی بهره برد.

این که گفتیم نوشته را بدهیم برنامه اسکی‌داکتر تا آن را تبدیل کند می‌تواند حالت‌های ساده‌تری هم داشته باشد. مثلا مبدل‌هایی درست کرده‌‌اند برای مرورگر کروم که یک متن به اسکی‌داک را مستقیما تبدیل به فرم مناسب HTML نمایش می‌‌دهد یا مبدلی در یک ویرایشگر خاص (اتم) که شما یک طرف اسکی‌داک می‌نویسید و در طرف دیگر صفحه خروجی HTML آن نمایش داده می‌شود. با این حال فرم استاندارد تبدیل اسکی‌داک با استفاده از برنامه اسکی‌داکتر هم ساده است و هم بقیه امکانات فرمت‌ها هم آنجا هست.

این دو عکس زیر نمونه از کاربرد تبدیل اسکی‌داک به PDF (از طریق Docbook , XeLatex) و همچنین HTML است.

PDF (از طریق Docbook

HTML

a

7. من ترجیح می‌دهم به جای خواندن این نوشته بروم و یک جایی برنامه را نصب کنم و خودم تست کنم؟

برو به asciidoctor.org و همان کاری که می‌خواهی بکن. آنجا هم راهنمایی‌ها هست و هم خود برنامه اصلی و همچنین برنامه‌های دیگری که کار تبدیلات را انجام می‌دهند. شاید در آینده آن راهنما‌ها را به فارسی ترجمه کردیم و این جا گذاشتیم.

8. من برای فارسی نویسی لاتک (در واقع Xelatex) و بسته Xeperisan و چند بسته تخصصی استفاده می‌کنم.‌ آیا می‌‌توانم بعد از این با اسکی‌داک بنویسم و همان امکانات را داشته باشم؟

یک متن فارسی به اسکی‌داک را می‌شود را به Docbook تبدیل کرد و بعد Docbook را به لاتک و بعد آن لاتک را داد Xelatex تا با استفاده از بسته Xepersian تبدیل به یک پی‌دی‌اف فارسی بکند. البته مبدلهایی هم هستند که اسکی‌داک را مستقیم تبدیل به لاتک می‌کنند اما به نظرم هیچکدام کامل نیستند و مهتر این که برای تبدیل اسکی‌داک به دنیای آزاد بسته‌های مختلف لاتک نیاز است که بشود یک سری تبدیلات را تعریف کرد.

من این کار تبدیل را از طریق Docbook آزمایشی انجام داده‌ام (اینجا) و نتایجش بد نبود (چند تا اشکال جزئی که باید در مبدل اسکی‌داکتر رفع شود). اما نکته مهم اینجا است که امکانات فرمی و شکلی زیادی در بسته‌های لاتک و البته Xepersian هست و معمولا ما می‌خواهیم که آن‌ها را هم داشته باشیم. راه این کار استفاده از امکانات role در نشان‌گذاری اسکی‌داک و فرستادن این رل‌ها تا آخر خط تبدیلات است. این رل‌ها اتوماتیک به DocBook می‌رسند اما مبدلی که از Docbook به لاتک تبدیل می‌کند (به اسم dblatex) قرار نبوده و نمی‌تواند که همه‌ بسته‌های موجود و ناموجود لاتک راپشتیبانی کند. متاسفانه خود لاتک هم مفهومی مثل رل یا کلاس ندارد که بشود رل‌ها را تا خود لاتک رساند و بعد آن‌جا کاری برایشان کرد. نتیجه‌ این که در همان مبدل DocBook به لاتک باید کاری بکنیم. این مبدل فعلا موجود، یعنی dblatex، از تبدیلات xslt برای تبدیل استفاده می‌کند و امکان اضافه کردن xsltهای دیگر را هم دارد. من برای کار خودم (به زبان انگلیسی) چیزهایی درست کردم و با آن یک کتاب آکادمیک درآوردم اما این که بیایم و طبق یک استاندار مناسب مبدل مناسب بعضی از بسته‌ها (مثل Xepersisn) را به طور کامل در بیاوریم یک داستان دیگر دارد و کسی یا کسانی باید آستین بالا بزنند. البته توجه کنید که اصولا حتی این تبدیل هم رخ ندهد باز شما می‌توانید در نسخه نهایی لاتک دستی (یا اتوماتیک) بسته Xepersian را اضافه کنید و خروجیتان پی‌دی‌اف فارسی با حروف‌چینی Tex باشد.

9. این که اسکی‌داک در خانواده یا پاردایم ویزیویم است یعنی چه و فرقش با یک سیستم ویزیویگ مثل مایکروسافت ورد چیست؟

بسیاری از ما برای تهیه یک نوشتار در کامپیوتر از نرم‌افزار مایکروسافت‌ورد استفاده می‌کنیم. بعضی دیگر از نرم‌افزارهایی مثل لیبره‌آفیس (Libre Office) و کسانی که کار کتاب‌چینی می‌کنند ممکن است از ادبی ایندیزاین (Adobe InDesign) و کسانی که در کار کتاب‌چینی پیچیده‌تری هستند ممکن است از Arbortext استفاده کنند. این نرم‌افزارها در پارادایم به اصطلاح WYSIWYG (ویزیویگ) هستند که مخفف What you see is what you get یعنی «آن چه که می‌بینی همان‌چیزی است که ]در کار نهایی یا چاپ[ به دست می‌آوری» است. یعنی شما در ویرایشگر چیزی را می‌بینید و انتظار دارید که متن شما در هنگام مصرف (خوانده شدن) همانطور باشد. در برابر این پاردایم یک پارادایم دیگر معروف به WYSIWYM (ویزیویم) هست که مخفف What you see is what you mean یعنی «آن چه که می‌بینی همان‌چیزی است که منظورت بوده» است. در این پاردایم شما مشخص می‌کنید هر بخش از متن شما چه کارکردی دارد و انتظار دارید که سیستم خودش در مورد نمایش با هدایت شما یا بی هدایت شما تصمیم بگیرد. نمونه از پاردایم دوم سیستم لاتک (Latex) یا اچ‌تی‌ام‌ال (HTML) است که با اولی بسیاری از مقالات علمی را می‌نویسند و دومی زیربنای کل دنیای وب است. اسکی‌داک به همین خانواده یا پاردایم ویزیویمها تعلق دارد. می‌شود تصور کرد که سیستم‌های هم هستند که هم ویزیویگ هستند و هم ویزیمین، خیر دنیا و آخرت. اما در عمل این گونه سیستم‌های دوگانه‌زی چندان فراگیر، در دسترس، یا توانمند نیستند و این دلایل خاص خودش را دارد.

در سیستم‌های ویزیویگ مثل مایکروسافت ورد شما به نرم‌افزار ویرایشگر مربوطه می‌روید و در آنجا متن را وارد کرده و بخش‌های مختلف نوشته را اندازه و رنگ و حالت مختلف می‌دهید. اگر تازه‌کار باشید که فقط دستی این چیزها را عوض می‌کنید و اگر اندکی بیشتر کار کرده باشید با استفاده از استایل‌ها (style) این کار را انجام خواهید داد. از آن سو، در سیستم‌های ویزیویم مثل لاتک یا اچ‌تی‌ام‌ال شما یک متن را در هر ویرایشگر که دوست داشته باشید می‌نویسد و در خود متن مشخص می‌کنید که چه بخشی چه چیزی است. مثلا در لاتک

 \section{بخش سوم}
 مطلب بخش سوم

یا در HTML

 <section>
 <h2>بخش پنجم</h2>
<p> بخش پنجم</p>
 </section>

یا در اسکی‌داک

== بخش سوم
مطلب بخش سوم

بعد این نوشته ساده (plain text) را می‌دهید به یک برنامه که آن را نمایش بدهد و یا از آن یک فرم تصویری بسازد. مثلا لاتک را می‌دهید به کمپایلر لاتک و از آن پی‌دی‌اف (PDF) می‌گیرید و یا اچ‌تی‌ام‌ال را می‌دهید به مرورگر و با آن صفحه وب ساخته شده را می‌بینید.

10. حالا که می‌دانیم اسکی‌داک ویزیویم است مزیت آن به عنوان یک ویزیویم بر یک نرم‌افزار ویزیویگ مثل مایکروسافت ورد چیست؟

کمی‌ تاریخ: از لحاظ تاریخی اول ویزیویمها پیدا شدند. بعدتر که ویزیویگ‌ها آمدند خیلی‌ها بر این باور بودند که ویزیویگ خیلی بهتر و راحت‌‌تر از ویزیویم خواهد بود. این راحتی تا اندازه‌ای درست بود و موفقیت نرم‌افزارهایی مثل مایکروسافت ورد نشانهٔ آن است اما داستان به این سادگی نیست. مزیت اصلی ویزیویم‌ها این است که اصطلاحا سمانتیک (معنایی) هستند. یعنی شما خیلی مشخص و واضح می‌گوید که فلان بخش مثلا تیتر یا پانویس یا ارجاع یا چیز دیگر است و بعد هر سیستمی که بخواهد این نوشته‌ را نمایش بدهد می‌داند که آن بخش را به چه شکلی (تیتر، پانویس، ارجاع، …) نمایش دهد. در این روش، اولا که هر سیستمی خودش خواهد دانست که چگونه باید چیزی را نشان بدهد و شما به عنوان نویسنده متن قرار نیست درگیر آن بشوید. مثلا اگر قرار است یک کتاب با استاندار دانشگاه فلان چاپ شود خود آن سیستم پشت و استایلهای مربوطه هر تیتر سطح مثلا دوم را به فونت فلان، فاصله قبلی و بعدی فلان، رنگ فلان و … تبدیل می‌کند. حالا همین نوشته را بخواهید با استاندارد دانشگاه دیگر چاپ کنید نیازی به دستکاری نوشته نیست بلکه استایل را عوض می‌کنید و خروجی عوض می‌شود. مهمتر این که ممکن است اصلا نخواهید چاپ کنید و فرمتان ممکن است بسیار متفاوت باشد. مثلا همین نوشته را برای وب می‌خواهید می‌دهید به سیستم و نسخه وب را می‌گیرید (اگر سیستمش موجود باشد). یا اصلا ممکن است یک دستگاه بخواهد نوشته شما را به صورت صوتی بخواند یا بخواهد آن را تحلیل کند و نیاز داشته باشد بفهمد که کجا پاراگراف است، کجا تیتر سطح سوم است، کجا زیر نویس است، کجا ارجاع است، و چیزهای دیگری از این دست.

قبلترها سیستم‌های ویزیویگ هیچ یک از این امکانات سیستم‌های ویزیویم را نداشتند. بعدتر بعضی از این امکانات به صورت‌هایی دیگر اضافه شدند. مثلا قبلا کاربران ویزیویم‌ها مجبور بودند فرم بخش‌ها را خودشان دستی بدهند (مثلا فونت دهی‌کنند) و مشخص نبود که هر بخش چه کارکردی دارد. بعدها با استفاده از امکاناتی مثل استیل این مشکل تا اندازه‌ای (اما نه کامل) بر طرف شد. در عین حال سیستم‌های ویزیویگ هم به این سمت رفته‌اند که در درون خودشان یک پروتکل نشانگذاری داشته باشند. یعنی مثلا اگر یک فایل مایکروسافت ورد را پسوندش را به zip تغییر بدهید و بعد آن را باز کنید و بعد محتویات یکی از فایلها را نگاه کنید می‌بینید که داخل آن یک ساختاری است که در واقع یک پروتکل نشانگذاری (Markup) است (مثلا Office Open XML).

اما بسیاری از مشکلات همچنان باقی هستند. مثلا سالها پروتکل و مارک‌آپ داخلی مایکروسافت ورد یک مارک‌آپ بسته بود و فقط خودشان از ته و تویش سر در می‌آورند. معنی این حرف این است که اگر می‌خواستید با فرمت ورد کار کنید فقط با مایکروسافت ورد می‌نوشتید و فقط هم با آن باز می‌کردید. بعدا که این پروتکل و مارک‌آپ باز شد باز خیلی از مشکلات سر جایش ماند. چون این مارک‌آپ برای خوانده شدن توسط آدم‌ها طراحی نشده و آدم‌ها عملا نمی‌توانند مستقیما به این پروتکل چیزی بنویسند و باید از یک نرم‌افزاری مثل همان مایکروسافت ورد برای نوشتن استفاده کنند. در عین حال در ویرایشگرهای ویزیویگ از همان مبدا نوشتن خیلی چیزها مشخص نیست. یعنی مشخص نیست که هر تکه از نوشته دقیقا چه کارکردی دارد. مثلا برای برنامه مشخص نیست که یک تکه از نوشته تیتر سطح دوم است یا یک خط نوشته است که صرفا با فونت بزرگ نوشته شده. حتی استفاده از استایلها هم این مشکل را کامل حل نمی‌کند چون هر کسی ممکن است استایلهای خاص خودش را بیرون بدهد و معانی جدید ابداع کند.

به خاطر این مشکلات معمولا در حالت ویزیویگ، ویرایشگر شما یک نرم‌افزار خاص است (مایکروسافت ورد مثلا) و حتی بعضی وقت‌ها نمایشگر هم اجبارا یک نرم‌افزار خاص است (باز هم مایکروسافت ورد مثلا) اما در حالت ویزیویم ویرایشگر شما هر چیزی که دوست دارید است (از خیلی ساده مثل نت‌پد (notepad) تا چیزهای پیچیده‌تر مثل اسکریونر (Scrivener)) و نمایشگر شما هم معمولا ابزارهای مختلف هستند مثل پی‌دی‌اف خوان‌ها و مرورگرها. اگر یک روز مایکروسافت ورد بمیرد یا دیگر نخواهد نسخه‌های قدیم خودش را پشتیبانی کند (فکر نکنید که امکان‌پذیر نیست!) نوشته‌های شما دیگر قابل خواندن یا ویرایش نیستند. البته اگر چنین روزی نزدیک شود احتمالا مبدل‌ها به میان خواهند آمد.

از آن سمت در پاردایم ویزیویم شما معنا و کارکرد هر بخش از نوشته را درون خود آن نوشته گذاشته‌اید. به این زبان یا پروتکلی که این کار را می‌کند می‌گویند مارک‌آپ (Markup). و البته مهمتر از صرف داشتن مارک‌آپ (که الان همه ویزیویگ‌ها هم حداقل داخل خودشان دارند) این است که خواندن و نوشتن به آن مارک‌آپ برای آدمی‌زاده ساده و راحت باشد.

پاردایم ویزیوم نشان داده است که در بعضی‌جاها بهتر از پاردایم ویزیویگ کار می‌کند. کسانی که یک کار غیر ساده بخواهند با مایکروسافت ورد انجام بدهند می‌دانند که چه مشقاتی در سر راهشان است و بعضی از این مشقات ریشه در اختلاف پاردایم‌ها دارد. کسانی که با هر دو سیستم‌ لاتک و مایکروسافت ورد کار کرده‌‌اند می‌دانند که لاتک (از پاردایم ویزیویم) با وجود بعضی از سختی‌ها نهایتا سیستمی سر‌راست‌تر و پایدار‌تری است. البته کیفیت حروف‌چینی لاتک هم بهتر از مایکروسافت‌‌ورد است اما این داستانی جداست. کسانی هم که قرار است متن‌ها را به طور اتوماتیک تنظیم و صفحه‌بندی کنند هم معمولا سیستم‌های ویزیویگ چندان به کارشان نمی‌آید.

نهایتا دنیای امروز ما بین ویزیویگ‌ها و ویزیویمها تقسیم شده است. اکثریت آدم‌ها در دنیا کارشان را روی مایکروسافت ورد که ویزیویگ است انجام می‌دهند —که چون نرم‌افزاری پولی است یا چیزی به شرکت مایکروسافت می‌دهند و یا البته به طور غیر قانونی استفاده می‌کنند. کسانی که از مایکروسافت خوششان نمی‌آید از چیزی مثل Libre Office که آن هم ویزیویگ است اما متن‌-باز و مجانی استفاده می‌کنند. از آن سمت بسیاری از کسانی که در دانشگاه‌ها و مخصوصا در رشته‌های فنی مقاله می‌نویسند از لاتک که ویزیویم است استفاده می‌کنند. کسانی که در کار صفحه‌بندی هستند یا از چیز‌هایی مثل Adobe InDesign و یا QuarkExpress استفاده می‌کنند که ویزیویگ هستند یا از Adobe Framemaker که در واقع ویزیویم است. نمی‌دانم اما فکر کنم Arbortext که در صنعت چاپ طرفدار دارد هم یک سیستم دو گانه است.

اسکی‌داک متعلق به پاردایم ویزیویم است. اما داخل همین پاردایم هم دو تا خانواده است. خانواده سبک‌وزن‌ها و خانواده سنگین‌وزن‌ها. اسکی‌داک متعلق به خانواده سبک‌وزن‌ها است اما جذابیتش این است که همتای یکی از آن سنگین‌وزن‌ها (البته نسخه کوچکتر آن سنگین وزن …​ بگذریم!) طراحی شده و در عین سبک‌وزنی امکاناتش بالاست. در پاراگرافهای دیگر بخوانید که اصولا فرق سنگین‌وزن و سبک‌وزن چیست.

11. چرا اصلا پروتکل نشان‌گذری سبک مگر مشکل HTML یا Latex یا DocBook چیست؟

مشکل اصلی سنگین‌وزن‌ها این است که معمولا خواندن و نوشتنشان برای آدمها ساده و راحت نیست. اما مورد به مورد که بخواهیم بگوییم:

DocBook استاندارد جا افتاده و استخوان‌دار و قوی است. مشکلش این است که به فرم XML است و اگر چه می‌شود همینطور خواند و از آن سر در‌آورد اما واقعا چیزی نیست که آدم‌ها بخواهند آن شکلی بنویسند. پروتکل DITA هم که همتای داک‌بوک است همین داستان را دارد.

نوشتن HTML هم همین داستان را دارد. یعنی واقعا خیلی سخت و ناانسانی است که کسی بخواهد یک رمان با استفاده از HTML بنویسد. در عین حال خود HTML از لحاظ سمانتیک نسبت به چیزی مثل DocBook ساده است و خیلی چیزها را نمی‌تواند پوشش بدهد. البته HTML این امکان را دارد تا با استفاده از یک‌سری از امکانات خودش (مثل کلاس‌ها یا چیزی مثل data attribute) از لحاظ سمانتیکی هم گسترش پیدا کند. حتی تلاش‌هایی هم مثل HTMLBook هست تا این اتفاق بیافتد اما باز مشکل اصلی سر جایش است که HTML نویسی و گذاشتن تگ‌های باز و بسته برای هر تکه از نوشته، نوشته را از حالت انسان-خوان و انسان-نویس در می‌آورد‌.

لاتک و سایر زبان‌های خانواده Tex ظاهرا این مشکلات را کمتر از HTML یا DocBook دارند و خیلی‌ها همین امروز با این زبان مقاله و کتاب می‌نویسند. البته توجه کنید که خود Tex بیشتر یک زبان حروف‌چینی است و اصولا مناسب نوشتن نیست —مثلا در نقطه اوج رمان یک جا می‌بینی نوشته که پاراگراف بعدی یک سانت و نیم به پایین شیفت داده شود!— اما LaTex (لاتک) به Tex یک فرم سمانتیک نسبتا معقول داده است. پس مشکل چیست؟ شاید آزادی بیش از حد! در یک نوشته لاتک نمی‌شود فهمید که یک بخش نوشته که توسط یک محیط (environment) یا ماکرو مشخص شده صرفا یک تغییر فرمی مورد نظر بوده (مثلا اینجا باید با رنگ قرمز نوشته شود) یا این که بخشی از ساختار سمانتیک و معنایی است (مثلا این یک هشدار است حالا اگر خواستی قرمز یا هر جور که صلاح است نشان داده شود). بعد هم خود لاتک از لحاظ فرم سمانتیک مثل HTML و در مقایسه با چیزی مثل DocBook نسبتا ساده است و هر بسته لاتک ممکن است یک سری المان‌های معنایی برای خودش داشته باشد که همانطور که گفتیم فرق معناها با فرم‌ها مشخص نیست. نوشته‌هایی که مردم در فرم لاتک می‌نویسند را نگاه کنید و ببینید که بسیاری از نوشته‌ها ملغمه‌های ناجور و ناخوانایی از ماکروهای فرمی و معنایی هستند. تازه عمر بسته‌های لاتک می‌تواند کوتاه باشد و اگر شما در نوشته خودتان از یک بسته استفاده کرده باشید ممکن است بعد از چندی بیایید و ببینید که دیگر نوشته لاتک شما تبدیل به پی‌دی‌اف یا چیز دیگر نمی‌شود. و این سوای این است که ممکن است بسته‌ها با هم تضاد و ناهمخوانی هم داشته باشند. حداقل در پروتکل‌هایی مثل HTML اگر که استایلی دیگر نبود به متن اصلی خللی نمی‌رسد و صرفا آن بخش آن طور که باید نمایش داده شود نمایش داده نمی‌شود. نهایتا این که اگر زمانی با لاتک کار کرده باشید می‌بینید که لاتک را نمی‌شود به راحتی به فرم معنایی مثل HTML تبدیل کرد. بعضی‌ها آمده‌اند و کارهایی کرده‌اند اما همه آن کارها بسیار داستان‌دار و چالش‌دار هستند و کاربردشان هم معمولا ساده نیست. دلیل این سختی تبدیل به فرم‌هایی مثل HTML دو چیز است. اول این که به جز چند بخش استاندارد سمانتیک لاتک (مثلا این که این بخش تیتر سطح سوم است) بقیه سمانتیک‌ها دلبخواه بسته‌های لاتک هستند که هر کسی برای خودش آمده و سازی زده. این تبدیل یک سمانتیک به سمانتیک دیگر را مشکل یا حتی غیر ممکن می‌کند. دوم این که از نگاه برنامه‌‌ای که قرار است نوشته‌ای به زبان Tex (و در نتیجه لاتک) را بگیرد و آن را تبدیل به یک فرمت دیگر بکند گرامر زبان تخ (Tex) پیچیدگی‌های خاص خودش را دارد (چون که Turing Complete است اینجا … بگذریم).

12. چرا اسکی‌داک و چرا نه مارک‌داون و یا یک پروتکل نشان‌گذاری سبک (کم وزن) دیگر؟

اولا بیشتر پروتکل‌های نشان‌گذاری سبک (کم وزن) خیلی شبیه به هم هستند. معمول‌ترین این پروتکل‌‌ها مارک‌داون (Markdown) است که در بسیاری از سیستم‌ها و نرم‌افزارها هم پشتیبانی می‌شود. مشکل مارک‌داون این است که خیلی از امکانات را ندارد و در عین حال امکان توسعه نیز ندارد. در عین حال به دلیل این محدودیت‌ها چند مدل دیگر از مارک‌داون‌های پیشرفته ساخته شده است (مثلا مارک‌داون متعلق به Pandoc) که آن‌ها نیز امکان توسعه ندارند در عین این که میان خودشان جنگ است. پروتکل‌های نشان‌گذاری سبک دیگری هم هست، مثلا کلا سایت ویکیپدیا بر مبنای پروتکل نشانگذاری MediaWiki ساخته شده است که با وجود توانمندی‌هایش باز به نظر نمی‌رسد که در دنیای نوشتاری به غیر از خود ویکی‌ها جایگاه چندانی داشته باشد (شاید به دلیل تمرکزش بر ویکی‌سازی).

نقطه قوت asciidoc به سایر پروتکل‌های نشان‌گذاری موجود این است که به غیر از قوی و خوانا بودن امکان توسعه معنایی و یا فرمی را به صورت مناسب و درست در اختیار می‌گذارد. در عین حال asciidoc با نگاه به فرم DocBook و همخوان بودن با آن نوشته شده. DocBook یک استاندارد ساختار‌دهی برای نوشته‌ها توسط XML است که البته برای خوانده شدن توسط آدم‌ها چندان راحت‌ نیست اما از لحاظ سمانتیک کاملا قوی و جا افتاده است.

13. فرق اسکی‌داک با اسکی‌داکتر چیست؟

اول اسکی‌داک بود (از سال ۲۰۰۲). هم به معنای پروتکل نشان‌گذاری و هم به معنای مبدلش. کسی که اسکی‌داک را ساخته بود، برنامه مبدلش را هم (به زبان Python) نوشته بود. بعدا یک عده‌ای آمدند و برای اسکی‌داک برنامه مبدل جدیدی و قوی‌تری نوشتند (اینبار با زبان Ruby) و اسمش را گذاشتند Asciidoctor (اسکی‌داکتر). حالا به این زبان یا پروتکل نوشتاری می‌گویند اسکی‌داک و برنامه مبدل جدید می‌گویند اسکی‌داکتر. اما برنامه مبدل جدید امکانات تازه‌ای را هم به پروتکل اسکی‌داک اضافه کرده است، بنابر بعضی وقت‌ها وقتی می‌گوییم اسکی‌داکتر منظورمان همان زبان یا پروتکل اسکی‌داک است.

14. چه کسی پشت اسکی‌داک و اسکی‌داکتر است؟

یک چند نفر آدم در دنیای کد‌های باز. البته عملا الان یک نفر راهبری کلش را در دست دارد. کدها هم روی وبسایت github هستند.

15. اگر اسکی‌داک از بی‌کسی بمیرد چه خاکی باید بر سر کرد؟

هیچ خاکی. نوشته‌های شما که انسان-خوان هستند و مشکلی برای خواندنش نیست. شما هم نوشته‌هایتان را قبلا به چیزی مثل DocBook تبدیل کرده‌اید و آن هم یک استاندارد باز و جا افتاده است. احتمالا تبدیلات HTML هم دارید که آن هم حالا حالا هست.

16. این نوشته را با چی یا چه پروتکلی نوشتی؟

با پروتکل اسکی‌داک نوشتم. توی ویرایشگری که دوست داشتم (Scrivener) با آن بنویسم. بعد تبدیل کردم به HTML و بعد خروجی را کپی پیست کردم به نرم‌افزار وبسایت.