زبان نشانه‌گذاری

زبان نشانه‌گذاری (به انگلیسی: Markup Language) نوعی زبان توصیفی است که متن و اطلاعات اضافه دربارهٔ متن را با هم ادغام می‌کند. این عبارت در واژگان رایانه و وب معمولاً به یک شبه‌زبان برنامه‌نویسی گفته می‌شود. اطلاعات اضافه‌ای که یک زبان نشانه‌گذاری در نظر می‌گیرد به وسیلهٔ نوعی نشانه‌گذاری توصیف می‌شود و در بین متن قرار می‌گیرد و در نهایت در زمان نمایش یا چاپ، این اطلاعات برای نحوهٔ نمایش متن اصلی و عناصر دیگر موجود در سند استفاده می‌گردد.
اِچ. تی. اِم. اِل یا «زبان نشانه‌گذاری فوق متن» یکی از معروفترین زبان‌های نشانه‌گذاری امروزی و یکی از بنیانهای اصلی وب است. هر صفحه موجود در وب با این زبان نوشته و نمایش داده می‌شود. این زبان مورد استفاده برای سندهای وب جهانی است. اچ‌تی‌ام‌ال شکلی از اس‌جی‌ام‌ال (به انگلیسی: SGML) است که از تگ‌ها برای نشانه‌گذاری عناصری چون متن و گرافیک استفاده می‌کند تا برای مرورگرهای وب مشخص شود که این عناصر را چگونه برای کاربر نمایش دهند و به عملیاتی چون فعال کردن یک پیوند از طریق فشردن یک کلید یا دکمهٔ موشی چگونه پاسخ دهند.
به شکل تاریخی نشانه‌گذاری در صنعت چاپ برای یکسان‌سازی شیوهٔ توصیف اسناد بین نویسندگان، ویرایشگران و مسئولین چاپ استفاده می‌شده‌است. امروزه نیز از این روش به شکل رایانه‌ای (و کمتر به شکل دستی) استفاده می‌شود.
یک زبان نشانه گذاری، یک زبان ساختگی است که با استفاده از یک مجموعه از حاشیه نویس‌های متن که دستورهایی را در مورد ساختار متن یا چگونگی نمایش آن ارائه می‌دهد. زبان‌های نشانه‌گذاری برای قرن‌ها در حال استفاده بوده‌اند و در سالهای اخیر در رایانه‌ها در سیستم‌های حروف‌چینی و پردازش واژه‌ها استفاده شده‌اند.

انواع

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

نشانه‌گذاری نمایشی

نوعی از نشانه‌گذاری که توسط سامانه‌های کلمه‌پرداز قدیمی استفاده می‌شدند؛ کدهای باینری که در متن‌هایی جاسازی می‌شدند تا تأثیر دریافت عین مشاهده (ویزیویگ) را داشته باشند. این نوع نشانه‌گذاری معمول‍اً از دید کاربرهای حقیقی، حتی نویسندگان و ویرایشگران، پنهان است.

نشانه‌گذاری رویه‌ای

نشانه‌گذاری در متن جای‌گذاری می‌شود و دستورالعملی برای برنامه‌هایی که متن را پردازش می‌کنند، فراهم می‌کند. نمونه‌های شناخته‌شدهٔ این نوع نشانه‌گذاری، شامل تک (نرم‌افزار) و پست‌اسکریپت می‌شود. انتظار می‌رود تا پردازشگر متن را از ابتدا تا انتها، طبق دستورالعملی که با آن مواجه می‌شود اجرا کند. متن با این نوع نشانه‌گذاری، اغلب به‌طور مستقیم توسط نویسنده دست‌کاری می‌شود. سامانه‌های معروف نشانه‌گذاری رویه‌ای، معمول‍اً سازنده‌های برنامه‌نویسی را در بر می‌گیرند، به همین علت ماکروها و زیررویه‌ها می‌توانند به وسیلهٔ نام؛ تعریف یا استناد داده شوند.

نشانه‌گذاری توصیفی

درحقیقت، انواع مختلف نشانه‌گذاری تفاوت فاحشی با یک‌دیگر ندارند. در سامانه‌های جدید پردازش کلمه، نشانه‌گذاری نمایشی اغلب در سامانه‌های نشانه‌گذاری توصیفی‌محور مانند اکس‌ام‌ال ذخیره می‌شود و سپس به شکل رویه‌ای و با پیاده‌سازی پردازش می‌شود. ساختارهای برنامه‌نویسی در سامانه‌های نشانه‌گذاری رویه‌ای مانند تک (TeX) ممکن است برای ساخت سامانه‌های سطح بال‍اتر نشانه‌گذاری که بیشتر توصیفی هستند؛ مانند لاتک، استفاده شوند.

امکانات

یک امکان رایج اغلب زبان‌های نشانه‌گذاری؛ این است که آن‌ها متن یک مستند را با دستورالعمل‌های نشانه‌ای در یک جریان داده یا فایل یک‌سان، ترکیب می‌کنند. این‌کار الزامی نیست، در واقع این ممکن است که نشانه‌گذاری را از محتوای متنی به وسیلهٔ نشانه‌گرها؛ افست‌ها و IDها، جداسازی کرد. 
<h1>Anatidae</h1><p>
The family <i>Anatidae</i> includes ducks, geese, and swans,
but <em>not</em> the closely related screamers.
</p>
کدهایی که در بین دوعل‍امت کوچک‌تر و بزرگ‌تر محصور شده‌اند (مثل <این>)؛ دستورالعمل‌های نشانه‌گذاری هستند که به «تگ» شناخته می‌شوند. درحالی که متن بین این دستورالعمل‌ها در واقع عین متن مستند هستند. کدهای h1، p و em مثال‌هایی از نشانه‌گذاری معنایی هستند که معنی و منظور متنی را که شامل می‌شوند را منتقل می‌کنند. h1، به معنای عنوان سطح اول؛ p به معنای پاراگراف و em به معنای کلمه یا عبارت تأکید شده‌است. برنامه‌ای که چنین نشانه‌گذاری را تفسیر می‌کند، ممکن است قواعد و سبک خود را برای نشان دادن بخش‌های مختلف متن با استفاده از فونت‌های مختلف، ضخامت‌ها، ابعاد مختلف، رنگ‌ها یا سایر سبک‌ها اعمال کند. یک تگ با عنوان «h1» ممکن است با یک فونت بزرگ و به‌خصوص نمایش داده شود، یا با هر سبک و اندازهٔ دیگری نشان داده شود یا حتی تغییری با سایر اجزای متن نداشته باشد. درعوض، تگ i در اچ‌تی‌ام‌ال مثالی از نشانه‌گذاری نمایشی‌ست که برای مشخص‌کردن یک ویژگی خاص متن (در اینجا استفادهٔ فونت ایتالیک) بدون ذکر دلیل استفاده می‌شود.

استفاده‌های جایگزین

از آن‌جا که ایدهٔ استفاده از زبان نشانه‌گذاری، از مستندات متنی نشأت گرفته‌است، استفاده از زبان نشانه‌گذاری در نشان‌دادن و ارائهٔ سایر انواع اطل‍اعات مانند گرافیک برداری، خدمات وب و واسط کاربر در حال افزایش است. بیشتر این مثال‌ها؛ برنامه‌های اکس‌ام‌ال هستند، به این جهت که اکس‌ام‌ال یک زبان گسترده است و در عین حال به خوبی تعریف شده‌است.
از آنجا که زبان‌های نشانه‌گذاری و اغلب زبان‌های توصیف‌گر داده‌ای، زبان‌های برنامه‌نویسی نیستند و درحقیقت داده‌هایی بدون دستورالعمل‌ها هستند، نسبت به زبان‌های برنامه‌نویسی راحت‌تر دستکاری می‌شوند. برای مثال، صفحات وب به صورت مستندات اچ‌تی‌ام‌ال نمایش داده می‌شوند و نه کدهای C. به همین علت است که می‌توانند در سایر صفحات وب جای‌گذاری شوند، یا حتی درصورتی که قسمتی از آن‌ها بارگیری شود، باز هم نمایش داده می‌شوند.