This is the documentation page for Модуль:template parser

Бул модуль викитекстте табылган шаблон чакырыктарын талдоо жана табуу функцияларын камсыз кылат.

lua
text шаблон чакыруусу катары талдап, жуп маанилерди, калыптын аталышын жана аргументтерди (анонимдүү, номерленген жана аталган аргументтерди камтыган) кайтарат. Эгерде текстти шаблон чакыруусу катары талдоо мүмкүн болбосо, функция nil кайтарат. Талдоочу шаблон аргументтери катары берилген бардык викитекстти туура талдайт (мисалы, суб шаблондор, аргументтер, таблицалар ж.б.), бирок сап белгилөөдө жарактуу шаблон түзбөсө, анда ал nil кайтарып берет.
lua
Тексттеги бардык шаблондук чакырууларды табат. Бул for билдирүүлөрүндө итератор катары колдонуу үчүн иштелип чыккан жана ар бир чакыруу үчүн төрт маанини кайтарат:
  1. Үлгү аты.
  2. Үлгү аргументтери.
  3. Түпнуска текстте көрүнүп тургандай, толук шаблонду чакыруу.
  4. Берилген тексттин ичинде калыптын индекси; жалпы Луа сыяктуу эле, тексттин башталышы индекс 1 болуп саналат.

Ыңгайлуу болуу үчүн, шаблон аталыштары эки жол менен нормалдаштырылат:

  1. Алар алдын ала иштетилет, демек алар камтыган бардык калыптар ({{}}) жана параметрлер (Калып:param) чечилет.
  2. Бардык кайра багыттоолор алардын канондук эквиваленттерине айландырылат (мисалы, {{l}} {{link}} катары каралат).

Жараксыз аталыштары бар шаблондор (алдын ала иштетилгенден кийин) өткөрүп жиберилерин эске алыңыз. Өндүрүштүк себептерден улам, алдын ала иштетүү шаблондун аргументтер таблицасындагы ачкычтарга гана колдонулат, андыктан аны чакыруучу модулдун маанилерине (тандап) керек болгондо колдонуу керек.

Талдоочу <noinclude>...</noinclude>, <includeonly>...</includeonly> жана <onlyinclude>...</onlyinclude> тегдерин сыйлай турганын эске алыңыз. Демейки шартта, text которуу сыяктуу каралат, бул <noinclude>...</noinclude> тегдердин ортосундагы текст этибарга алынбай турганын жана <onlyinclude>...</onlyinclude> тэгдер бар болсо, урматталат. Эгерде not_transcluded параметри lua деп коюлса, анда text которула элек сыяктуу каралат, бул <includeonly>...</includeonly> тегдер анын ордуна этибарга алынбайт.

Талдоочу абдан так болсо да, кээ бир учурларда аны менен жергиликтүү талдоочунун ортосунда кээ бир карама-каршылыктар дагы деле болушу мүмкүн.