diff --git a/wiki/base/format.py b/wiki/base/format.py index 7333096..8a4b220 100644 --- a/wiki/base/format.py +++ b/wiki/base/format.py @@ -25,8 +25,7 @@ $Id$ import re from zope.interface import implements -from cybertools.wiki.base.link import Link -from cybertools.wiki.base.manager import SampleManager +from cybertools.wiki.base.link import Link, LinkManager from cybertools.wiki.interfaces import IFormat, IFormatInstance @@ -73,7 +72,7 @@ class BasicFormat(object): def __init__(self, manager=None): if manager is None: - manager = SampleManager() + manager = LinkManager() self.manager = manager def getInstance(self, context): diff --git a/wiki/base/link.py b/wiki/base/link.py index 1a9657b..91bddc0 100644 --- a/wiki/base/link.py +++ b/wiki/base/link.py @@ -25,7 +25,34 @@ $Id$ import re from zope.interface import implements -from cybertools.wiki.interfaces import ILink +from cybertools.wiki.interfaces import ILink, ILinkManager + + +class LinkManager(object): + """ A very basic link manager implementation. + """ + + implements(ILinkManager) + + def __init__(self): + self.links = {} + + def registerLink(self, link): + if link.identifier is None: + self.generateLinkIdentifier(link) + if link.identifier not in self.links: + self.links[link.identifier] = link + link.manager = self + + def unregisterLink(self, link): + if link.identifier in self.links: + del self.links[link.identifier] + link.manager = None + + def generateLinkIdentifier(self, link): + identifier = 'l%07i' % (max(self.links.keys() or [0]) + 1) + link.identifier = identifier + return identifier class Link(object): diff --git a/wiki/base/manager.py b/wiki/base/wiki.py similarity index 50% rename from wiki/base/manager.py rename to wiki/base/wiki.py index 00d5bd0..57f401b 100644 --- a/wiki/base/manager.py +++ b/wiki/base/wiki.py @@ -17,37 +17,30 @@ # """ -A Wiki manager, i.e. a repository for pages and other information like -links, images, etc. +A Wiki manager managing wikis and wiki-related objects, esp plugins. $Id$ """ from zope.interface import implements -from cybertools.wiki.interfaces import IWikiManager +from cybertools.wiki.interfaces import IWikiManager, IWiki, IWikiPage -class SampleManager(object): - """ A very basic Wiki manager implementation. - """ +class WikiManager(object): + + implements(IWikiManager) def __init__(self): - self.links = {} + self.wikis = {} + self.plugins = {} - def registerLink(self, link): - if link.identifier is None: - self.generateLinkIdentifier(link) - if link.identifier not in self.links: - self.links[link.identifier] = link - link.manager = self - def unregisterLink(self, link): - if link.identifier in self.links: - del self.links[link.identifier] - link.manager = None +class Wiki(object): - def generateLinkIdentifier(self, link): - identifier = 'l%07i' % (max(self.links.keys() or [0]) + 1) - link.identifier = identifier - return identifier + implements(IWiki) + + +class WikiPage(object): + + implements(IWikiPage)