diff --git a/extensions/fablabchemnitz/about_upgrade_mightyscape/meta.json b/extensions/fablabchemnitz/about_upgrade_mightyscape/meta.json
new file mode 100644
index 00000000..2cacc42c
--- /dev/null
+++ b/extensions/fablabchemnitz/about_upgrade_mightyscape/meta.json
@@ -0,0 +1,19 @@
+[
+ {
+ "name": "About/Upgrade MightyScape",
+ "id": "fablabchemnitz.de.about_upgrade_mightyscape",
+ "path": "about_upgrade_mightyscape",
+ "original_name": "About/Upgrade MightyScape",
+ "original_id": "fablabchemnitz.de.about_upgrade_mightyscape",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/about_upgrade_mightyscape",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/MightyScape+1.X+-+Introduction+and+Installation",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/lasercut_jigsaw/meta.json b/extensions/fablabchemnitz/lasercut_jigsaw/meta.json
new file mode 100644
index 00000000..8d6ef53e
--- /dev/null
+++ b/extensions/fablabchemnitz/lasercut_jigsaw/meta.json
@@ -0,0 +1,24 @@
+[
+ {
+ "name": "Lasercut Jigsaw",
+ "id": "fablabchemnitz.de.lasercut_jigsaw",
+ "path": "lasercut_jigsaw",
+ "original_name": "Lasercut Jigsaw",
+ "original_id": "org.inkscape.LasercutJigsa",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/Neon22/inkscape-jigsaw/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://stadtfabrikanten.org/display/IFM/Lasercut+Jigsaw",
+ "fork_url": "https://github.com/Neon22/inkscape-jigsaw",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Lasercut+Jigsaw",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/Neon22",
+ "github.com/jonadem",
+ "github.com/speleo3",
+ "github.com/LynNor1",
+ "github.com/roeschter",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/lasercut_polygon/meta.json b/extensions/fablabchemnitz/lasercut_polygon/meta.json
new file mode 100644
index 00000000..9c4dd2aa
--- /dev/null
+++ b/extensions/fablabchemnitz/lasercut_polygon/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Lasercut Polygon",
+ "id": "fablabchemnitz.de.lasercut_polygon",
+ "path": "lasercut_polygon",
+ "original_name": "Polygon",
+ "original_id": "eu.flk.laser.polygon",
+ "license": "GNU GPL v3",
+ "license_url": "https://github.com/ThoreMehr/inkscape-polygon/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/lasercut_polygon",
+ "fork_url": "https://github.com/ThoreMehr/inkscape-polygon",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Lasercut+Polygon",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/ThoreMehr",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/lyz_export/lyz_export.inx b/extensions/fablabchemnitz/laserdraw_export/laserdraw_export.inx
similarity index 94%
rename from extensions/fablabchemnitz/lyz_export/lyz_export.inx
rename to extensions/fablabchemnitz/laserdraw_export/laserdraw_export.inx
index 037cc5ae..59241754 100644
--- a/extensions/fablabchemnitz/lyz_export/lyz_export.inx
+++ b/extensions/fablabchemnitz/laserdraw_export/laserdraw_export.inx
@@ -1,7 +1,7 @@
- LaserDraw LYZ Export
- fablabchemnitz.de.lyz_export
+ LaserDraw Export (lyz)
+ fablabchemnitz.de.laserdraw_export.lyz
+
+
+
+
+
+
+
+ 20
+
+
+
+
+ true
+ true
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+ path
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/simple_registration/simple_registration.py b/extensions/fablabchemnitz/simple_registration/simple_registration.py
new file mode 100644
index 00000000..03cd14f0
--- /dev/null
+++ b/extensions/fablabchemnitz/simple_registration/simple_registration.py
@@ -0,0 +1,466 @@
+#!/usr/bin/env python3
+#
+# Copyright (C) [2021] [Matt Cottam], [mpcottam@raincloud.co.uk]
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
+##############################################################################
+# Simple Registration - Registration Marks Across Objects
+##############################################################################
+
+import inkex
+from inkex import command, Group
+
+# Python Standard Library
+import tempfile
+from lxml import etree
+import random
+
+unit_conversions = {
+ 'in': 96.0,
+ 'pt': 1.3333333333333333,
+ 'px': 1.0,
+ 'mm': 3.779527559055118,
+ 'cm': 37.79527559055118,
+ 'm': 3779.527559055118,
+ 'km': 3779527.559055118,
+ 'Q': 0.94488188976378,
+ 'pc': 16.0,
+ 'yd': 3456.0,
+ 'ft': 1152.0,
+ '': 1.0, # Default px
+}
+
+crosshair_path = "m 1.0583333,3.0583334 h 4.0000001 m -2,-2.0000001 v 4.0000001 m 0.25,-2 a 0.25,0.25 0 0 1 -0.25," \
+ "0.25 0.25,0.25 0 0 1 -0.25,-0.25 0.25,0.25 0 0 1 0.25,-0.25 0.25,0.25 0 0 1 0.25,0.25 z m 0.75," \
+ "0 a 1,1 0 0 1 -1,1 1,1 0 0 1 -1,-1 1,1 0 0 1 1,-1 1,1 0 0 1 1,1 z m 0.5,0 a 1.5,1.5 0 0 1 -1.5," \
+ "1.5 1.5,1.5 0 0 1 -1.5,-1.5 1.5,1.5 0 0 1 1.5,-1.5 1.5,1.5 0 0 1 1.5,1.5 z "
+
+spiral_path = "m 2.8602054,2.8871104 c 0.0099,0.108862 -0.155578,0.06596 -0.197873,0.0151 -0.11462,-0.137812 0.0156," \
+ "-0.320651 0.164837,-0.376975 0.266943,-0.100751 0.549334,0.08169 0.626652,0.316559 0.113468," \
+ "0.344685 -0.163181,0.687127 -0.527545,0.769055 -0.485643,0.109197 -0.954879,-0.216671 -1.055435," \
+ "-0.648222 -0.126538,-0.543064 0.310663,-1.059761 0.890257,-1.161135 0.701965,-0.122775 1.363419," \
+ "0.351433 1.484214,0.979887 0.142351,0.740611 -0.457969,1.433888 -1.252965,1.553212 -0.917855," \
+ "0.137765 -1.7729561,-0.486089 -1.9129951,-1.311549 -0.15912096,-0.93794 0.6052021,-1.8086111 " \
+ "1.6156751,-1.9452921 1.133598,-0.15333396 2.182944,0.6207011 2.341774,1.6432131 0.176331," \
+ "1.135182 -0.752397,2.183635 -1.978384,2.33737 "
+
+star_path = "m 4.2951254,5.0575354 -1.236268,-0.682814 -1.235872,0.683612 0.235648,-1.447143 -1.0002991,-1.024496 1.3819041,-0.211573 0.617649,-1.3167881 0.618418,1.3163901 1.382026,0.210678 -0.999698,1.025144 z"
+
+circle_path = "m 5.0583334,3.0583334 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2.0000001,-2 2,2 0 0 1 2.0000001,-2.0000001 2,2 0 0 1 2,2.0000001 z"
+
+square_path = "M 1.0583333,1.0583333 H 5.0583334 V 5.0583334 H 1.0583333 Z"
+
+chevron_path = "m 1.0583333,1.0583333 3.9999999,2 -3.9999999,1.9999999"
+
+
+def add_reg_object(self, reg_path):
+ # parent = self.svg.get_current_layer()
+ parent = self.svg
+ my_reg_object = etree.SubElement(parent, inkex.addNS('path', 'svg'))
+ reg_path = eval(reg_path)
+ my_reg_object.path = reg_path
+ my_reg_object.attrib['id'] = 'my_reg_object'
+ my_reg_object.style['fill'] = 'none'
+ # my_reg_object.style['stroke-width'] = '0.1'
+ my_reg_object.style['stroke-width'] = '0.05'
+ my_reg_object.style['stroke'] = self.options.color_picker_reg_object
+ my_reg_object.transform.add_scale(self.options.reg_mark_scale)
+
+ return my_reg_object
+
+def add_tick_labels(self):
+ my_objects = self.svg.selected.paint_order()
+ parent = self.svg.get_current_layer()
+
+ object_count = 1
+ for my_object in my_objects:
+ text_label = etree.SubElement(parent, inkex.addNS('text', 'svg'))
+ text_label.text = str(object_count)
+ text_label.style['font-size'] = self.options.tick_text_label_font_size
+ text_label.attrib['id'] = 'tick_label_temp' + str(object_count)
+ text_label.style['text-anchor'] = 'middle'
+ text_label.style['dominant-baseline'] = 'middle'
+
+ object_count += 1
+
+
+def create_new_group(self, prefix, mode):
+ group_id = str(prefix) + '_' + str(random.randrange(100000, 999999))
+ new_group = self.svg.add(Group.new('#' + group_id))
+ new_group.set('inkscape:groupmode', str(mode))
+ new_group.attrib['id'] = group_id
+
+ return new_group
+
+
+def apply_translate(self, parent, my_object, my_transform):
+ bodge_group = create_new_group(self, 'bodge_group', 'group')
+ bodge_group.append(my_object)
+ bodge_group.transform = bodge_group.transform * my_transform
+ my_inherited_object_transform = my_object.composed_transform()
+ parent.append(my_object)
+ my_object.transform = my_inherited_object_transform
+ bodge_group.delete()
+
+def random_rgb(self):
+ random_red = random.randrange(0, 255)
+ random_green = random.randrange(0, 255)
+ random_blue = random.randrange(0, 255)
+
+ return f'rgb({random_red}, {random_green}, {random_blue})'
+
+
+def query_all_bbox(self):
+ my_file_path = self.options.input_file
+
+ with tempfile.NamedTemporaryFile(mode='r+', suffix='.svg') as temp_svg_file:
+ # Write the contents of the updated svg to a tempfile to use with command line
+ my_svg_string = self.svg.root.tostring().decode("utf-8")
+ temp_svg_file.write(my_svg_string)
+ temp_svg_file.read()
+ my_query = inkex.command.inkscape(temp_svg_file.name, '--query-all')
+ # Account for versions of inkey.py which return query as bytes
+ if type(my_query) != str:
+ my_query = my_query.decode("utf-8")
+ # --query-all produces multiline output of the following format
+ # path853,172.491,468.905,192.11,166.525 - as string
+ # ElementId, Top, Left, Width, Height
+
+ # Make a list splitting by each new line
+ my_query_items = my_query.split('\n')
+ my_element_bbox_dict = {}
+
+ for my_query_item in my_query_items:
+ # Create a comma separated list item for each line
+ my_element = my_query_item.split(',')
+ # Make a dictionary for all elements, rejected malformed elements.
+ if len(my_element) > 4:
+ my_element_bbox_dict[my_element[0]] = {}
+ # Create Dictionary entry in anticlockwise format
+ # x1 = TopLeft, x2 = BottomLeft, x3 = BottomRight, x4 = TopRight, mid_x and mid_y
+
+ # First convert all values to float, skipping element id ( first entry )
+ my_element_bbox = [float(x) for x in my_element[1:]]
+
+ width = my_element_bbox[2]
+ height = my_element_bbox[3]
+
+ x1 = my_element_bbox[0]
+ y1 = my_element_bbox[1]
+ x2 = x1
+ y2 = y1 + height
+ x3 = x1 + width
+ y3 = y2
+ x4 = x1 + width
+ y4 = y1
+ mid_x = x1 + width / 2
+ mid_y = y1 + height / 2
+
+ my_element_bbox_dict[my_element[0]].update(x1=x1, y1=y1, x2=x2, y2=y2, x3=x3, y3=y3, x4=x4, y4=y4,
+ mid_x=mid_x, mid_y=mid_y, width=width, height=height)
+ # Return dictionary
+ return my_element_bbox_dict
+
+
+def reg_mark_to_corners(self, all_bbox, max_bbox, my_reg_object, my_object, cf, parent):
+
+ reg_mark_x_shift = self.options.reg_mark_x_shift
+ reg_mark_y_shift = self.options.reg_mark_y_shift
+
+ # get width and height of reg object
+ my_reg_object_width = all_bbox[my_reg_object.get_id()]['width']
+ my_reg_object_height = all_bbox[my_reg_object.get_id()]['height']
+
+ my_reg_object_mid_x = all_bbox[my_reg_object.get_id()]['mid_x']
+ my_reg_object_mid_y = all_bbox[my_reg_object.get_id()]['mid_y']
+
+ my_object_id = my_object.get_id()
+
+ new_reg_group = create_new_group(self, 'reg_group', 'group')
+ # new_group.append(my_object)
+
+ for corner_no in range(1, 5):
+ registration_object = my_reg_object.duplicate()
+ registration_object.style['stroke-width'] = '0.2'
+
+ registration_object_original_composed_transform = registration_object.composed_transform()
+
+ my_translate_text = str(
+ (max_bbox['x' + str(corner_no)] - (my_reg_object_mid_x)) / cf) + ',' + str(
+ (max_bbox['y' + str(corner_no)] - (my_reg_object_mid_y)) / cf)
+
+ my_translate_text = f'Transform(\'translate({my_translate_text})\')'
+
+ apply_translate(self, parent, registration_object, my_translate_text)
+
+ new_reg_group.append(registration_object)
+
+ return new_reg_group
+
+
+def draw_ticks(self, all_bbox, my_reg_object, max_bbox,object_count, number_of_objects, my_object, cf):
+ parent = self.svg.get_current_layer()
+
+ tick_color = self.options.color_picker_tick
+
+ tick_dict = {}
+
+ # Get the right edge of the top left registration mark
+ # my_element_bbox_dict[my_element[0]].update(x1=x1, y1=y1, x2=x2, y2=y2, x3=x3, y3=y3, x4=x4, y4=y4,
+ # mid_x=mid_x, mid_y=mid_y, width=width, height=height)
+
+ my_reg_object_width = all_bbox[my_reg_object.get_id()]['width'] / cf
+ my_reg_object_height = all_bbox[my_reg_object.get_id()]['height'] / cf
+ # tl_re = top left right edge, tr_le = top right left edge
+ tl_re_x = (max_bbox['x1'] / cf + my_reg_object_width)
+ tl_re_y = (max_bbox['y1']) / cf
+ tr_le_x = (max_bbox['x4'] / cf - my_reg_object_width)
+ tr_le_y = (max_bbox['y4']) / cf
+ bl_re_x = (max_bbox['x2']) / cf
+ bl_re_y = (max_bbox['y2']) / cf
+ br_le_x = (max_bbox['x3'] / cf )
+ br_le_y = (max_bbox['y3'] / cf )
+
+ # Get the distance between top left right edge and top right left edge
+ top_bar_reg_fraction = 1 # Set to 1 to prevent division by zero
+ left_bar_reg_fraction = 1 # Set to 1 to prevent division by zero
+ top_bar_length = tr_le_x - tl_re_x
+
+ if number_of_objects > 1:
+ top_bar_reg_fraction = top_bar_length / (number_of_objects - 1)
+
+
+ left_bar_length = (bl_re_y - (my_reg_object_height)) - (tl_re_y + (my_reg_object_height))
+ if number_of_objects > 1:
+ left_bar_reg_fraction = left_bar_length / (number_of_objects - 1)
+
+ my_circle_radius = self.options.tick_circle_radius / cf
+
+ my_circle = etree.SubElement(parent, inkex.addNS('circle', 'svg'))
+ # my_circle.attrib['cx'] = str(tl_re_x + my_circle_radius)
+ my_circle.attrib['cx'] = str(tl_re_x + (top_bar_reg_fraction * object_count))
+ my_circle.attrib['cy'] = str(tl_re_y)
+ my_circle.attrib['r'] = str(my_circle_radius / cf)
+ my_circle.style['stroke'] = tick_color
+ if self.options.tick_color_random_checkbox == 'true':
+ my_circle.style['stroke'] = random_rgb(self)
+
+ my_circle.style['stroke-width'] = '0.2'
+ my_circle.style['fill'] = 'none'
+
+ if self.options.tick_top_checkbox == 'true':
+ object_id = my_object.get_id()
+ circle_top = my_circle.duplicate()
+ circle_top.attrib['id'] = str(object_id) + '_tick_circle_top_' + str(object_count + 1)
+ tick_dict['tick_top'] = circle_top
+
+ tick_label_top = self.svg.getElementById('tick_label_temp' + str(object_count + 1)).duplicate()
+ tick_label_top.attrib['x'] = circle_top.attrib['cx']
+ tick_label_top.attrib['y'] = circle_top.attrib['cy']
+ tick_label_top.attrib['id'] = str(object_id) + '_tick_label_top_' + str(object_count + 1)
+ tick_dict['tick_label_top'] = tick_label_top
+
+ if self.options.tick_left_checkbox == 'true':
+ circle_left = my_circle.duplicate()
+ circle_left.attrib['cx'] = str(bl_re_x)
+ circle_left.attrib['cy'] = str(tl_re_y + my_reg_object_height + (left_bar_reg_fraction * object_count))
+ circle_left.attrib['id'] = str(object_id) + '_tick_circle_left_' + str(object_count + 1)
+ tick_dict['tick_left'] = circle_left
+
+ tick_label_left = self.svg.getElementById('tick_label_temp' + str(object_count + 1)).duplicate()
+ tick_label_left.attrib['x'] = circle_left.attrib['cx']
+ tick_label_left.attrib['y'] = circle_left.attrib['cy']
+ tick_label_left.attrib['id'] = str(object_id) + '_tick_label_left_' + str(object_count + 1)
+ tick_dict['tick_label_left'] = tick_label_left
+
+ if self.options.tick_bottom_checkbox == 'true':
+ circle_bottom = my_circle.duplicate()
+ circle_bottom.attrib['cx'] = str(tl_re_x + (top_bar_reg_fraction * object_count))
+ circle_bottom.attrib['cy'] = str(bl_re_y)
+ circle_bottom.attrib['id'] = str(object_id) + '_tick_circle_bottom_' + str(object_count + 1)
+ tick_dict['tick_bottom'] = circle_bottom
+
+ tick_label_bottom = self.svg.getElementById('tick_label_temp' + str(object_count + 1)).duplicate()
+ tick_label_bottom.attrib['x'] = circle_bottom.attrib['cx']
+ tick_label_bottom.attrib['y'] = circle_bottom.attrib['cy']
+ tick_label_bottom.attrib['id'] = str(object_id) + '_tick_label_bottom_' + str(object_count + 1)
+ tick_dict['tick_label_bottom'] = tick_label_bottom
+
+ if self.options.tick_right_checkbox == 'true':
+ circle_right = my_circle.duplicate()
+ circle_right.attrib['cx'] = str(br_le_x)
+ circle_right.attrib['cy'] = str(br_le_y - my_reg_object_height - (left_bar_reg_fraction * object_count))
+ circle_right.attrib['id'] = str(object_id) + '_tick_circle_right_' + str(object_count + 1)
+ tick_dict['tick_right'] = circle_right
+
+ tick_label_right = self.svg.getElementById('tick_label_temp' + str(object_count + 1)).duplicate()
+ tick_label_right.attrib['x'] = circle_right.attrib['cx']
+ tick_label_right.attrib['y'] = circle_right.attrib['cy']
+ tick_label_right.attrib['id'] = str(object_id) + '_tick_label_right_' + str(object_count + 1)
+ tick_dict['tick_label_right'] = tick_label_right
+
+ my_circle.delete()
+
+ return tick_dict
+
+def get_max_bbox(self, all_bbox):
+ my_objects = self.svg.selected.paint_order()
+
+ reg_mark_x_shift = self.options.reg_mark_x_shift
+ reg_mark_y_shift = self.options.reg_mark_y_shift
+
+ # Find extent of bounding box for combined selection
+ bbox_list_x = []
+ bbox_list_y = []
+ for my_object in my_objects:
+ my_object_id = my_object.get_id()
+ if my_object_id == '':
+ continue
+ # bbox_list_x.append(all_bbox[my_object_id]['x1']) + (reg_mark_x_shift * -1)
+ # bbox_list_x.append(all_bbox[my_object_id]['x4']) + (reg_mark_x_shift)
+ # bbox_list_y.append(all_bbox[my_object_id]['y1']) + (reg_mark_y_shift * -1)
+ # bbox_list_y.append(all_bbox[my_object_id]['y2']) + (reg_mark_y_shift)
+
+ bbox_list_x.append(all_bbox[my_object_id]['x1'] + (reg_mark_x_shift * -1))
+ bbox_list_x.append(all_bbox[my_object_id]['x4'] + (reg_mark_x_shift))
+ bbox_list_y.append(all_bbox[my_object_id]['y1'] + (reg_mark_y_shift * -1))
+ bbox_list_y.append(all_bbox[my_object_id]['y2'] + (reg_mark_y_shift))
+
+ bboxes_min_x = min(bbox_list_x)
+ bboxes_max_x = max(bbox_list_x)
+ bboxes_min_y = min(bbox_list_y)
+ bboxes_max_y = max(bbox_list_y)
+ bboxes = {'x1': bboxes_min_x, 'y1': bboxes_min_y, 'x2': bboxes_min_x, 'y2': bboxes_max_y, 'x3': bboxes_max_x,
+ 'y3': bboxes_max_y, 'x4': bboxes_max_x, 'y4': bboxes_min_y}
+
+ return bboxes
+
+
+# Create a group or layer to contain each object and marks
+def group_layer_loop(self, all_bbox, max_bbox, my_reg_object, cf):
+ my_objects = self.svg.selected.paint_order()
+ number_of_objects = len(my_objects)
+
+ object_count = 0
+
+ for my_object in my_objects:
+ my_object_id = my_object.get_id()
+ master_group = create_new_group(self, my_object_id + '_group', 'group')
+ tick_group = create_new_group(self, my_object_id + '_ticks', 'group')
+ tick_labels_group = create_new_group(self, my_object_id + '_tick_labels', 'group')
+ new_layer = create_new_group(self, my_object_id + '_layer', 'layer')
+
+ # Create corner reg marks
+ reg_mark_group = reg_mark_to_corners(self, all_bbox, max_bbox, my_reg_object, my_object, cf, master_group)
+
+ master_group.append(reg_mark_group)
+
+ # Create ticks
+ tick_dict = draw_ticks(self, all_bbox, my_reg_object, max_bbox, object_count, number_of_objects, my_object, cf)
+
+ if 'tick_top' in tick_dict:
+ tick_group.append(tick_dict['tick_top'])
+ if 'tick_left' in tick_dict:
+ tick_group.append(tick_dict['tick_left'])
+ if 'tick_bottom' in tick_dict:
+ tick_group.append(tick_dict['tick_bottom'])
+ if 'tick_right' in tick_dict:
+ tick_group.append(tick_dict['tick_right'])
+
+ if 'tick_label_top' in tick_dict:
+ tick_labels_group.append(tick_dict['tick_label_top'])
+ if 'tick_label_left' in tick_dict:
+ tick_labels_group.append(tick_dict['tick_label_left'])
+ if 'tick_label_bottom' in tick_dict:
+ tick_labels_group.append(tick_dict['tick_label_bottom'])
+ if 'tick_label_right' in tick_dict:
+ tick_labels_group.append(tick_dict['tick_label_right'])
+
+ # Add object to group
+ master_group.append(tick_labels_group)
+ master_group.append(tick_group)
+
+ if self.options.correct_layer_transform_checkbox == 'true':
+ my_object_composed_transform = my_object.composed_transform()
+ master_group.append(my_object)
+ my_object.transform = my_object_composed_transform
+ else:
+ master_group.append(my_object)
+
+ # Add master group to layer for that object
+ new_layer.append(master_group)
+
+ object_count += 1
+
+ # Remove temp text labels and reg object
+ my_temp_labels = self.svg.xpath("//*[contains(@id, 'tick_label_temp')]")
+ for item in my_temp_labels:
+ item.delete()
+ my_reg_object.delete()
+
+class SimpleRegistration2(inkex.EffectExtension):
+
+ def add_arguments(self, pars):
+
+ pars.add_argument("--simple_registration_notebook", default=0)
+ pars.add_argument("--color_picker_reg_object", type=inkex.colors.Color, default=0)
+ pars.add_argument("--reg_mark_type", default='crosshair_path')
+ pars.add_argument("--reg_mark_scale", type=float, default=1)
+ pars.add_argument("--reg_mark_x_shift", type=float, default=10)
+ pars.add_argument("--reg_mark_y_shift", type=float, default=10)
+ pars.add_argument("--correct_layer_transform_checkbox")
+ pars.add_argument("--color_picker_tick", type=inkex.colors.Color, default=0)
+ pars.add_argument("--tick_color_random_checkbox", type=str)
+ pars.add_argument("--tick_text_labels_checkbox", type=str)
+ pars.add_argument("--tick_text_label_font_size", type=float, default=0)
+ pars.add_argument("--tick_type", default='chevron_path')
+ pars.add_argument("--tick_circle_radius", type=float, default=5)
+ pars.add_argument("--tick_top_checkbox")
+ pars.add_argument("--tick_left_checkbox")
+ pars.add_argument("--tick_bottom_checkbox")
+ pars.add_argument("--tick_right_checkbox")
+
+ def effect(self):
+ # Exit if nothing is selected
+ if len(self.svg.selected) < 1:
+ return
+
+ # Get document units, and conversion factor from pixels.
+ found_units = self.svg.unit
+ # Unit conversion factor cf
+ cf = unit_conversions[found_units]
+
+ # Add mark objects before command line --query-all
+ # This returns all bounding boxes taking stroke into account
+ # Also works for text bounding box, which is not possible to obtain from extension system
+
+ my_reg_object = add_reg_object(self, self.options.reg_mark_type)
+ # my_side_object = add_side_object(self, self.options.tick_type)
+
+ if self.options.tick_text_labels_checkbox == 'true':
+ my_labels = add_tick_labels(self)
+
+ # Get bounding boxes for all elements
+ all_bbox = query_all_bbox(self)
+ # Get max bbox, taking into account user x and y shift
+ max_bbox = get_max_bbox(self, all_bbox)
+
+ # inkex.errormsg(max_bbox)
+ group_layer_loop(self, all_bbox, max_bbox, my_reg_object, cf)
+
+if __name__ == '__main__':
+ SimpleRegistration2().run()
diff --git a/extensions/fablabchemnitz/simpleinkscape/meta.json b/extensions/fablabchemnitz/simpleinkscape/meta.json
new file mode 100644
index 00000000..5e946236
--- /dev/null
+++ b/extensions/fablabchemnitz/simpleinkscape/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Simple Inkscape (Interface)",
+ "id": "fablabchemnitz.de.simpleinkscape",
+ "path": "simpleinkscape",
+ "original_name": "Simple Inkscape",
+ "original_id": "org.inkscape.simpleinkscape",
+ "license": "GNU GPL v2",
+ "license_url": "https://inkscape.org/~Mr.Raven/%E2%98%85simpleinkscapev01+2",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/simpleinkscape",
+ "fork_url": "https://inkscape.org/~Mr.Raven/%E2%98%85simpleinkscapev01+2",
+ "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=111837633",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "inkscape.org/Mr.Raven",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/sine_and_lace/meta.json b/extensions/fablabchemnitz/sine_and_lace/meta.json
new file mode 100644
index 00000000..d88244b3
--- /dev/null
+++ b/extensions/fablabchemnitz/sine_and_lace/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Slic3r STL Input",
+ "id": "fablabchemnitz.de.slic3r_stl_input",
+ "path": "slic3r_stl_input",
+ "original_name": "STL Input",
+ "original_id": "com.github.jnweiger.inkscape.input.stl",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/jnweiger/inkscape-input-stl/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/slic3r_stl_input",
+ "fork_url": "https://github.com/jnweiger/inkscape-input-stl",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Slic3r+STL+Input",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/jnweiger",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/slic3r_stl_input/meta.json b/extensions/fablabchemnitz/slic3r_stl_input/meta.json
new file mode 100644
index 00000000..074c9e1b
--- /dev/null
+++ b/extensions/fablabchemnitz/slic3r_stl_input/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Slic3r STL Input",
+ "id": "fablabchemnitz.de.slic3r_stl_input",
+ "path": "slic3r_stl_input",
+ "original_name": "STL Input",
+ "original_id": "com.github.jnweiger.inkscape.input.stl",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/jnweiger/inkscape-input-stl/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/slic3r_stl_input",
+ "fork_url": "https://github.com/jnweiger/inkscape-input-stl",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Slic3r+STL+Input",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85slic3r-stl-input",
+ "main_authors": [
+ "github.com/jnweiger",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/slider_electrodes/meta.json b/extensions/fablabchemnitz/slider_electrodes/meta.json
new file mode 100644
index 00000000..6fa3d121
--- /dev/null
+++ b/extensions/fablabchemnitz/slider_electrodes/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Slider Electrodes",
+ "id": "fablabchemnitz.de.slider_electrodes",
+ "path": "slider_electrodes",
+ "original_name": "Slider Electrodes",
+ "original_id": "org.inkscape.render.sliderelectrodes",
+ "license": "MIT License",
+ "license_url": "https://github.com/henningpohl/Inkscape-Slider-Electrode-Generator/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/slider_electrodes",
+ "fork_url": "https://github.com/henningpohl/Inkscape-Slider-Electrode-Generator",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Slider+Electrodes",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/henningpohl",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/snap_object_points/meta.json b/extensions/fablabchemnitz/snap_object_points/meta.json
new file mode 100644
index 00000000..ef597215
--- /dev/null
+++ b/extensions/fablabchemnitz/snap_object_points/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Snap Object Points",
+ "id": "fablabchemnitz.de.snap_object_points",
+ "path": "snap_object_points",
+ "original_name": "Snap Object Points",
+ "original_id": "org.pakin.filter.snap_objects",
+ "license": "GNU GPL v3",
+ "license_url": "https://inkscape.org/de/~pakin/%E2%98%85snap-object-points",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/snap_object_points",
+ "fork_url": "https://inkscape.org/de/~pakin/%E2%98%85snap-object-points",
+ "documentation_url": "",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "inkscape.org/pakin",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/source_code_text/meta.json b/extensions/fablabchemnitz/source_code_text/meta.json
new file mode 100644
index 00000000..4cf6dad1
--- /dev/null
+++ b/extensions/fablabchemnitz/source_code_text/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Source Code Text",
+ "id": "fablabchemnitz.de.source_code_text",
+ "path": "source_code_text",
+ "original_name": "Source Code Text",
+ "original_id": "org.henry.poster_text",
+ "license": "GNU GPL v2",
+ "license_url": "https://gitlab.com/inkscape/extensions/-/blob/master/LICENSE.txt",
+ "comment": "based on Lorem Ipsum extension",
+ "source_url": "",
+ "fork_url": "https://gist.github.com/om-henners/8c642c87b71daa3ea68222d40167edbc",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Source+Code+Text",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/om-henners",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/source_code_text/source_code_text.inx b/extensions/fablabchemnitz/source_code_text/source_code_text.inx
index 693dac30..43733c36 100644
--- a/extensions/fablabchemnitz/source_code_text/source_code_text.inx
+++ b/extensions/fablabchemnitz/source_code_text/source_code_text.inx
@@ -12,7 +12,7 @@
all
-
+
diff --git a/extensions/fablabchemnitz/spirograph/meta.json b/extensions/fablabchemnitz/spirograph/meta.json
new file mode 100644
index 00000000..b1fe8ae3
--- /dev/null
+++ b/extensions/fablabchemnitz/spirograph/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "SpiroGraph",
+ "id": "fablabchemnitz.de.spirograph",
+ "path": "spirograph",
+ "original_name": "SpiroGraph",
+ "original_id": "fsmMLK.spiroGraph",
+ "license": "GNU GPL v3",
+ "license_url": "https://github.com/fsmMLK/inkscapeSpirograph/blob/main/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/spirograph",
+ "fork_url": "https://github.com/fsmMLK/inkscapeSpirograph",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/SpiroGraph",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/fsmMLK",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/split_and_break_bezier_at_t/meta.json b/extensions/fablabchemnitz/split_and_break_bezier_at_t/meta.json
new file mode 100644
index 00000000..2b257ebe
--- /dev/null
+++ b/extensions/fablabchemnitz/split_and_break_bezier_at_t/meta.json
@@ -0,0 +1,19 @@
+[
+ {
+ "name": "Split And Break Bezier At t",
+ "id": "fablabchemnitz.de.split_and_break_bezier_at_t",
+ "path": "split_and_break_bezier_at_t",
+ "original_name": "fablabchemnitz.de.split_and_break_bezier_at_t",
+ "original_id": "split_and_break_bezier_at_t",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "written by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/split_and_break_bezier_at_t",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Split+And+Break+Bezier+At+t",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85split-and-break-bezier-at-t",
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/split_bezier/meta.json b/extensions/fablabchemnitz/split_bezier/meta.json
new file mode 100644
index 00000000..8047c497
--- /dev/null
+++ b/extensions/fablabchemnitz/split_bezier/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Split Bezier (Subdivide Path)",
+ "id": "fablabchemnitz.de.split_bezier",
+ "path": "split_bezier",
+ "original_name": "Subdivide Path",
+ "original_id": "subdivide.svg.bezier",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/Shriinivas/inkscapesubdivpath/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/split_bezier",
+ "fork_url": "https://github.com/Shriinivas/inkscapesubdivpath",
+ "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=55018715",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/Shriinivas",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/sprocket/meta.json b/extensions/fablabchemnitz/sprocket/meta.json
new file mode 100644
index 00000000..8f635ae6
--- /dev/null
+++ b/extensions/fablabchemnitz/sprocket/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Sprocket",
+ "id": "fablabchemnitz.de.sprocket",
+ "path": "sprocket",
+ "original_name": "Sprocket",
+ "original_id": "com.attoparsec.filter.sprockets",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/attoparsec/inkscape-extensions/blob/master/sprockets.py",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/sprocket",
+ "fork_url": "https://github.com/attoparsec/inkscape-extensions",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Sprocket",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/attoparsec",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/starshine/meta.json b/extensions/fablabchemnitz/starshine/meta.json
new file mode 100644
index 00000000..66baa1b9
--- /dev/null
+++ b/extensions/fablabchemnitz/starshine/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Starshine",
+ "id": "fablabchemnitz.de.starshine",
+ "path": "starshine",
+ "original_name": "Starshine",
+ "original_id": "hipix.Starshine",
+ "license": "GNU AGPL v3",
+ "license_url": "https://github.com/curiousmaster/hipix_inkscape_extensions/blob/main/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/starshine",
+ "fork_url": "https://github.com/curiousmaster/hipix_inkscape_extensions",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Starshine",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/curiousmaster",
+ "github.com/vmario89"
+ ]
+ }
+]
diff --git a/extensions/fablabchemnitz/streaks/meta.json b/extensions/fablabchemnitz/streaks/meta.json
new file mode 100644
index 00000000..3830aab7
--- /dev/null
+++ b/extensions/fablabchemnitz/streaks/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Streaks",
+ "id": "fablabchemnitz.de.streaks",
+ "path": "streaks",
+ "original_name": "streaks",
+ "original_id": "ca.sfu.AT.kurn.Streaks",
+ "license": "GNU GPL v3",
+ "license_url": "https://sourceforge.net/projects/inkscape-streaks/",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/streaks",
+ "fork_url": "https://sourceforge.net/projects/inkscape-streaks",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Streaks",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "sourceforge.net/andrew-kurn",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/strip_line/meta.json b/extensions/fablabchemnitz/strip_line/meta.json
new file mode 100644
index 00000000..16bd11d9
--- /dev/null
+++ b/extensions/fablabchemnitz/strip_line/meta.json
@@ -0,0 +1,20 @@
+[
+ {
+ "name": "Strip Line",
+ "id": "fablabchemnitz.de.strip_line",
+ "path": "strip_line",
+ "original_name": "ストリップライン",
+ "original_id": "miffy.sora.stripline",
+ "license": "MIT License",
+ "license_url": "https://github.com/miffysora/Inkscape/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 manually by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/strip_line",
+ "fork_url": "https://github.com/miffysora/Inkscape",
+ "documentation_url": "",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/miffysora",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/stroke_color_as_fill/meta.json b/extensions/fablabchemnitz/stroke_color_as_fill/meta.json
index 6d91f588..2ef28777 100644
--- a/extensions/fablabchemnitz/stroke_color_as_fill/meta.json
+++ b/extensions/fablabchemnitz/stroke_color_as_fill/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Stroke Color As Fill",
- "id": "fablabchemnitz.de.stroke_color_as_fill",
- "path": "stroke_color_as_fill",
- "original_name": "Stroke color as fill",
- "original_id": "com.jabiertxof.strokecolor.as.fill",
- "license": "GNU GPL v3",
- "license_url": "https://inkscape.org/de/~jabiertxof/%E2%98%85stroke-color-as-fill",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://inkscape.org/de/~jabiertxof/%E2%98%85stroke-color-as-fill",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Stroke+Color+As+Fill",
- "main_authors": [
- "inkscape.org/jabiertxof",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Stroke Color As Fill",
+ "id": "fablabchemnitz.de.stroke_color_as_fill",
+ "path": "stroke_color_as_fill",
+ "original_name": "Stroke color as fill",
+ "original_id": "com.jabiertxof.strokecolor.as.fill",
+ "license": "GNU GPL v3",
+ "license_url": "https://inkscape.org/de/~jabiertxof/%E2%98%85stroke-color-as-fill",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/stroke_color_as_fill",
+ "fork_url": "https://inkscape.org/de/~jabiertxof/%E2%98%85stroke-color-as-fill",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Stroke+Color+As+Fill",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "inkscape.org/jabiertxof",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/styles_to_layers/meta.json b/extensions/fablabchemnitz/styles_to_layers/meta.json
index 3b575b54..6deff124 100644
--- a/extensions/fablabchemnitz/styles_to_layers/meta.json
+++ b/extensions/fablabchemnitz/styles_to_layers/meta.json
@@ -1,15 +1,19 @@
-{
- "name": "Styles To Layers",
- "id": "fablabchemnitz.de.styles_to_layers",
- "path": "styles_to_layers",
- "original_name": "Styles To Layers",
- "original_id": "fablabchemnitz.de.styles_to_layers",
- "license": "GNU GPL v3",
- "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
- "comment": "written by Mario Voigt",
- "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/styles_to_layers",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Styles+To+Layers",
- "main_authors": [
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Styles To Layers",
+ "id": "fablabchemnitz.de.styles_to_layers",
+ "path": "styles_to_layers",
+ "original_name": "Styles To Layers",
+ "original_id": "fablabchemnitz.de.styles_to_layers",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "written by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/styles_to_layers",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Styles+To+Layers",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85styles-to-layers",
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/sudoku/meta.json b/extensions/fablabchemnitz/sudoku/meta.json
index 73a59e88..3b1f9e4a 100644
--- a/extensions/fablabchemnitz/sudoku/meta.json
+++ b/extensions/fablabchemnitz/sudoku/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Sudoku",
- "id": "fablabchemnitz.de.sudoku",
- "path": "sudoku",
- "original_name": "Sudoku",
- "original_id": "org.inkscape.render.sudoku",
- "license": "GNU GPL v3",
- "license_url": "https://github.com/Neon22/inkscape-sudoku/blob/master/LICENCE",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://github.com/Neon22/inkscape-sudoku",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Sudoku",
- "main_authors": [
- "github.com/Neon22",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Sundial Declining",
+ "id": "fablabchemnitz.de.sundial_declining",
+ "path": "sundial_declining",
+ "original_name": "Sundial",
+ "original_id": "fr.electropol.tableausimple.inkscape",
+ "license": "Public Domain",
+ "license_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/sundial_declining",
+ "fork_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Sundial+Declining",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "inkscape.org/TomasUrban",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/sundial_declining/meta.json b/extensions/fablabchemnitz/sundial_declining/meta.json
index d8e52aca..3b1f9e4a 100644
--- a/extensions/fablabchemnitz/sundial_declining/meta.json
+++ b/extensions/fablabchemnitz/sundial_declining/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Sundial Declining",
- "id": "fablabchemnitz.de.sundial_declining",
- "path": "sundial_declining",
- "original_name": "Sundial",
- "original_id": "fr.electropol.tableausimple.inkscape",
- "license": "Public Domain",
- "license_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Sundial+Declining",
- "main_authors": [
- "inkscape.org/TomasUrban",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Sundial Declining",
+ "id": "fablabchemnitz.de.sundial_declining",
+ "path": "sundial_declining",
+ "original_name": "Sundial",
+ "original_id": "fr.electropol.tableausimple.inkscape",
+ "license": "Public Domain",
+ "license_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/sundial_declining",
+ "fork_url": "https://inkscape.org/de/~TomasUrban/%E2%98%85sundial-declining",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Sundial+Declining",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "inkscape.org/TomasUrban",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/svg2shenzhen/meta.json b/extensions/fablabchemnitz/svg2shenzhen/meta.json
index c0440b43..afec7976 100644
--- a/extensions/fablabchemnitz/svg2shenzhen/meta.json
+++ b/extensions/fablabchemnitz/svg2shenzhen/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "",
- "id": "fablabchemnitz.de.svg2shenzhen_",
- "path": "svg2shenzhen",
- "original_name": "",
- "original_id": "net.svg2shenzhen_",
- "license": "GNU GPL v3",
- "license_url": "https://github.com/badgeek/svg2shenzhen/blob/master/LICENSE",
- "comment": "",
- "source_url": "https://github.com/badgeek/svg2shenzhen",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Svg2Shenzhen",
- "main_authors": [
- "github.com/badgeek",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "",
+ "id": "fablabchemnitz.de.svg2shenzhen_",
+ "path": "svg2shenzhen",
+ "original_name": "",
+ "original_id": "net.svg2shenzhen_",
+ "license": "GNU GPL v3",
+ "license_url": "https://github.com/badgeek/svg2shenzhen/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/svg2shenzhen",
+ "fork_url": "https://github.com/badgeek/svg2shenzhen",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Svg2Shenzhen",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/badgeek",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/svgo_output/meta.json b/extensions/fablabchemnitz/svgo_output/meta.json
index 90e44d40..1713ca41 100644
--- a/extensions/fablabchemnitz/svgo_output/meta.json
+++ b/extensions/fablabchemnitz/svgo_output/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "SVGO Output",
- "id": "fablabchemnitz.de.svgo_output",
- "path": "svgo_output",
- "original_name": "SVGO Output",
- "original_id": "org.inkscape.output.svgo",
- "license": "MIT License",
- "license_url": "https://github.com/juanfran/svgo-inkscape/blob/master/LICENSE",
- "comment": "",
- "source_url": "https://github.com/juanfran/svgo-inkscape/",
- "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=55019653",
- "main_authors": [
- "github.com/juanfran",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "SVGO Output",
+ "id": "fablabchemnitz.de.svgo_output",
+ "path": "svgo_output",
+ "original_name": "SVGO Output",
+ "original_id": "org.inkscape.output.svgo",
+ "license": "MIT License",
+ "license_url": "https://github.com/juanfran/svgo-inkscape/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/svgo_output",
+ "fork_url": "https://github.com/juanfran/svgo-inkscape/",
+ "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=55019653",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/juanfran",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/tab_generator/meta.json b/extensions/fablabchemnitz/tab_generator/meta.json
index 0d5369c8..55a8b3e0 100644
--- a/extensions/fablabchemnitz/tab_generator/meta.json
+++ b/extensions/fablabchemnitz/tab_generator/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Tab Generator",
- "id": "fablabchemnitz.de.tab_generator",
- "path": "tab_generator",
- "original_name": "Tabgen",
- "original_id": "org.inkscape.tabgen",
- "license": "GNU GPL v3",
- "license_url": "https://github.com/obzerving/Tabgen/blob/main/LICENSE",
- "comment": "",
- "source_url": "https://github.com/obzerving/Tabgen",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Tab+Generator",
- "main_authors": [
- "github.com/obzerving",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Tab Generator",
+ "id": "fablabchemnitz.de.tab_generator",
+ "path": "tab_generator",
+ "original_name": "Tabgen",
+ "original_id": "org.inkscape.tabgen",
+ "license": "GNU GPL v3",
+ "license_url": "https://github.com/obzerving/Tabgen/blob/main/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/tab_generator",
+ "fork_url": "https://github.com/obzerving/Tabgen",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Tab+Generator",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/obzerving",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/table_support/meta.json b/extensions/fablabchemnitz/table_support/meta.json
index d713a755..59b0ee8c 100644
--- a/extensions/fablabchemnitz/table_support/meta.json
+++ b/extensions/fablabchemnitz/table_support/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "",
- "id": "fablabchemnitz.de.table_",
- "path": "table_support",
- "original_name": "",
- "original_id": "org.greygreen.inkscape.effects.table_",
- "license": "GNU GPL v2",
- "license_url": "https://sourceforge.net/projects/inkscape-tables/files/inkscape-table-1.0.tar.gz/download",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://sourceforge.net/projects/inkscape-tables",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Table+Support",
- "main_authors": [
- "sourceforge.net/lixapopescu",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "",
+ "id": "fablabchemnitz.de.table_",
+ "path": "table_support",
+ "original_name": "",
+ "original_id": "org.greygreen.inkscape.effects.table_",
+ "license": "GNU GPL v2",
+ "license_url": "https://sourceforge.net/projects/inkscape-tables/files/inkscape-table-1.0.tar.gz/download",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/table_support",
+ "fork_url": "https://sourceforge.net/projects/inkscape-tables",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Table+Support",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "sourceforge.net/lixapopescu",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/travel/meta.json b/extensions/fablabchemnitz/travel/meta.json
index 05b0f6ac..0f6437b4 100644
--- a/extensions/fablabchemnitz/travel/meta.json
+++ b/extensions/fablabchemnitz/travel/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Travel",
- "id": "fablabchemnitz.de.travel",
- "path": "travel",
- "original_name": "Travel",
- "original_id": "travel.rkp8000.inkscape",
- "license": "MIT License",
- "license_url": "https://github.com/rkp8000/inkscape-travel/blob/master/LICENSE",
- "comment": "ported to Inkscape v1 manually by Mario Voigt",
- "source_url": "https://github.com/rkp8000/inkscape-travel",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Travel",
- "main_authors": [
- "github.com/rkp8000",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Travel",
+ "id": "fablabchemnitz.de.travel",
+ "path": "travel",
+ "original_name": "Travel",
+ "original_id": "travel.rkp8000.inkscape",
+ "license": "MIT License",
+ "license_url": "https://github.com/rkp8000/inkscape-travel/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 manually by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/travel",
+ "fork_url": "https://github.com/rkp8000/inkscape-travel",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Travel",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/rkp8000",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/triangular_grid/meta.json b/extensions/fablabchemnitz/triangular_grid/meta.json
index 412f12eb..20467ac5 100644
--- a/extensions/fablabchemnitz/triangular_grid/meta.json
+++ b/extensions/fablabchemnitz/triangular_grid/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Triangular Grid",
- "id": "fablabchemnitz.de.triangular_grid",
- "path": "triangular_grid",
- "original_name": "Triangular Grid",
- "original_id": "grid.triangular",
- "license": "GNU GPL v2",
- "license_url": "https://github.com/cds4/inkscape-grids/blob/master/grid_triangular.py",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://github.com/cds4/inkscape-grids",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Triangular+Grid",
- "main_authors": [
- "github.com/cds4",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Triangular Grid",
+ "id": "fablabchemnitz.de.triangular_grid",
+ "path": "triangular_grid",
+ "original_name": "Triangular Grid",
+ "original_id": "grid.triangular",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/cds4/inkscape-grids/blob/master/grid_triangular.py",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/triangular_grid",
+ "fork_url": "https://github.com/cds4/inkscape-grids",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Triangular+Grid",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/cds4",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/tuckbox/meta.json b/extensions/fablabchemnitz/tuckbox/meta.json
index 78ecd5ed..6b43b0c9 100644
--- a/extensions/fablabchemnitz/tuckbox/meta.json
+++ b/extensions/fablabchemnitz/tuckbox/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Tuckbox",
- "id": "fablabchemnitz.de.tuckbox",
- "path": "tuckbox",
- "original_name": "Create Tuckbox",
- "original_id": "phillips.effect.tuckbox",
- "license": "GNU GPL v2",
- "license_url": "https://sourceforge.net/p/razorfoss/svn/HEAD/tree/trunk/Inkscape/TuckboxExtension/CreateTuckbox.py",
- "comment": "",
- "source_url": "https://sourceforge.net/p/razorfoss/svn/HEAD/tree/trunk/Inkscape/TuckboxExtension/",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Tuckbox",
- "main_authors": [
- "Luke Phillips (lukerazor@hotmail.com)",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Tuckbox",
+ "id": "fablabchemnitz.de.tuckbox",
+ "path": "tuckbox",
+ "original_name": "Create Tuckbox",
+ "original_id": "phillips.effect.tuckbox",
+ "license": "GNU GPL v2",
+ "license_url": "https://sourceforge.net/p/razorfoss/svn/HEAD/tree/trunk/Inkscape/TuckboxExtension/CreateTuckbox.py",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/tuckbox",
+ "fork_url": "https://sourceforge.net/p/razorfoss/svn/HEAD/tree/trunk/Inkscape/TuckboxExtension/",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Tuckbox",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "Luke Phillips (lukerazor@hotmail.com)",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/twist/meta.json b/extensions/fablabchemnitz/twist/meta.json
index 552207f7..12b0ae1d 100644
--- a/extensions/fablabchemnitz/twist/meta.json
+++ b/extensions/fablabchemnitz/twist/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Twist",
- "id": "fablabchemnitz.de.twist",
- "path": "twist",
- "original_name": "Twist",
- "original_id": "command.eggbot.contributed.twist",
- "license": "GNU GPL v3",
- "license_url": "https://github.com/evil-mad/EggBot/blob/master/LICENSE",
- "comment": "ported to Inkscape v1 manually by Mario Voigt",
- "source_url": "https://github.com/evil-mad/EggBot/tree/master/inkscape_contributed",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Twist",
- "main_authors": [
- "github.com/oskay",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Twist",
+ "id": "fablabchemnitz.de.twist",
+ "path": "twist",
+ "original_name": "Twist",
+ "original_id": "command.eggbot.contributed.twist",
+ "license": "GNU GPL v3",
+ "license_url": "https://github.com/evil-mad/EggBot/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 manually by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/twist",
+ "fork_url": "https://github.com/evil-mad/EggBot/tree/master/inkscape_contributed",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Twist",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/oskay",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter/meta.json b/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter/meta.json
index 9ba542a5..227c1a77 100644
--- a/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter/meta.json
+++ b/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter/meta.json
@@ -1,15 +1,19 @@
-{
- "name": "Ungrouper And Element Migrator/Filter",
- "id": "fablabchemnitz.de.ungrouper_and_element_migrator_filter",
- "path": "ungrouper_and_element_migrator_filter",
- "original_name": "Ungrouper And Element Migrator/Filter",
- "original_id": "fablabchemnitz.de.ungrouper_and_element_migrator_filter",
- "license": "GNU GPL v3",
- "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
- "comment": "Created by Mario Voigt",
- "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter",
- "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=77267295",
- "main_authors": [
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Ungrouper And Element Migrator/Filter",
+ "id": "fablabchemnitz.de.ungrouper_and_element_migrator_filter",
+ "path": "ungrouper_and_element_migrator_filter",
+ "original_name": "Ungrouper And Element Migrator/Filter",
+ "original_id": "fablabchemnitz.de.ungrouper_and_element_migrator_filter",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "Created by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/ungrouper_and_element_migrator_filter",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=77267295",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85ungrouper-and-element-migratorfilter",
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/unwind_paths/meta.json b/extensions/fablabchemnitz/unwind_paths/meta.json
index e5d2d9a2..84880136 100644
--- a/extensions/fablabchemnitz/unwind_paths/meta.json
+++ b/extensions/fablabchemnitz/unwind_paths/meta.json
@@ -1,15 +1,19 @@
-{
- "name": "Unwind Paths",
- "id": "fablabchemnitz.de.unwind_paths",
- "path": "unwind_paths",
- "original_name": "Unwind Paths",
- "original_id": "fablabchemnitz.de.unwind_paths",
- "license": "GNU GPL v3",
- "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
- "comment": "Created by Mario Voigt",
- "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/unwind_paths",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Unwind+Paths",
- "main_authors": [
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Unwind Paths",
+ "id": "fablabchemnitz.de.unwind_paths",
+ "path": "unwind_paths",
+ "original_name": "Unwind Paths",
+ "original_id": "fablabchemnitz.de.unwind_paths",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "Created by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/unwind_paths",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Unwind+Paths",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85unwind-paths",
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/vektorkollektor/meta.json b/extensions/fablabchemnitz/vektorkollektor/meta.json
index 5afa56f2..00b1103b 100644
--- a/extensions/fablabchemnitz/vektorkollektor/meta.json
+++ b/extensions/fablabchemnitz/vektorkollektor/meta.json
@@ -1,17 +1,21 @@
-{
- "name": "Vektorkollektor",
- "id": "fablabchemnitz.de.vektorkollektor",
- "path": "vektorkollektor",
- "original_name": "Vektorkollektor",
- "original_id": "fablabchemnitz.de.vektorkollektor",
- "license": "GNU GPL v3",
- "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
- "comment": "Created by Mario Voigt. See http://www.vektorkollektor.com",
- "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/vektorkollektor",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Vektorkollektor",
- "main_authors": [
- "https://niklasroy.com",
- "http://katihyyppa.com",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Vektorkollektor",
+ "id": "fablabchemnitz.de.vektorkollektor",
+ "path": "vektorkollektor",
+ "original_name": "Vektorkollektor",
+ "original_id": "fablabchemnitz.de.vektorkollektor",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "Created by Mario Voigt. See http://www.vektorkollektor.com",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/vektorkollektor",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Vektorkollektor",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "https://niklasroy.com",
+ "http://katihyyppa.com",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/vertical_horizontal_scale/meta.json b/extensions/fablabchemnitz/vertical_horizontal_scale/meta.json
index 7ba23dd2..075a98ba 100644
--- a/extensions/fablabchemnitz/vertical_horizontal_scale/meta.json
+++ b/extensions/fablabchemnitz/vertical_horizontal_scale/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Vertical / Horizontal Scale",
- "id": "fablabchemnitz.de.vertical_horizontal_scale",
- "path": "vertical_horizontal_scale",
- "original_name": "Scale",
- "original_id": "org.inkscape.render.render_scale",
- "license": "GNU GPL v2",
- "license_url": "https://github.com/brathering82/inkscape/blob/master/LICENSE",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://github.com/brathering82/inkscape",
- "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=55018500",
- "main_authors": [
- "github.com/brathering82",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Vertical / Horizontal Scale",
+ "id": "fablabchemnitz.de.vertical_horizontal_scale",
+ "path": "vertical_horizontal_scale",
+ "original_name": "Scale",
+ "original_id": "org.inkscape.render.render_scale",
+ "license": "GNU GPL v2",
+ "license_url": "https://github.com/brathering82/inkscape/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/vertical_horizontal_scale",
+ "fork_url": "https://github.com/brathering82/inkscape",
+ "documentation_url": "https://stadtfabrikanten.org/pages/viewpage.action?pageId=55018500",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/brathering82",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/visicut/meta.json b/extensions/fablabchemnitz/visicut/meta.json
index 48b810be..686c0fce 100644
--- a/extensions/fablabchemnitz/visicut/meta.json
+++ b/extensions/fablabchemnitz/visicut/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "",
- "id": "fablabchemnitz.de.open_in_visicut_",
- "path": "visicut",
- "original_name": "",
- "original_id": "visicut.",
- "license": "GNU LGPL v3",
- "license_url": "https://github.com/t-oster/VisiCut/blob/master/LICENSE",
- "comment": "",
- "source_url": "https://github.com/t-oster/VisiCut/tree/master/tools/inkscape_extension",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Open+in+VisiCut",
- "main_authors": [
- "github.com/t-oster",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "",
+ "id": "fablabchemnitz.de.open_in_visicut_",
+ "path": "visicut",
+ "original_name": "",
+ "original_id": "visicut.",
+ "license": "GNU LGPL v3",
+ "license_url": "https://github.com/t-oster/VisiCut/blob/master/LICENSE",
+ "comment": "",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/visicut",
+ "fork_url": "https://github.com/t-oster/VisiCut/tree/master/tools/inkscape_extension",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Open+in+VisiCut",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/t-oster",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/vpypetools/meta.json b/extensions/fablabchemnitz/vpypetools/meta.json
index 4517fa5f..489b9fa3 100644
--- a/extensions/fablabchemnitz/vpypetools/meta.json
+++ b/extensions/fablabchemnitz/vpypetools/meta.json
@@ -1,15 +1,19 @@
-{
- "name": "",
- "id": "fablabchemnitz.de.vpype_",
- "path": "vpypetools",
- "original_name": "vpypetools",
- "original_id": "fablabchemnitz.de.vpype_",
- "license": "GNU GPL v3",
- "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
- "comment": "Created by Mario Voigt",
- "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/vpypetools",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/vpypetools",
- "main_authors": [
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "",
+ "id": "fablabchemnitz.de.vpype_",
+ "path": "vpypetools",
+ "original_name": "vpypetools",
+ "original_id": "fablabchemnitz.de.vpype_",
+ "license": "GNU GPL v3",
+ "license_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/LICENSE",
+ "comment": "Created by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/vpypetools",
+ "fork_url": null,
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/vpypetools",
+ "inkscape_gallery_url": "https://inkscape.org/de/~MarioVoigt/%E2%98%85vpypetools-vpype-for-inkscape",
+ "main_authors": [
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/x_agram/meta.json b/extensions/fablabchemnitz/x_agram/meta.json
index a49df1d9..362d9d68 100644
--- a/extensions/fablabchemnitz/x_agram/meta.json
+++ b/extensions/fablabchemnitz/x_agram/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "X-Agram",
- "id": "fablabchemnitz.de.x_agram",
- "path": "x_agram",
- "original_name": "X-agram",
- "original_id": "com.kacmarcik.pathmonkey.x-agram",
- "license": "MIT License",
- "license_url": "https://github.com/garykac/pathmonkey/blob/master/LICENSE",
- "comment": "ported to Inkscape v1 manually by Mario Voigt",
- "source_url": "https://github.com/garykac/pathmonkey",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/X-Agram",
- "main_authors": [
- "github.com/garykac",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "X-Agram",
+ "id": "fablabchemnitz.de.x_agram",
+ "path": "x_agram",
+ "original_name": "X-agram",
+ "original_id": "com.kacmarcik.pathmonkey.x-agram",
+ "license": "MIT License",
+ "license_url": "https://github.com/garykac/pathmonkey/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 manually by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/x_agram",
+ "fork_url": "https://github.com/garykac/pathmonkey",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/X-Agram",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/garykac",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/zigzag_nodes/meta.json b/extensions/fablabchemnitz/zigzag_nodes/meta.json
index 9e73a84d..f88398ba 100644
--- a/extensions/fablabchemnitz/zigzag_nodes/meta.json
+++ b/extensions/fablabchemnitz/zigzag_nodes/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Zigzag Nodes",
- "id": "fablabchemnitz.de.zigzag_nodes",
- "path": "zigzag_nodes",
- "original_name": "unknown",
- "original_id": "unknown",
- "license": "GNU GPL v2",
- "license_url": "http://dp48069596.lolipop.jp/sd/scripts/script_inkscape/zigzag.zip",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "http://dp48069596.lolipop.jp/sd/scripts/script_inkscape/zigzag.zip",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Zigzag+Nodes",
- "main_authors": [
- "Sunabe Kazumichi",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Zigzag Nodes",
+ "id": "fablabchemnitz.de.zigzag_nodes",
+ "path": "zigzag_nodes",
+ "original_name": "",
+ "original_id": "",
+ "license": "GNU GPL v2",
+ "license_url": "http://dp48069596.lolipop.jp/sd/scripts/script_inkscape/zigzag.zip",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/zigzag_nodes",
+ "fork_url": "http://dp48069596.lolipop.jp/sd/scripts/script_inkscape/zigzag.zip",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Zigzag+Nodes",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "Sunabe Kazumichi",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/extensions/fablabchemnitz/zoetrope/meta.json b/extensions/fablabchemnitz/zoetrope/meta.json
index 628f7c79..9a30e84d 100644
--- a/extensions/fablabchemnitz/zoetrope/meta.json
+++ b/extensions/fablabchemnitz/zoetrope/meta.json
@@ -1,16 +1,20 @@
-{
- "name": "Zoetrope",
- "id": "fablabchemnitz.de.zoetrope",
- "path": "zoetrope",
- "original_name": "Zoetrope",
- "original_id": "neon22.zoetrope",
- "license": "MIT License",
- "license_url": "https://github.com/Neon22/inkscape-Zoetrope/blob/master/LICENSE",
- "comment": "ported to Inkscape v1 by Mario Voigt",
- "source_url": "https://github.com/Neon22/inkscape-Zoetrope",
- "documentation_url": "https://stadtfabrikanten.org/display/IFM/Zoetrope",
- "main_authors": [
- "github.com/Neon22",
- "github.com/vmario89"
- ]
-}
\ No newline at end of file
+[
+ {
+ "name": "Zoetrope",
+ "id": "fablabchemnitz.de.zoetrope",
+ "path": "zoetrope",
+ "original_name": "Zoetrope",
+ "original_id": "neon22.zoetrope",
+ "license": "MIT License",
+ "license_url": "https://github.com/Neon22/inkscape-Zoetrope/blob/master/LICENSE",
+ "comment": "ported to Inkscape v1 by Mario Voigt",
+ "source_url": "https://gitea.fablabchemnitz.de/FabLab_Chemnitz/mightyscape-1.X/src/branch/master/extensions/fablabchemnitz/zoetrope",
+ "fork_url": "https://github.com/Neon22/inkscape-Zoetrope",
+ "documentation_url": "https://stadtfabrikanten.org/display/IFM/Zoetrope",
+ "inkscape_gallery_url": null,
+ "main_authors": [
+ "github.com/Neon22",
+ "github.com/vmario89"
+ ]
+ }
+]
\ No newline at end of file