timonwong / OmniMarkupPreviewer

Sublime Text 2&3 plugin to live preview markup files, supported (not limited to) markup formats are markdown, reStructuredText, WikiCreole and textile.
MIT License
500 stars 75 forks source link

Conflict with other plugins that also use markdown library #88

Open houcheng opened 8 years ago

houcheng commented 8 years ago

Hi, I am author of "google dictionary" plugin, I found this plugin conflict with "color helper" and "google dictionary"'s markdown library. After install one of above package, the page rendering would fail and raise an exception.

By disabling the "strikeout" extension, the error message is gone and page render works. I guess some compatible issue is in this extension, please look into it.

Thank you. Houcheng Lin

The error message is: OmniMarkupPreviewer: [ERROR] Exception occured while rendering using MarkdownRenderer Traceback (most recent call last): File "/home/houcheng/.config/sublime-text-3/Packages/OmniMarkupPreviewer/OmniMarkupLib/RendererManager.py", line 266, in render_text rendered_text = renderer.render(text, filename=filename) File "/home/houcheng/.config/sublime-text-3/Packages/OmniMarkupPreviewer/OmniMarkupLib/Renderers/MarkdownRenderer.py", line 48, in render extensions=self.extensions) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/init.py", line 493, in markdown md = Markdown(_args, *_kwargs) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/init.py", line 159, in init configs=kwargs.get('extension_configs', {})) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/init.py", line 185, in registerExtensions ext = self.build_extension(ext, configs.get(ext, {})) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/init.py", line 291, in build_extension return module.makeExtension(configs) File "/home/houcheng/.config/sublime-text-3/Packages/OmniMarkupPreviewer/OmniMarkupLib/Renderers/libs/mdx_strikeout.py", line 17, in makeExtension return StrikeoutExtension(configs=configs) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/extensions/init.py", line 52, in init self.setConfigs(kwargs) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/extensions/init.py", line 86, in setConfigs self.setConfig(key, value) File "/home/houcheng/.config/sublime-text-3/Packages/python-markdown/st3/markdown/extensions/init**.py", line 73, in setConfig print(self.config[key]) KeyError: 'configs'

cmheia commented 8 years ago

BracketHighlighter depends on python-markdown, so I'm facing this error too.

OmniMarkupPreviewer: [INFO] Launching web browser for http://127.0.0.1:51004/view/28
OmniMarkupPreviewer: [ERROR] Exception occured while rendering using MarkdownRenderer
  Traceback (most recent call last):
    File "%appdata%\Sublime Text 3\Packages\OmniMarkupPreviewer\OmniMarkupLib\RendererManager.py", line 266, in render_text
    rendered_text = renderer.render(text, filename=filename)
    File "%appdata%\Sublime Text 3\Packages\OmniMarkupPreviewer\OmniMarkupLib\Renderers/MarkdownRenderer.py", line 48, in render
    extensions=self.extensions)
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\__init__.py", line 493, in markdown
    md = Markdown(*args, **kwargs)
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\__init__.py", line 159, in __init__
    configs=kwargs.get('extension_configs', {}))
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\__init__.py", line 185, in registerExtensions
    ext = self.build_extension(ext, configs.get(ext, {}))
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\__init__.py", line 291, in build_extension
    return module.makeExtension(**configs)
    File "%appdata%\Sublime Text 3\Packages\OmniMarkupPreviewer\OmniMarkupLib\Renderers\libs\mdx_strikeout.py", line 17, in makeExtension
    return StrikeoutExtension(configs=configs)
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\extensions\__init__.py", line 51, in __init__
    self.setConfigs(kwargs)
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\extensions\__init__.py", line 82, in setConfigs
    self.setConfig(key, value)
    File "%appdata%\Sublime Text 3\Packages\python-markdown\st3\markdown\extensions\__init__.py", line 70, in setConfig
    if isinstance(self.config[key][0], bool):
  KeyError: 'configs'
facelessuser commented 7 years ago

This is not a conflict with BracketHighlighter. This is a conflict with every package that is using the common Python Markdown dependency. As long as OmniMarkupPreviewer continues to import their vendored versions into sys.path and not access their modules in a relative manner (or switch to the common dependency), this will continue to be a problem.