Index: channels/configwin.py ================================================================== --- channels/configwin.py +++ channels/configwin.py @@ -192,15 +192,15 @@ doc = re.sub("(?<=\S) *\n(?! *\n)", " ", doc) return doc # Put config widgets into channels/features configwin notebooks def add_channels(self, id=None, w=None, label=None, color=None, image=None, align=20): - self.plugin_options.pack_start(uikit.wrap(self.widgets, id, w, label, color, image, align)) + self.plugin_options.pack_start(uikit.wrap(self.widgets, id, w, label, color, image, align, label_markup=1)) # Separate tab for non-channel plugins def add_features(self, id=None, w=None, label=None, color=None, image=None, align=20): - self.feature_options.pack_start(uikit.wrap(self.widgets, id, w, label, color, image, align)) + self.feature_options.pack_start(uikit.wrap(self.widgets, id, w, label, color, image, align, label_markup=1)) # save config def save(self, widget): self.save_config(conf.__dict__, "config_") Index: pluginconf.py ================================================================== --- pluginconf.py +++ pluginconf.py @@ -270,10 +270,11 @@ # Stubs out name, value, type, description if absent. # def plugin_meta_config(str): config = [] for entry in rx.config.findall(str): + entry = entry[0] or entry[1] opt = { "type": None, "name": None, "description": "", "value": None @@ -295,11 +296,11 @@ hash = re.compile(r"""(^ {0,4}# *)""", re.M) keyval = re.compile(r""" ^([\w-]+):(.*$(?:\n(?![\w-]+:).+$)*) # plain key:value lines """, re.M | re.X) config = re.compile(r""" - [\{\<] (.+?) [\}\>] # JSOL/YAML scheme {...} dicts + \{ (.+?) \} | \< (.+?) \> # JSOL/YAML scheme {...} dicts """, re.X) options = re.compile(r""" ["':$]? (\w*) ["']? # key or ":key" or '$key' \s* [:=] \s* # "=" or ":" (?: " ([^"]*) "