LinkExchange и MoinMoin
Для использования LinkExchange в MoinMoin выполните следующее:
- Установите LinkExchange и 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),
u'</div>',
self.emit_custom_html(self.cfg.page_footer2),
]
return u''.join(parts)
Контекстные ссылки
Для использование контекстных ссылок нужно сделать следующее:
- Установите LinkExchange и LinkExchange.MoinMoin.
- Скопируйте файл linkexchange/MoinMoin/parser/linkexchange_wiki.py (или сделайте символическую ссылку на него) в каталог data/plugin/parser вашего экземпляра вики, либо создайте в этом каталоге файл linkexchange_wiki.py содержащий одну строку from linkexchange.MoinMoin.parser.linkexchange_wiki import *.
- Создайте файл конфигурации linkexchange.cfg, в котором определите клиент sape_context, и дайте ссылку на него в файле wikiconfig.py в параметре linkexchange_config.
- Используйте парзер linkexchange_wiki для обработки текста, в котором будут продаваться контекстные ссылки. Можно обработать весь текст страницы, для этого в заголовке страницы укажите #format linkexchange_wiki.
