Add clear state
This commit is contained in:
parent
47dd9bf350
commit
c4f6e0a33d
|
|
@ -2,7 +2,14 @@
|
|||
# Allows filtering and mapping based on blocks and meta keys.
|
||||
#
|
||||
|
||||
import pandoc
|
||||
from .pandoc import Pandoc
|
||||
|
||||
class CallbackClass:
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def clear(self):
|
||||
pass
|
||||
|
||||
class MetaCallback:
|
||||
def __init__(self, key, callback, replace=False):
|
||||
|
|
@ -13,7 +20,10 @@ class MetaCallback:
|
|||
def __call__(self, data):
|
||||
return self.callback(data)
|
||||
|
||||
class MultiCallback:
|
||||
def clear(self):
|
||||
pass
|
||||
|
||||
class MultiCallback(CallbackClass):
|
||||
def __init__(self, filter):
|
||||
self.filter = filter
|
||||
self.callbacks = dict()
|
||||
|
|
@ -32,10 +42,15 @@ class MultiCallback:
|
|||
else:
|
||||
return block
|
||||
|
||||
def clear(self):
|
||||
for key,value in self.callbacks.items():
|
||||
if isinstance(value, CallbackClass):
|
||||
value.clear()
|
||||
|
||||
|
||||
class RenderPipeline:
|
||||
def __init__(self):
|
||||
self.pandoc = pandoc.Pandoc()
|
||||
self.pandoc = Pandoc()
|
||||
self.metacallbacks = dict()
|
||||
self.callbacks = dict()
|
||||
|
||||
|
|
@ -45,6 +60,13 @@ class RenderPipeline:
|
|||
def AddCallback(self, key, callback, replace=False):
|
||||
self.callbacks[key] = {'cb' : callback, 'replace' : replace}
|
||||
|
||||
def ClearState(self):
|
||||
for key,value in self.metacallbacks.items():
|
||||
value.clear()
|
||||
for key,value in self.callbacks.items():
|
||||
if isinstance(value['cb'], CallbackClass):
|
||||
value['cb'].clear()
|
||||
|
||||
def ParseBlock(self, block):
|
||||
|
||||
if 'c' not in block:
|
||||
|
|
@ -76,6 +98,7 @@ class RenderPipeline:
|
|||
return output_list
|
||||
|
||||
def __call__(self, data):
|
||||
self.ClearState()
|
||||
json_data = self.pandoc.ConvertToJson(data)
|
||||
|
||||
for meta_key, meta_value in json_data['meta'].items():
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user