| 164 | |
| 165 | |
| 166 | class HeaderIdExtension (markdown.Extension): |
| 167 | def __init__(self, configs): |
| 168 | # set defaults |
| 169 | self.config = { |
| 170 | 'level' : ['1', 'Base level for headers.'], |
| 171 | 'forceid' : ['True', 'Force all headers to have an id.'] |
| 172 | } |
| 173 | |
| 174 | for key, value in configs: |
| 175 | self.setConfig(key, value) |
| 176 | |
| 177 | def extendMarkdown(self, md, md_globals): |
| 178 | md.registerExtension(self) |
| 179 | self.processor = HeaderIdProcessor(md.parser) |
| 180 | self.processor.md = md |
| 181 | self.processor.config = self.config |
| 182 | # Replace existing hasheader in place. |
| 183 | md.parser.blockprocessors['hashheader'] = self.processor |
| 184 | |
| 185 | def reset(self): |
| 186 | self.processor.IDs = [] |
| 187 | |
| 188 | |
| 189 | def makeExtension(configs=None): |