LinkExchange и MoinMoin
Для использования LinkExchange в MoinMoin выполните следующее:
- Скопируйте файл linkexchange/MoinMoin/macro/LinkExchangeBlock.py (или сделайте символическую ссылку на него) в каталог data/plugin/macro вашего экземпляра вики, либо создайте в этом каталоге файл LinkExchangeBlock.py содержащий одну строку from linkexchange.MoinMoin.macro.LinkExchangeBlock import *.
- Создайте файл конфигурации linkexchange.cfg и дайте ссылку на него в файле wikiconfig.py в параметре linkexchange_config.
- Используйте макрос <<LinkExchangeBlock(индекс)>> для размещения блока ссылок, где индекс - номер блока начиная с нуля.
Фрагмент файла конфигурации wikiconfig.py для примера:
class Config(DefaultConfig): ... linkexchange_config = './linkexchange.cfg'
Пример конфигурации linkexchange.cfg:
[client-1] type = sape user = user12345 db_driver.type = shelve db_driver.filename = %(basedir)s/sape-XXX.db [client-2] type = linkfeed user = user12345 db_driver.type = shelve db_driver.filename = %(basedir)s/linkfeed-XXX.db [formatter-1] type = list count = 2 class_ = linx prefix = "- " suffix = ". " [formatter-2] type = inline count = 2 class_ = linx delimiter = " | " prolog = "| " epilog = " |" [formatter-3] type = list count = none class_ = linx prefix = "+ " suffix = ". "
Макрос LinkExchangeBlock можно использовать в классе темы, например:
class Theme(ThemeBase): ... def linkexchange_block(self, num, d): request = self.request try: macro = d['macro'] except KeyError: try: from MoinMoin.macro import Macro except ImportError: from MoinMoin.wikimacro import Macro pname = request.cfg.default_markup or 'wiki' try: Parser = wikiutil.searchAndImportPlugin(request.cfg, 'parser', pname) except AttributeError: Parser = wikiutil.importPlugin(request.cfg, 'parser', pname, 'Parser') parser = Parser(u'', request) macro = d['macro'] = Macro(parser) return macro.execute('LinkExchangeBlock', num) def footer(self, d, **keywords): page = d['page'] parts = [ self.endPage(), self.linkexchange_block(0, d), u'</div></div>', self.emit_custom_html(self.cfg.page_footer1), u'<div class="footer">', self.credits(d), self.pageinfo(page),<
