У нас есть небольшая вики-ферма (та же тема; шесть языков и она растет) и недавно мы обновили большинство шаблонов, чтобы использовать несколько слоев меташаблонов, чтобы облегчить обслуживание и удобочитаемость.
Мы хотим стандартизировать эти шаблоны для всех языков, поэтому большинство из них будут содержать один и тот же код на каждой вики. Вот почему, чтобы еще больше упростить обслуживание, мы рассматриваем возможность использования пугающего включения (точнее, подстановки), чтобы эти меташаблоны хранились только в одной вики и должны были обновляться только в этой вики, а не в каждой. одиночная версия.
(Примечание: если вы можете придумать идею получше, не стесняйтесь комментировать этот пост!)
Однако пугающее включение названо так из-за того, что оно пугающе неэффективно, поэтому мне нужно больше узнать о том, как контент, включенный таким образом, кэшируется MediaWiki.
Если я правильно понимаю, HTML-вывод страницы хранится в кеше парсера в течение $wgParserCacheExpireTime. Значение по умолчанию — 1 день, но безопасно увеличить его для малых и средних вики, потому что содержимое будет обновляться в любом случае, если обновляется сама страница или включенная страница (и в некоторых других незначительных случаях).
Также есть продолжительность кеша для пугающего включения: $wgTranscludeCacheExpiry. Хорошо, потому что вы не хотели бы делать этот HTTP-вызов каждый раз. Однако значение по умолчанию, равное 1 часу, не подходит для небольших вики-сайтов, на которых статьи можно просматривать только время от времени, что делает этот кеш абсолютно бесполезным.
Если страница A использует шаблон B, который включает шаблон C из другой вики, должна ли страница A полностью регенерироваться после превышения $wgTranscludeCacheExpiry? Или он по-прежнему может использовать кэш синтаксического анализатора шаблона B до тех пор, пока не будет превышено значение $wgParserCacheExpireTime?
Затем вы можете увеличить $wgTranscludeCacheExpiry до месяца, как и кеш парсера, но страница не будет обновляться автоматически, если включенный шаблон был, не так ли?
Если да, будет ли обновление страниц с использованием включенного шаблона единственным решением для обновления других вики?