fix eslint issues

This commit is contained in:
JFH
2020-07-14 12:56:33 +02:00
parent 01418b44f3
commit 09c786abe9
188 changed files with 179 additions and 21 deletions

13
archive/clipart/moon.svg Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="100" xmlns="http://www.w3.org/2000/svg" height="100" viewBox="0 0 205.5 255.87">
<g display="inline">
<title>Layer 1</title>
<path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/>
<path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/>
<path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/>
<path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/>
<path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/>
<path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/>
<path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

4
archive/clipart/star.svg Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100">
<path id="svg_1" stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/>
</svg>

After

Width:  |  Height:  |  Size: 500 B

3
archive/clipart/sun.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" standalone="no"?>
<svg width="800" height="600" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - https://github.com/SVG-Edit/svgedit -->
<defs>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_10">
<stop stop-opacity="1" stop-color="#ff00ff" offset="0"/>
<stop stop-opacity="0" stop-color="#ff00ff" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_11">
<stop stop-opacity="1" stop-color="#7f007f" offset="0"/>
<stop stop-opacity="0" stop-color="#7f007f" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_17">
<stop stop-opacity="1" stop-color="#cccccc" offset="0"/>
<stop stop-opacity="1" stop-color="#0b3535" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_26">
<stop stop-opacity="1" stop-color="#bf005f" offset="0"/>
<stop stop-opacity="1" stop-color="#aaffff" offset="1"/>
</linearGradient>
<linearGradient y2="0.65234" x2="0.74609" y1="0" x1="0" id="svg_27">
<stop stop-opacity="1" stop-color="#bf005f" offset="0"/>
<stop stop-opacity="1" stop-color="#aaffff" offset="1"/>
</linearGradient>
<linearGradient y2="0.51953" x2="0.61719" y1="0" x1="0" id="svg_28">
<stop stop-opacity="1" stop-color="#bf005f" offset="0"/>
<stop stop-opacity="1" stop-color="#aaffff" offset="1"/>
</linearGradient>
<linearGradient y2="0.34766" x2="0.42188" y1="0" x1="0" id="svg_29">
<stop stop-opacity="1" stop-color="#bf005f" offset="0"/>
<stop stop-opacity="1" stop-color="#aaffff" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_43">
<stop stop-opacity="1" stop-color="#0000ff" offset="0"/>
<stop stop-opacity="1" stop-color="#333333" offset="1"/>
</linearGradient>
<linearGradient y2="0.94141" x2="0.42578" y1="0.17188" x1="0.80859" id="svg_31">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="0.95703" x2="0.98828" y1="0.38281" x1="0.46484" id="svg_38">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="0.03125" x2="0.98438" y1="0.90234" x1="0.11719" id="svg_39">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="0.125" x2="0.69922" y1="0.75781" x1="0.48828" id="svg_40">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="0.46094" x2="0.66016" y1="0.77734" x1="0.09766" id="svg_106">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="0.10156" x2="0.88672" y1="0.33984" x1="0.40625" id="svg_116">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="0.82" stop-color="#626784" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0" x1="0" id="svg_125">
<stop stop-opacity="1" stop-color="#060649" offset="0"/>
<stop stop-opacity="0.77" stop-color="#3b5b7a" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0.18359" x1="0.23438" id="svg_126">
<stop stop-opacity="1" stop-color="#c7eaea" offset="0"/>
<stop stop-opacity="1" stop-color="#e5e5e5" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0.18359" x1="0.23438" id="svg_132">
<stop stop-opacity="1" stop-color="#a1c6c6" offset="0"/>
<stop stop-opacity="1" stop-color="#e5e5e5" offset="1"/>
</linearGradient>
<linearGradient y2="0.85938" x2="0.22266" y1="0.07813" x1="0.875" id="svg_134">
<stop stop-opacity="1" stop-color="#333333" offset="0"/>
<stop stop-opacity="1" stop-color="#5b5b93" offset="1"/>
</linearGradient>
<linearGradient y2="1" x2="1" y1="0.18359" x1="0.23438" id="svg_135">
<stop stop-opacity="1" stop-color="#ffffff" offset="0"/>
<stop stop-opacity="1" stop-color="#e5e5e5" offset="1"/>
</linearGradient>
<linearGradient id="svg_58" x1="0.60938" y1="0.62891" x2="1" y2="0.01953">
<stop offset="0" stop-color="#0b0b28" stop-opacity="1"/>
<stop offset="1" stop-color="#0b0b28" stop-opacity="0.5"/>
</linearGradient>
<linearGradient id="svg_60" x1="0.96094" y1="0" x2="0.60938" y2="0.29297">
<stop offset="0" stop-color="#00ccff" stop-opacity="1"/>
<stop offset="1" stop-color="#00ccff" stop-opacity="0.42"/>
</linearGradient>
<linearGradient id="svg_71" x1="0.48047" y1="0.01172" x2="0.49609" y2="0.22656">
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="svg_76" x1="0.46094" y1="0.75391" x2="0.46094" y2="0.37891">
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="svg_80" x1="0.48828" y1="0.88672" x2="0.5" y2="0.00391">
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="svg_83" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#ffffff" stop-opacity="1"/>
<stop offset="1" stop-color="#ffffff" stop-opacity="0"/>
</linearGradient>
<linearGradient id="svg_84" x1="0.48828" y1="0.97266" x2="0.54297" y2="0.28516">
<stop offset="0" stop-color="#871187" stop-opacity="1"/>
<stop offset="1" stop-color="#871187" stop-opacity="0.46"/>
</linearGradient>
</defs>
<title>SVG-edit 2.4 Arbelos</title>
<g display="none">
<title>Layer 2</title>
<circle cx="280" cy="300" r="180" id="svg_4" fill="url(#svg_17)" stroke="#000000"/>
<circle cx="179" cy="300" r="80" id="svg_2" fill="url(#svg_10)" stroke="#000000"/>
<circle cx="360" cy="300" r="100" id="svg_3" fill="url(#svg_11)" stroke="#000000" fill-opacity="0.6"/>
</g>
<g display="none">
<title>Layer 3</title>
<line x1="259" y1="121" x2="99" y2="299" id="svg_6" stroke="#000000" fill="none"/>
<line x1="460" y1="300" x2="259" y2="121" id="svg_7" stroke="#000000" fill="none"/>
<line x1="100" y1="300" x2="460" y2="300" id="svg_8" stroke="#0000ff" fill="none"/>
<line x1="259" y1="299.97382" x2="259" y2="121.04712" id="svg_5" stroke="#000000" fill="none"/>
</g>
<g display="none">
<title>Layer 4</title>
<path d="m99.525726,299.499542l159.636566,-178.688034l200.536591,179.430405l-199.525635,0l-160.647522,-0.742371z" id="svg_9" fill="none" stroke="#0000ff"/>
</g>
<g>
<title>Background</title>
<rect x="8" y="8" width="784" height="584" fill="url(#svg_60)" stroke="url(#svg_43)" stroke-width="0" id="svg_59"/>
<rect x="8" y="8" width="784" height="584" id="svg_57" fill="url(#svg_58)" stroke="url(#svg_43)" stroke-width="0"/>
</g>
<g>
<title>Arbelos</title>
<g id="svg_53" transform="rotate(-66 347 266)">
<path fill-opacity="0.6" id="svg_15" d="m132.525726,317.499542c3.75296,-121.903915 104.845871,-175.455826 159.636566,-178.688034c106.957916,-8.789658 198.214752,65.527283 200.536591,179.430405c-3.961182,-134.668137 -195.764465,-131.935898 -199.525635,0c-5.528442,-102.427689 -153.615875,-110.62442 -160.647522,-0.742371z" fill="url(#svg_26)" stroke="#0000ff"/>
<path fill-opacity="0.6" transform="rotate(36 327 243)" id="svg_18" d="m147.563293,332.537598c3.753296,-121.904007 104.846313,-175.455994 159.636292,-178.688004c106.958008,-8.789993 198.215027,65.527008 200.536987,179.430008c-3.960938,-134.667999 -195.764984,-131.936005 -199.52597,0c-5.527985,-102.428009 -153.615997,-110.625 -160.647308,-0.742004z" fill="url(#svg_26)" stroke="#0000ff"/>
<path fill-opacity="0.6" id="svg_19" transform="rotate(72 342 258)" d="m162.600891,347.575195c3.753296,-121.904007 104.846313,-175.455994 159.636292,-178.688004c106.958008,-8.789993 198.215027,65.527008 200.536987,179.430008c-3.960938,-134.667999 -195.764984,-131.936005 -199.52597,0c-5.527985,-102.428009 -153.615997,-110.625 -160.647308,-0.742004z" fill="url(#svg_27)" stroke="#0000ff"/>
<path fill-opacity="0.4" id="svg_22" transform="rotate(180 387 303)" d="m207.713684,392.687988c3.753296,-121.903992 104.846313,-175.455994 159.636292,-178.688004c106.958008,-8.789993 198.215027,65.526993 200.536987,179.430008c-3.960938,-134.667999 -195.764984,-131.936005 -199.52597,0c-5.527985,-102.428009 -153.615997,-110.625 -160.647308,-0.742004z" fill="url(#svg_29)" stroke="#0000ff"/>
<path fill-opacity="0.4" id="svg_21" transform="rotate(144 372 288)" d="m192.676086,377.650391c3.753311,-121.903992 104.846313,-175.455994 159.636292,-178.688004c106.958008,-8.789993 198.215027,65.526993 200.536987,179.430008c-3.960938,-134.667999 -195.764984,-131.936005 -199.52597,0c-5.527985,-102.428009 -153.615997,-110.625 -160.647308,-0.742004z" fill="url(#svg_29)" stroke="#0000ff"/>
<path fill-opacity="0.5" id="svg_20" transform="rotate(108 357 273)" d="m177.638489,362.612793c3.753296,-121.904007 104.846313,-175.455994 159.636292,-178.688004c106.958008,-8.789993 198.215027,65.526993 200.536987,179.430008c-3.960938,-134.667999 -195.764984,-131.936005 -199.52597,0c-5.527985,-102.428009 -153.615997,-110.625 -160.647308,-0.742004z" fill="url(#svg_28)" stroke="#0000ff"/>
</g>
</g>
<g>
<title>Manta Ray</title>
<path stroke="#29295b" fill="#29295b" id="svg_29" d="m755.333008,260l8.333984,-8c5.333008,-7.666992 9.333008,-9.333008 15,-9.666992c4.333008,2.333984 7,4.333984 8,8c-4,6 -11,9.666992 -21.333984,11l-10,-1.333008z"/>
<path opacity="0.6" fill="#ffffff" id="svg_43" d="m774.666992,242.333008c-2.666992,7.333984 -4,10 -9.666992,12.333984c-1.666992,3 -5.5,5.666016 -6.666992,2.333008c10.333984,-11 17.666992,-15 16.333984,-14.666992z"/>
<path d="m442,381.333008l-145.333313,95.333984l114.666321,-80.666992c6.666992,-6 9.333984,-6 13.333984,-14c4,-4.666992 8,-8 17.333008,-0.666992z" id="svg_8" fill="#29295b" stroke-width="2" opacity="0.9"/>
<path d="m441.83075,380.559021l-141.997375,92.499817l112.034271,-78.26886c6.513977,-5.821625 9.119781,-5.821625 13.027985,-13.583801c3.908142,-4.528229 7.816345,-7.762146 16.935089,-0.647156z" fill="url(#svg_106)" stroke-width="2" opacity="0.8" id="svg_9"/>
<path fill="#29295b" id="svg_5" d="m721.5,191c10.578003,2.804001 60.166992,39.833008 45.166992,51.333008c-18.666992,17.666992 -23.666992,-10.666016 -63.166992,-16.833008c-17.25,-9 -6.5,-34 18,-34.5z"/>
<path id="svg_41" fill="#ffffff" d="m752.549072,243.189545c14.5,6.499969 13.999634,-9.332947 14.666626,-1c-18.666992,17.667053 -24.333374,-9.999649 -63.833374,-16.166672c-17.25,-9 9.166748,-4.833298 49.166748,17.166672z"/>
<path opacity="0.9" fill="#ffffff" id="svg_44" d="m715,216.666992c11.666992,4.666016 13.666992,4.333008 34,14.333008c-9.333008,-8.666992 -14.333008,-8.666992 -13.666992,-12.666992l6.333984,-1c-6.666992,-5 -8,-5.666016 -13.333984,-8c-6,-1.666016 -7.333008,4 -13.333008,7.333984z"/>
<path fill="#29295b" id="svg_2" d="m436,77c62,76 83.5,141 14,293c-11,1.5 -10.5,5.5 -11.5,10.5c51,21.5 68.5,28 119.5,46.5c69.5,38 85,68.5 74.5,122.5c-1.5,10.166992 -6,15 0.5,14.5c136.5,-126 30.333008,-224 110.333008,-270c8.666992,-2.666992 13,-4 16,-9.666992l7.666992,-4.333008c0.333008,-9 2,-14.333008 9,-19.5c6.5,-4 11.5,-6 10,-10.5c-33,17 -114.156982,-43.026001 -62.156982,-58.026001c-14.770996,-8.888992 -60.843018,-2.973999 -96.843018,9.026001c-35.5,-9.5 -171.5,-132.5 -191,-124z"/>
<path fill="url(#svg_31)" id="svg_3" d="m688.5,235l-7.5,3.5l-61,22.5c-7.333008,5.666992 -8,9 -2,13.5c24.333008,-1.166992 41.666992,-6.5 57,-7c22,5.5 33,6.166992 46.5,15c-4.833008,9.5 1.5,10 -21.5,23.833008c4.666992,5.333984 5.333008,3.666992 10,4.666992c6,-0.333008 11,-3.333008 15,-11.25l-12.666992,18.916992c-3.333008,10.666016 -2.333008,18.333008 -2.666016,30.666016c3.333008,-27.333008 13,-41 21.333008,-47.333008c3.666992,-2.666992 6.666992,-5.333008 9,-8.333008l0,-9.666992l-43.5,-48.5c-3.833008,-2.166992 -4.166992,-1.833008 -8,-0.5z"/>
<path opacity="0.9" fill="url(#svg_31)" id="svg_4" d="m636.833374,202l19.5,-3.667007c-8.166992,7.334 -36.666992,34.667007 -56,46.167007c1.666626,5.5 4.333313,6.833344 10,4c26.333313,-11.5 37.666626,-19.833344 53,-28c6.666626,-1.5 10.333313,0.166656 14.5,-1.5l3,-4.5c0.5,-5.833313 -3.5,-16.166672 -6.5,-20.5c-17.666992,-4 -34,2.667007 -37.5,8z"/>
<path fill="url(#svg_31)" id="svg_32" d="m633.036987,502.564636c5.046204,0 0.840942,-5.06134 2.691284,-3.71167l-4.478271,-4.852966c11.774475,-3.711792 -0.567932,-12.018127 7.169556,-15.392395c8.746765,-14.171814 9.756042,8.772949 19.175659,12.822021c4.709717,-15.858826 11.774414,-14.171753 22.035034,-15.858887c13.961182,-4.723938 21.025879,-28.680939 22.035095,-15.858887c-11.665344,35.788147 -24.915344,60.038147 -64.415344,100.538147c-5.964294,5.607117 -8.172791,4.136475 -7.5,-0.25c7,-20.5 7.996765,-48.662292 3.286987,-57.435425z"/>
<path opacity="0.8" fill="url(#svg_116)" id="svg_33" d="m483,154.5c2,-3 1.5,-6 1.5,-7.5c21,22.5 29.5,31 8,-16c22,21.5 28.5,11.5 41.5,9c-27.5,-21 -74.5,-61 -98,-64c29.5,38 33,42.5 47,78.5z"/>
<path fill="url(#svg_38)" id="svg_34" d="m606,217c-6.5,8 1,14.5 -4,25l-9,5c7,-11 4.166992,-16.833008 4.666992,-24.333008c4,0.333008 6.5,-10.166992 8.333008,-5.666992z"/>
<path fill="url(#svg_39)" id="svg_35" d="m568,255.666992c-12.666992,21 -30.666992,33.666016 -40.666992,47.666016c-6.333008,9.666992 -21.666016,26.666992 -36.333008,36c17,-18.666016 21.333008,-24.666016 30,-34.666016l47,-49z"/>
<path fill="url(#svg_40)" id="svg_36" d="m464,344c12.666992,-4 11.666992,-6 26.333008,-3.666992c21,-3 26.333984,-5.333008 44.666992,-1.333008c-18,5 -27.666992,6.333008 -42,7l-10.666992,-1.666992c-7,-1.333008 -9.333008,1 -18.333008,-0.333008z"/>
<path opacity="0.6" fill="#ffffff" id="svg_42" d="m767.333008,271c-4.666016,-4 -5.333008,-2 -8.333008,4.333008c2,-3.833008 1.333008,9.666992 7.666992,4l0.666016,-8.333008z"/>
<path stroke="#000000" fill-opacity="0.53" opacity="0.4" stroke-width="0" fill="url(#svg_134)" id="svg_117" d="m641,296c-1.5,-17.5 28.209839,5.037048 35,-3c13.580261,2.481476 20.987671,3.098755 28,5c2.246948,20.938263 14.123413,13.271606 22,9.827148c-25.308655,9.876556 -12.345703,37.037048 -15,105.172852c-5.987671,52.234558 -7.222229,57.172852 -54,128c28.259277,-54.160522 41.222229,-80.703735 21,-66c-18.049377,42.086426 -21.753052,46.40741 -32.864197,-1.740723c-16.049377,-8.641968 -7.765442,22.308594 -15.135803,14.740723c-11.40741,-24.61731 12.049377,-42.518524 3,-73c-15.024658,-28.777771 42.38269,-75.074066 4,-97c6.901245,-8.938263 -4.209839,-12.024689 -9,-19l13,-3z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_125)" id="svg_118" d="m653.777771,273.259247c5.555542,-2.777802 5.555603,5.555573 5.555603,11.111115c-13.580322,5.555573 -17.901245,9.876556 -6.790161,17.901245c1.851807,7.40741 1.234558,9.259247 6.172852,12.345673c-15.432129,27.777771 -15.432129,42.59259 -23.456787,81.481476c7.407349,35.185181 15.432068,45.061737 28.39502,37.654327c20.370361,-6.790131 35.185181,-31.481476 40.740723,-11.111115c-14.19751,27.160492 -24.074036,65.432129 -46.913574,83.950623c-17.901184,-35.185181 -28.39502,-63.580231 -30.246887,-108.641846c8.024719,-34.567902 11.728394,-58.02475 19.753113,-72.8396c8.024658,-7.40744 2.469116,-10.493866 -4.321045,-15.432129c6.790161,-11.110992 4.321045,-8.024689 -11.111084,-11.110992c1.234619,-6.172852 9.259277,-12.345673 14.814819,-14.814819l-5.555542,-8.642059l12.962952,-1.851898z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_125)" id="svg_124" d="m457.372559,350.274506c8.823517,-5.882355 14.705872,-3.92157 16.666656,-5.882355c37.254913,6.862762 44.117645,2.941193 85.294159,-8.823517c21.568604,-2.941193 19.607788,-0.980408 40.196045,-8.823547c-17.647095,14.705902 -19.607849,15.686279 -48.039185,22.549042c-34.313782,9.803925 -39.215698,8.823517 -68.627502,10.784302c-11.764709,6.862732 -11.764709,5.882355 -24.509796,9.803925l-0.980377,-19.607849z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_125)" id="svg_122" d="m465.216003,96.352997c33.333008,25.490021 38.234985,30.392014 71.567993,49.020004c27.450989,19.606995 29.412048,21.567993 53.921997,35.294006c-4.902039,1.960449 -9.804016,1.960449 -16.666992,-0.981003c0.981018,19.608002 5.882996,26.470978 16.666992,40.196014c-32.352966,-6.862 -24.509949,-10.783997 -55.882019,-12.745026c-16.666992,-12.74501 -21.56897,-16.666 -30.392975,-41.17598c-0.980011,-9.804138 -2.940826,-19.608078 -8.822998,-31.373001l-30.391998,-38.234993z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_125)" id="svg_123" d="m688.745117,218.901978c-34.313721,1.960754 -45.098022,12.745087 -63.725464,24.509796c-37.254944,19.607849 -38.235352,19.607849 -58.823608,39.215668c-32.352905,13.725494 -31.372559,10.784332 -48.039185,33.333344l-18.627441,19.607849c25.490173,5.882355 28.431396,3.92157 44.117676,-1.960785c24.509766,-3.92157 30.39209,-18.627472 49.019531,-34.313721c14.705933,-5.882263 14.705933,-4.901978 42.15686,-11.764709c-21.568604,-0.980408 -25.490112,2.941162 -21.568604,-7.84314c0.980408,-7.84314 3.921631,-19.607849 9.803955,-24.509796c37.254883,-15.686279 38.235291,-15.686279 66.666626,-25.490189c-5.39209,0.490189 -6.372559,-10.294128 -0.980347,-10.784302z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_132)" id="svg_119" d="m770.06311,236.356201c-2.040833,-14.656769 -31.717407,-38.405579 -40.976685,-42.109283c-13.568787,-3.716309 -16.722778,1.107437 -31.481445,0l10.493774,1.851852c-16.049377,9.259262 -6.124756,23.930923 9.088623,36.732407c25.925964,19.753082 52.639771,28.082397 62.516357,23.144135l3.086426,-8.641968l-11.728394,6.7901c-20.370422,-3.703705 -29.01239,-9.876541 -50.61731,-25.308624c-11.111084,-10.493835 -16.049438,-22.222229 -7.40741,-29.012344c3.408264,-3.149399 9.345154,-4.44812 17.901184,-0.617279c20.370422,11.728378 32.816895,23.070847 39.124756,37.171021z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_132)" id="svg_121" d="m651.325012,255.095001c-5.381042,-1.485016 -6.308044,1.484009 -12.616028,3.153992c-17.625977,0.742004 -12.244995,8.718994 -6.86499,6.493011c3.525024,2.411987 3.339966,5.936981 14.099976,4.638c-4.451965,-3.709991 0,-5.937012 6.308044,-3.895996c7.79303,3.153992 7.79303,-2.226013 13.357971,-2.226013c-5.008972,-0.742004 -7.049988,-1.298981 -4.452026,-2.597992c4.822998,-1.855011 5.195068,-1.669006 7.792053,0l7.791992,7.235992c-2.411804,6.493622 -1.484131,5.380432 1.85498,8.533997c6.308411,2.597839 10.389954,0.557007 16.14093,-0.742004c4.824219,5.009613 13.72998,-6.86499 13.72998,0c0.927246,-4.266846 4.081299,-5.380005 9.83313,-7.605988c-7.421631,-0.742493 -7.97821,-0.371429 -16.140991,5.380005c7.235107,-5.009308 4.637695,-9.090942 14.470947,-7.791992c-7.050293,-2.968719 -9.647705,-7.977997 -20.593994,-10.761017c-2.782837,3.525146 -3.15387,3.710663 -7.978027,3.339996c-2.782532,0.74173 -5.379883,0.927246 -4.266968,4.080994l12.059998,3.154022l-11.689026,0.742004c-5.936951,-1.669128 -6.863953,-4.081024 2.968994,-11.873154c-7.050049,3.339066 -7.050049,1.298004 -11.132019,-0.372009c-5.379944,2.041153 -7.606995,2.227005 -14.100037,2.598007c-1.29895,2.041138 -2.968994,3.338989 -6.122925,2.78299l-4.452026,-4.266968z"/>
<path opacity="0.9" stroke-width="0" stroke="#000000" fill="url(#svg_132)" id="svg_120" d="m649.655029,196.839005c12.429932,-2.041 10.390015,-3.710999 20.778931,-1.485001l-7.977966,4.082001c4.453064,1.298691 3.339905,4.267151 -2.039978,6.678986c7.791748,1.484253 0.370972,3.710999 -0.927979,5.009003c-0.742065,1.855988 -2.597046,6.123016 -8.163025,5.937012c-7.050415,4.823929 -0.927979,5.380508 -7.606995,8.348999l-7.791992,3.710999l-9.64801,7.605988l-6.308044,-1.112976l-1.112976,-3.710022c1.855408,-5.937378 0.556702,-5.751862 6.308044,-10.760986c11.502869,-4.267288 15.955566,-14.471375 22.078003,-19.294998c5.009277,-0.92778 -0.092529,-6.215012 2.411987,-5.009003z"/>
<path opacity="0.9" stroke-width="0" fill="url(#svg_126)" id="svg_127" d="m782.441711,256.331299c-4.601257,4.601227 -10.429443,9.509186 -14.110413,14.417175c0.306763,-2.147247 3.374268,-7.361969 3.374268,-8.895721c4.294434,-3.680969 5.521423,-3.067474 10.736145,-5.521454z"/>
<path opacity="0.9" stroke-width="0" fill="url(#svg_126)" id="svg_128" d="m783.668701,250.809814c0.920288,0.920258 0.306763,1.840469 -0.920227,3.374237c-2.760742,1.840485 -3.067505,1.840485 -7.055237,1.533752c-1.533752,0.920258 -3.374268,-2.147247 -1.840454,-3.067505c6.134949,0.920258 7.361938,0.306763 9.815918,-1.840485z"/>
<path opacity="0.9" stroke-width="0" fill="url(#svg_135)" id="svg_129" d="m763.957031,268.601227c-4.601196,-1.22699 -3.680969,3.374237 -6.134949,6.441711c-1.840515,5.214722 -2.453979,6.441711 4.601257,7.668732c4.907959,-2.45401 6.44165,-1.840515 4.294434,-6.441742c3.68103,-0.613495 1.533752,-4.294464 -2.760742,-7.668701z"/>
<path opacity="0.3" stroke-width="0" fill="#ffffff" id="svg_130" d="m656.368103,270.134979c-0.920227,2.760712 -0.613464,3.067474 -5.214722,6.748444c7.668701,0.306763 8.895691,0.920258 15.337402,4.90799c4.294495,3.987732 8.282227,5.521484 15.950928,14.723938c-15.030701,-5.521484 -20.552185,-7.055237 -32.208557,-5.521484c-5.828247,-0.613495 -4.907959,0.306763 -7.668701,5.828217c-2.453979,3.987732 0.920166,4.294495 11.34967,10.736206c-8.895691,1.533722 -1.22699,6.748474 -5.521484,8.282227l8.588928,11.963379c-11.34967,-5.828369 -12.883423,-6.748474 -19.325134,-12.269989c1.533752,-2.760681 1.840515,-3.68103 2.454041,-7.668671c-7.668762,-7.055389 -8.282227,-5.828369 -15.644226,-9.81601c6.134949,-2.147369 13.496948,-7.055359 15.644226,-11.34964c-6.748535,-3.987701 -5.828247,-4.60141 -14.110474,-4.90802l-12.269897,-4.90802c11.656372,-5.521362 13.80365,-6.44162 21.472351,-6.748352c11.963196,0.306732 11.963196,1.22699 21.165649,0z"/>
<path opacity="0.5" stroke-width="0" fill="#ffffff" id="svg_131" d="m731.521484,214c-3.987732,-1.22699 -6.748474,-4.294495 -11.656494,-8.588959l4.601257,8.895721c-3.680969,3.374207 -1.840515,3.680969 -11.963196,5.828217c15.950928,2.453979 25.153381,1.22699 29.754639,5.828217c-10.122681,-4.601227 -11.963257,-8.895691 -7.055237,-7.975449l13.80365,-2.147263c-8.282166,0.920273 -10.736206,0.306763 -17.484619,-1.840469z"/>
<g id="svg_45"/>
</g>
<g>
<title>Text - Link</title>
<g id="svg_14">
<a xlink:href="http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html" target="_blank" >
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="122" stroke-width="0" stroke="url(#svg_43)" fill="#6f7c91" y="567" x="380" id="svg_54">SVG-edit</text>
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="122" stroke-width="0" stroke="url(#svg_43)" fill="#220055" id="svg_41" y="565" x="377">SVG-edit</text>
<g id="svg_1">
<path id="svg_36" d="m728.054871,491.510803c32.546997,0.870117 46.844849,24.30603 47.707703,37.00769c2.346863,24.795593 -17.494934,45.951233 -47.905823,46.489563c35.954895,-0.918213 35.225525,-45.38324 0,-46.255127c27.347168,-1.281555 29.535645,-35.612091 0.19812,-37.242126z" fill="#800080" stroke="#0000ff"/>
<path d="m728.044861,491.504089c32.547058,0.870117 46.84491,24.305969 47.707764,37.00769c2.346863,24.795593 -17.494995,45.951233 -47.905823,46.489563c35.954956,-0.918274 35.225525,-45.38324 0,-46.255188c27.347168,-1.281555 29.535706,-35.61203 0.198059,-37.242065z" fill="url(#svg_71)" fill-opacity="0.46" id="svg_64"/>
<path d="m728.055786,491.511322c32.547058,0.870087 46.844788,24.305939 47.707764,37.00766c2.346741,24.795593 -17.494995,45.951233 -47.905884,46.489563c35.954895,-0.918274 35.225464,-45.38324 0,-46.255188c27.347168,-1.281494 29.535706,-35.612 0.19812,-37.242035z" fill="url(#svg_76)" fill-opacity="0.46" id="svg_72"/>
</g>
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="122" stroke-width="0" stroke="url(#svg_43)" fill="url(#svg_80)" y="564" x="378" id="svg_55">SVG-edit</text>
<g id="svg_13">
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="84" stroke-width="0" stroke="#0000ff" fill="#00ccff" y="476.992" x="153.817" transform="matrix(1,0,0,1,150.31700134277344,-6) " id="svg_12">2.4 Arbelos</text>
<text xml:space="preserve" text-anchor="middle" font-family="serif" font-size="85" stroke-width="0" stroke="#0000ff" fill="url(#svg_84)" id="svg_37" y="476.397" x="262.247" transform="matrix(1,0,0,1,42.36981201171875,-5.456512451171875) ">2.4 Arbelos</text>
<text id="svg_40" xml:space="preserve" text-anchor="middle" font-family="serif" font-size="85" stroke-width="0" stroke="#0000ff" fill="url(#svg_83)" y="475.398" x="360.58" transform="matrix(1,0,0,1,-57,-5) ">2.4 Arbelos</text>
</g>
</a>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 24 KiB

141
archive/examples/mickey.svg Normal file
View File

@@ -0,0 +1,141 @@
<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" id="svgroot" height="442" width="840.7578125">
<rect ry="10" rx="10" stroke-opacity="1" fill-opacity="1" stroke-width="3" stroke="#404040" fill="url(#svg_7)" id="svg_6" height="100" width="370" y="312" x="2"/>
<circle stroke-opacity="1" fill-opacity="1" stroke-width="5" stroke="#000000" fill="#ff0000" id="svg_1" r="143" cy="151" cx="170"/>
<circle id="svg_2" stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="#ffffff" r="83.625" cy="181" cx="170"/>
<rect x="374" y="2" width="464" height="439" id="svg_240" fill="url(#svg_241)" stroke="#000000" stroke-width="3" fill-opacity="1" stroke-opacity="1" rx="19" ry="19"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_239" d="M374,361 l8,4 l238,-152 l4,41 l12,-13 l-2,30 " transform="rotate(175, 505.485, 289.651)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_238" d="M402,373 l7,4 l220,-135 l4,36 l18,-10 l-8,25" transform="rotate(160, 528, 310)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_237" d="M464,355 l7,4 l196,-117 l4,32 l16,-9 l-8,22" transform="rotate(145, 577, 301)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_236" d="M489,357 l7,4 l194,-114 l4,31 l16,-9 l-8,21" transform="rotate(130, 601, 305)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_231" d="M527,337 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(115, 633, 288)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_230" d="M555,335 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(100, 661, 286)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_229" d="M581,324 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(85, 687, 275)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_228" d="M597,305 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(65, 703, 256)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_227" d="M608,279 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(50, 714, 230)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_225" d="M629,255 l7,4 l185,-106 l4,29 l9,-7 l-1,18 " transform="rotate(35, 731.723, 206.706)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_224" d="M616,231 l7,4 l185,-106 l4,29 l16,-9 l-8,20" transform="rotate(20, 722, 182)"/>
<path stroke-opacity="1" fill-opacity="0.5" stroke-width="2" stroke="#ffff00" fill="url(#svg_194)" id="svg_163" d="M606,212 l7,4 l185,-106 l4,29 l16,-9 l-8,20"/>
<defs>
<linearGradient y2="0.69921875" x2="0.74609375" y1="0.03125" x1="0.78515625" id="svg_116">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.4765625" x2="0.359375" y1="0.03125" x1="0.78515625" id="svg_130">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.5625" x2="0.62890625" y1="0.02734375" x1="0.203125" id="svg_132">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.44140625" x2="0.484375" y1="0.01171875" x1="0.50390625" id="svg_134">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.5625" x2="0.62890625" y1="0.0234375" x1="0.390625" id="svg_146">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.5390625" x2="0.48046875" y1="0.01171875" x1="0.50390625" id="svg_148">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.65234375" x2="0.6796875" y1="0.19140625" x1="0.20703125" id="svg_153">
<stop stop-opacity="1" stop-color="#d60e0e" offset="0.0"/>
<stop stop-opacity="0.64" stop-color="#bc2d53" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.4921875" x2="0.44921875" y1="0.01171875" x1="0.453125" id="svg_165">
<stop stop-opacity="1" stop-color="#ffffff" offset="0.0"/>
<stop stop-opacity="0.48" stop-color="#ffffff" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.64453125" x2="0.609375" y1="0.0703125" x1="0.17578125" id="svg_170">
<stop stop-opacity="1" stop-color="#000000" offset="0.0"/>
<stop stop-opacity="0" stop-color="#070707" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.01171875" x2="0.54296875" y1="0.52734375" x1="0.51953125" id="svg_174">
<stop stop-opacity="1" stop-color="#fcfcfc" offset="0.0"/>
<stop stop-opacity="0" stop-color="#ffffff" offset="1.0"/>
</linearGradient>
<linearGradient y2="0.65234375" x2="0.6796875" y1="0.19140625" x1="0.20703125" id="svg_188">
<stop stop-opacity="1" stop-color="#d60e0e" offset="0.0"/>
<stop stop-opacity="0.46" stop-color="#dd5454" offset="1.0"/>
</linearGradient>
<linearGradient id="svg_193" x1="0.15234375" y1="0.17578125" x2="0.71875" y2="0.6015625">
<stop offset="0.0" stop-color="#ffffff" stop-opacity="1"/>
<stop offset="1.0" stop-color="#f4eded" stop-opacity="0.58"/>
</linearGradient>
<linearGradient y2="0.18359375" x2="0.046875" y1="0.73046875" x1="0.7890625" id="svg_194">
<stop stop-opacity="1" stop-color="#ffffaa" offset="0.0"/>
<stop stop-opacity="0.74" stop-color="#ffff56" offset="1.0"/>
</linearGradient>
<linearGradient id="svg_241" x1="0.578125" y1="0.66015625" x2="0.15625" y2="0.0703125">
<stop offset="0.0" stop-color="#f7f7b9" stop-opacity="1"/>
<stop offset="1.0" stop-color="#ffff00" stop-opacity="1"/>
</linearGradient>
<linearGradient y2="1.0" x2="1.0" y1="0.0" x1="0.0" id="svg_7">
<stop stop-opacity="0.85" stop-color="#f9ac63" offset="0.0"/>
<stop stop-opacity="0.85" stop-color="#ffff00" offset="1.0"/>
</linearGradient>
</defs>
<ellipse transform="rotate(14, 144, 148)" stroke-opacity="1" ry="42" rx="27" fill-opacity="0" stroke-width="3" stroke="url(#svg_132)" fill="#ff0000" id="svg_131" cy="148" cx="144"/>
<ellipse transform="rotate(-145, 249, 89)" stroke-opacity="1" fill-opacity="1" ry="41" rx="47" stroke-width="3" stroke="#000000" fill="#000000" id="svg_139" cy="89" cx="249"/>
<ellipse transform="rotate(-30, 94, 87)" stroke-opacity="1" fill-opacity="1" ry="41" rx="47" stroke-width="3" stroke="#000000" fill="#000000" id="svg_138" cy="87" cx="94"/>
<circle stroke-opacity="1" fill-opacity="0.25" stroke-width="2" stroke="#000000" fill="url(#svg_174)" id="svg_99" r="83.625" cy="180" cx="170"/>
<ellipse stroke-width="5" fill="#ffffff" id="svg_119" cy="201" cx="219"/>
<ellipse transform="rotate(14, 107, 186)" stroke-opacity="1" ry="20" rx="15" fill-opacity="0" stroke-width="3" stroke="url(#svg_132)" fill="#ff0000" id="svg_143" cy="186" cx="107"/>
<ellipse transform="rotate(29, 239, 184)" stroke-opacity="1" ry="20" rx="15" fill-opacity="0" stroke-width="3" stroke="url(#svg_146)" fill="#ff0000" id="svg_144" cy="184" cx="239"/>
<ellipse transform="rotate(350, 197, 149)" stroke-opacity="1" ry="41" rx="27" fill-opacity="0" stroke-width="3" stroke="url(#svg_130)" fill="#ff0000" id="svg_129" cy="149" cx="197"/>
<ellipse transform="rotate(180, 173, 197)" stroke-opacity="1" fill-opacity="1" ry="43" rx="62" stroke-width="2" stroke="url(#svg_148)" fill="#ffffff" id="svg_147" cy="197" cx="173"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="29" rx="17" stroke-width="1" stroke="#000000" fill="#ffffff" id="svg_105" cy="156" cx="148"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="29" rx="15" stroke-width="1" stroke="#000000" fill="#ffffff" id="svg_106" cy="155" cx="192"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="17" rx="8" stroke-width="5" stroke="#000000" fill="#000000" id="svg_121" cy="163" cx="191"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="18" rx="28" stroke-width="2" stroke="url(#svg_134)" fill="none" id="svg_142" cy="198" cx="171"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="12" rx="18" stroke-width="5" stroke="#000000" fill="#000000" id="svg_122" cy="201" cx="172"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="5" rx="11" stroke-width="5" stroke="none" fill="url(#svg_165)" id="svg_118" cy="197" cx="170"/>
<ellipse transform="rotate(-20, 110, 196)" stroke-opacity="1" ry="1" rx="8" fill-opacity="0" stroke-width="2" stroke="url(#svg_116)" fill="#ff0000" id="svg_141" cy="196" cx="110"/>
<ellipse transform="rotate(15, 235, 198)" stroke-opacity="1" ry="5" rx="8" fill-opacity="0" stroke-width="2" stroke="url(#svg_116)" fill="#ff0000" id="svg_140" cy="198" cx="235"/>
<ellipse stroke-opacity="1" ry="41" rx="27" fill-opacity="0" stroke-width="3" stroke="url(#svg_170)" fill="#ffffff" id="svg_166" cy="149" cx="147"/>
<ellipse transform="rotate(-30, 557, 76)" stroke-opacity="1" fill-opacity="1" ry="41" rx="47" stroke-width="3" stroke="#000000" fill="#000000" id="svg_176" cy="77" cx="558"/>
<ellipse transform="rotate(-145, 706, 76)" stroke-opacity="1" fill-opacity="1" ry="41" rx="47" stroke-width="3" stroke="#000000" fill="#000000" id="svg_177" cy="79" cx="710"/>
<circle stroke-opacity="1" fill-opacity="1" stroke-width="2" stroke="#000000" fill="#000000" id="svg_178" r="84.625" cy="175" cx="633"/>
<ellipse transform="rotate(350, 663, 151)" stroke-opacity="1" ry="43" rx="29" fill-opacity="1" stroke-width="3" stroke="none" fill="#ffffff" id="svg_179" cy="152" cx="664"/>
<ellipse transform="rotate(9, 697.5, 190.5)" stroke-opacity="1" ry="26" rx="16" fill-opacity="1" stroke-width="3" stroke="none" fill="#ffffff" id="svg_181" cy="191" cx="698"/>
<ellipse transform="rotate(-1, 568, 188)" stroke-opacity="1" ry="25" rx="16" fill-opacity="1" stroke-width="3" stroke="none" fill="#ffffff" id="svg_182" cy="189" cx="569"/>
<ellipse transform="rotate(184, 605, 149)" stroke-opacity="1" ry="44" rx="31" fill-opacity="1" stroke-width="3" stroke="none" fill="#ffffff" id="svg_180" cy="150" cx="606"/>
<ellipse cx="614" cy="210" id="svg_186" fill="#ffffff" stroke="none" stroke-width="2" rx="60" ry="46" fill-opacity="1" stroke-opacity="1" transform="rotate(210, 613.5, 209.5) translate(557, 160) scale(1) translate(-557, -160)"/>
<ellipse cx="652" cy="210" id="svg_187" fill="#ffffff" stroke="none" stroke-width="2" rx="61" ry="46" fill-opacity="1" stroke-opacity="1" transform="rotate(329, 651, 209) translate(594, 159) scale(1) translate(-594, -159)"/>
<ellipse transform="rotate(180, 633, 225)" stroke-opacity="1" fill-opacity="1" ry="46" rx="50" stroke-width="2" stroke="url(#svg_148)" fill="#ffffff" id="svg_185" cy="225" cx="633"/>
<ellipse transform="rotate(180, 634, 219)" stroke-opacity="1" fill-opacity="1" ry="47" rx="47" stroke-width="2" stroke="url(#svg_148)" fill="#000000" id="svg_184" cy="219" cx="634"/>
<ellipse transform="rotate(180, 636, 195)" stroke-opacity="1" fill-opacity="1" ry="42" rx="62" stroke-width="2" stroke="url(#svg_148)" fill="#ffffff" id="svg_183" cy="195" cx="636"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="12" rx="26" stroke-width="5" stroke="none" fill="#aa0000" id="svg_151" cy="252" cx="634"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="7" rx="14" stroke-width="5" stroke="none" fill="url(#svg_153)" id="svg_154" cy="251" cx="641"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="7" rx="14" stroke-width="5" stroke="none" fill="url(#svg_188)" id="svg_152" cy="252" cx="627"/>
<polyline stroke-opacity="1" stroke-linejoin="round" stroke-linecap="round" stroke-width="5" stroke="url(#svg_193)" id="svg_159" points="632,254 631,254 629,254 628,254 627,254 627,253 626,253 624,253 624,253 624,253 624,252 624,252 622,252 622,252 621,252 621,252 619,252 619,252 617,252 616,252 615,252 615,252 615,252 615,253 615,253 616,253 617,253 617,253 619,253 619,253 621,253 621,253 622,253 624,253 624,254 624,254 626,254 627,254 628,254 628,253 629,253" fill-opacity="1" transform="rotate(10, 624, 254)"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="18" rx="8" stroke-width="5" stroke="#000000" fill="#000000" id="svg_120" cy="167" cx="616" transform="rotate(-5, 615, 166)"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="18" rx="7" stroke-width="5" stroke="#000000" fill="#000000" id="svg_189" cy="166" cx="652" transform="rotate(8, 651, 165)"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="18" rx="28" stroke-width="2" stroke="url(#svg_134)" fill="#ffffff" id="svg_190" cy="201" cx="635"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="12" rx="18" stroke-width="5" stroke="#000000" fill="#000000" id="svg_191" cy="203" cx="636"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="5" rx="11" stroke-width="5" stroke="none" fill="url(#svg_165)" id="svg_192" cy="197" cx="633"/>
<path stroke-opacity="1" fill-opacity="1" d="M642,347 " id="svg_218" fill="none" stroke="#000000" stroke-width="5"/>
<path stroke-opacity="1" fill-opacity="1" d="M715,385 " id="svg_223" fill="none" stroke="#000000" stroke-width="5"/>
<ellipse stroke-opacity="1" fill-opacity="1" ry="17" rx="8" stroke-width="5" stroke="#000000" fill="#000000" id="svg_233" cy="165" cx="149"/>
<ellipse transform="rotate(15, 698, 198)" stroke-opacity="1" ry="5" rx="8" fill-opacity="0" stroke-width="2" stroke="url(#svg_116)" fill="#ff0000" id="svg_234" cy="199" cx="699"/>
<ellipse transform="rotate(-20, 573, 197)" stroke-opacity="1" ry="2" rx="8" fill-opacity="0" stroke-width="2" stroke="url(#svg_116)" fill="#ff0000" id="svg_235" cy="198" cx="574"/>
<text font-weight="bold" stroke-opacity="1" fill-opacity="1" text-anchor="middle" font-family="sans-serif" font-size="64pt" stroke-width="0" stroke="#000000" fill="#000000" id="svg_4" y="394" x="185">SVG-edit</text>
<text id="svg_5" font-weight="bold" stroke-opacity="1" fill-opacity="1" text-anchor="middle" font-family="sans-serif" font-size="64pt" stroke-width="3" stroke="#404040" fill="#ff6600" y="392" x="184">SVG-edit</text>
</svg>

After

Width:  |  Height:  |  Size: 14 KiB

View File

@@ -0,0 +1 @@
http://www.bigbluebutton.org/

View File

@@ -0,0 +1,151 @@
Introduction
While working on SVG-edit, a number of SVG-related browser bugs were encountered. This page serves to highlight these bugs so they can hopefully be fixed in future versions by the browser makers.
Bugs
Firefox
SVG Files in data: cannot reference elements internally
If you click 'Save' in the browser-based editor, Firefox will show all gradients as black and all markers will be invisible. This is because Firefox doesn't support fragment URIs within a data: URI.
Version(s): 4.0-
Bug Report: https://bugzilla.mozilla.org/show_bug.cgi?id=308590
Workaround in SVG-edit: None. This is now only a problem for obsolete versions of Firefox.
Symbol elements cannot reference elements internally
Importing an image with a symbol element that includes gradients results in all the gradient-filled elements being black.
Version(s): 4.0-
Bug Report: https://bugzilla.mozilla.org/show_bug.cgi?id=353575
Workaround in SVG-edit: None yet
Group Opacity has terrible performance
Problem: When an image has many elements with the opacity attribute set to values less than 1.0, the image (and the editor) cause Firefox to become very slow.
Version(s): 3.5-
Bug Report: https://bugzilla.mozilla.org/show_bug.cgi?id=309782
Other bugs related to Bug 309782: * https://bugzilla.mozilla.org/show_bug.cgi?id=523481 * https://bugzilla.mozilla.org/show_bug.cgi?id=524089
Workaround in SVG-edit: Not really. One option is to avoid using the group_opacity control and change the stroke-opacity and fill-opacity instead.
Rotating text element with gradient
Problem: When a text element has a gradient set and is rotated, the individual glyphs are incorrectly repositioned.
Version(s): All, but only on Mac OSX 10.5 (10.6 is fine)
Bug report: https://bugzilla.mozilla.org/show_bug.cgi?id=519472
Workaround in SVG-edit: No, does not appear possible.
BBoxes for groups and symbols ignore horizontal/vertical lines
Problem: When a group or symbol element contains a horizontal or vertical line, getBBox() ignores the line and thus provides an incorrect rectangle.
Version(s): All
Bug report: None yet
Workaround in SVG-edit: Resource-heavy workaround script (for 2.6)
Opera
Does not support the W3C File API
Problem: Cannot open local files in the browser version of SVG-edit in Opera.
Workaround: Use the widget version.
Webkit
Path Segments and Points Normalized
Problem: Webkit internally normalizes path segments and point lists and does not provide the original string.
Version(s): All, Safari & Chrome
Bug reports: * https://bugs.webkit.org/show_bug.cgi?id=26487 * https://bugs.webkit.org/show_bug.cgi?id=29870
Workaround in SVG-edit: Handle all path segment types and check if commas are present in the point list.
Relative Path Segments Cannot be Added/Removed
Problem: Manipulating segments using insertItemBefore, removeItem, etc fail to actually affect path elements made of relative segments.
Version(s): All, Safari & Chrome
Bug reports: * https://bugs.webkit.org/show_bug.cgi?id=30219
Workaround in SVG-edit: Convert all paths to use absolute segments.
@transform value is unreliable (Safari only)
Problem: WebKit fails to update the value of the @transform attribute after changes are made to its transformlist.
Version(s): Safari (should be fixed in next version after 5)
Bug reports: * None yet, related bug here: https://bugs.webkit.org/show_bug.cgi?id=31119
Workaround in SVG-edit: Implement our own "shim" version of SVGTransformList
getBBox on paths with curves includes control points
Problem: Calling getBBox() on a path with curves returns a box that is too big, as the control points are incorrectly included in the size.
Version(s): All, Safari & Chrome
Bug reports: * https://bugs.webkit.org/show_bug.cgi?id=53512
Workaround in SVG-edit: Implement our own "shim" version of getBBox for paths.
USE element is not repositioned when moved to x=0 y=0 through script
Problem: Attempting to set any USE element (like when importing SVGs) to position 0,0 has no visible effect. This may occur by doing undo after moving it or by setting the values as attributes.
Version(s): All, Safari & Chrome
Bug reports: * https://bugs.webkit.org/show_bug.cgi?id=53767
Workaround in SVG-edit: Removing then re-adding the element seems to take care of this.
Failure to detect camelCase elements
Problem: WebKit is unable to detect elements like linearGradient using querySelectorAll or getElementsByTagName.
Bug reports: * https://bugs.webkit.org/show_bug.cgi?id=46800
Workaround in SVG-edit: Search through all elements, then check their tagName value
Data URL page cannot be saved (Chrome only)
Problem: When using the default save handler, the SVG image is opened in a new tab, but there is no method to save the file.
Version(s): Chrome 5+
Bug reports: * http://code.google.com/p/chromium/issues/detail?id=46735
Workaround in SVG-edit: Open the source editor instead, advising user to copy & paste from there
Does not support the W3C File API (Safari only)
Problem: Cannot open local files in browser-based version of SVG-edit
Bug Reports: * https://bugs.webkit.org/show_bug.cgi?id=32624
Workaround: Copy contents of file and paste in via SVG-edit source editor
BBoxes for groups and symbols ignore horizontal/vertical lines
Problem: When a group or symbol element contains a horizontal or vertical line, getBBox() ignores the line and thus provides an incorrect rectangle.
Version(s): All
Bug report: None yet
Workaround in SVG-edit: Resource-heavy workaround script (for 2.6)
Missing SVG support desired in SVG-edit
Internet Explorer
Feature: Native support of SVG, Version(s): IE8-, Workaround: For all versions prior to IE9, use the Google Chrome Frame plugin. IE9 supported in SVG-edit 2.6
Firefox
Feature: SMIL (animation), Version(s): All, Workaround: None
Feature: SVG Text Selection, Version(s): All, Workaround: None
Webkit
Feature: SVG Filters, Version(s): Safari 5-, Chrome 4-, Workaround: Wait, SVG Filters are now implemented in the WebKit trunk
Feature: Save as SVG in Safari, Version: Windows, Workaround: None, https://bugs.webkit.org/show_bug.cgi?id=25265
Feature: Non-Scaling-Stroke, Version(s): Safari 5- Workaround: Re-calculate stroke manually, wait until Safari is updated (fixed in WebKit trunk)

View File

@@ -0,0 +1,49 @@
Introduction
SVG-edit started out as a much tinier project contained in just two JS files: svg-editor.js (essentially the editor UI) and svgcanvas.js (everything else). Over time, as SVG-edit has gained more and more features, these files naturally grew in size. And while extensions were introduced as one mechanism to separate features from the main code base, by Oct 2010, svgcanvas.js had reached 11,600 lines of JavaScript.
My main concern with this was that one giant JS file, no matter how well-commented and organized, cannot attract new developers. It's just too daunting to try and find out how the project works when it's one giant file. In a project that relies on casual contributors finding spare time, this is a huge problem. I experienced this first hand, since I had stopped heavily contributing to the project earlier in 2010 and then tried to come back near the end of 2010 and found myself lost.
The other problem is that the only realistic way of testing any new change was to invoke the editor and try out the feature. While this is a really good way to ensure your new feature works, it doesn't catch if you've broken other existing features. Over time, codebases that only rely on manual testing are bound to make less and less progress.
History
I'll note that a call to split out JS functionality into separate files was made by Narendra back in 2009 (when he had gone away from the project and tried to come back). He had even contributed new code in the form of a separate script to deal with localization, which was great. But at the time I didn't really know how I wanted to deal with modularization in a web app. I didn't want to be making separate GET requests for every script tag, and even his attempt with locale.js bothered me just a little. Plus, development was hot and heavy on new features ;)
But now that I was in Narendra's shoes and the amount of code had gone up by an order of magnitude, I realized how important it was. With this in mind, I set out to try and break apart the code a little bit. Starting with [r1817](https://code.google.com/p/svg-edit/source/detail?r=1817), I managed to split out some bits of code into a separate JS file. My goal in the refactoring was to make incremental changes that carefully started to split apart the code but didn't introduce any new bugs. I haven't been entirely successful in this, but there haven't been any major disasters, at least.
I eventually worked things out such that code that had been refactored lived somewhere under the 'svgedit' global namespace. The end goal is for everything to live under this namespace, but for now there are pieces that don't (svgEditor and svgCanvas).
For instance, browser.js introduces the following:
svgedit.browser.isOpera() svgedit.browser.isWebkit() svgedit.browser.isGecko() svgedit.browser.supportsSelectors() svgedit.browser.supportsPathReplaceItem() etc...
Here's a bullet-point summary of the state of affairs:
Development versions of SVG-edit now have many <script> tags that load in all the JS modules.
The dependencies between these files are currently maintained manually, the JS files must be loaded in the correct order
Each new JS module has a corresponding test file under test/.
The Makefile has been updated to compile all the JS modules using the Closure Compiler. This collapses all the JS into one compiled file and reduces the number of GET requests back to a sane level for a release version of SVG-edit.
NOTE: This is an ongoing effort. It's not done, and I don't know if it will ever be done. Currently svgcanvas.js is still around 8800 lines of code and occasionally growing. My silly benchmark for this effort is to have every file browsable online in Google Code :) Don't browse to svgcanvas.js in googlecode today. My browser grinds to a halt.
Unit Tests
As I refactor, I am taking the opportunity to add unit tests for each module/function/class refactored. As of Jan 2010, we are close to 500 unit tests. They are all ran at http://svg-edit.googlecode.com/svn/trunk/test/all_tests.html
Current Tasks
1) I introduced the concept of a Drawing earlier on that would encapsulate the state of a single open SVG document. The SVG editor has a handle to the current drawing and uses that instead of accessing svg DOM elements directly. Eventually all code that deals with layers, current editing context, document history and more will be moved into draw.js but for now, much of that code still lives in svgcanvas.js.
2) I'm in the process of migrating a large chunk of svgcanvas.js called "pathActions" into its own module (path.js). This piece of code did have a lot of dependencies so moving it piece-by-piece seemed like the right way to go. Currently it's about half-way migrated, with most of the 'public API' still living in svgcanvas.js.
TODOs
Finish moving layers functionality into the Drawing class
Move current_group and context functionality into Drawing
Move setSvgString() and importSvgString() into a module
Move pathActions into its own module
Regenerate API documentation
Determine how to convince the Closure Compiler to compile svgedit.browser.isOpera() into svgedit$browser$isOpera() so that it can also be optimized (reduces compiled file size and saves in run-time cost).
...
I have some other things I intend to investigate:
Moving to something that uses jscode instead of our existing documentation style
Moving to using a bit of Closure (for goog.require/provide). My concern with this is that there is significant overlap between Closure and jQuery and I'd want to make sure we are not pulling in code that we don't need.

View File

@@ -0,0 +1,28 @@
If you want commit access, just ask marclaporte at gmail.com. We need your Gmail or Google account. Keep in mind that SVG-edit is widely used and changes can have unexpected consequences. If you are planning major changes, it's a good idea to discuss them on the mailing list (and link to a wiki page if you feel it's appropriate)
Please join these two mailing lists: * [General discussion](http://groups.google.com/group/svg-edit) * [All commits, including changes to wiki pages](http://groups.google.com/group/svg-edit-commit)
Where to commit
If it's a translation: just commit directly. You can even use the web-based interface (awesome!)
Go to https://code.google.com/p/svg-edit/source/browse/trunk/editor/locale/
Click on your language file
Click "Edit file"
Edit the translation file
File in the box to describe your changes
Click "Commit"
If you are sure: just commit
If you are pretty sure, but have some doubts: commit and ask for a review -> https://code.google.com/p/support/wiki/CodeReviews
If you want some feedback before committing: add a patch to the issue tracker (or if it's simple, can be on the mailing list)
If you want to do something really radical, make an experimental branch
A corollary to a lower threshold to commit access (than most projets) is quick rollbacks, so don't be offended if your commit is rolled back. This is part of the process of learning and collaborating.
How to give feedback on a commit
You can just comment the commit as per this example: https://code.google.com/p/svg-edit/source/detail?r=2274
If you feel it deserves more eyeballs, send a message to the mailing list.
You can also use the Code Review system: https://code.google.com/p/support/wiki/CodeReviews
How to commit
We use Subversion: https://code.google.com/p/support/wiki/SubversionFAQ

View File

@@ -0,0 +1,139 @@
The recording is at: http://tiki.bigbluebutton.org/playback/slides/playback.html?meetingId=c986d4c28a45e0f8bab246354ebfe0422683e9de-1354632865808
Actual meeting lasted about 3.5 hours! The recording lasts 5 hours because some people arrived early and some stayed after the meeting. Just use the slider to skip ahead to 1h 06min 25sec. Over 30 people participated and the interest/energy level is high. The meeting lasted way longer than planned because there were so many people (a great problem to have!) You can see image of web conference here. Thank you to BigBlueButton for the awesome web conferencing solution!
Main conclusions & notes: * Introduction of participants * It is incredible to see the diverse ways people use SVG-edit. There were over a dozen presentations. * 2.6 release * Release is planned for January 15th, 2013 * trunk is in "risk freeze" until then (don't make major changes that can affect existing implementations) * Adding new optional features is OK until December 31st 2012 (January 1-15 should be bug fixes and translations only) * Ahmad will handle 2 of the remaining blockers in December * Release managers: Chance and Jordan (It's their first time so anyone familiar with release process: please help them) * Translators: we are counting on you to complete translations for all languages :-) * Wiki edit rights * Everyone will be given access. * We want more people to use it for planning and documentation. Long thoughtful posts on the mailing list should perhaps be more in the wiki with a link in the mailing list. * Commit access policy * We open as per the proposal at CommitPolicy with an additional caution to people that SVG-edit is widely used and changes can have unexpected consequences. Wait for after 2.6 release (and thus trunk re-opening) for any bigger changes. * Convergence of energy / modularization / themeing / etc. * Another conference call will be set up in February 2013 (after the release of 2.6) to discuss this in more detail. But in general everybody agreed some architectural changes are necessary and all participants want to contribute back. (the big question is "how?") * Some of the participants expressed an interest in sponsoring development (ex.: allocate some of their development resources) * Wikipedia * The MediaWiki extension was presented. Getting SVG-edit on Wikipedia is a top priority. Further discussions are to be held to determine clear roadmap: https://bugzilla.wikimedia.org/show_bug.cgi?id=38271#c16 * Browser support * This will need more discussion to have a clear policy * Release cycle * Active devs will reconvene for exact formula on this but it is agreed that it should never be more than one year. * Consulting ecosystem * This is essential in a healthy community. All consultants, please add yourself to Consulting * Translations * All translators will have commit access and they can use web interface or SVN. 2.6 will be released January 15th. If you can commit your translations in December, that would be awesome. * Roadmap: see point above on Convergence of energy / modularization / themeing
Apologies to Moritz Wissenbach (and anyone else affected) because he couldn't present his [Image Annotation project](https://faustedition.uni-wuerzburg.de/public/text-image-links.jpg). Although there is no limit to BigBlueButton for the number of people that can connect, the phone gateway we use is limited to 4 connections. So there are likely other people that got a busy signal. This number has since been increased to 8 so we should be OK for the next meeting.
The list of people varied but at one point, here were the names: * Reimar Bauer * Moritz Wissenbach * Michel Buffa * Harry Burt * Dan Nickchen * Ahmad Syazwan * Chuck Weissman (no mic) * Emmanuel Harguindey * Boris Goldowsky * Ludovic Dubost (XWiki) * Marc Laporte * Luigi Capra * Mark MacKay * NICHOLAS KYRIAKIDES * Harman Dandiwal * Mark Nickel * ctzurcanu * Senthil Kumar * edroid * luciash d' being * Caleb * robertplummer * Mark Medinger * Jo Segaert * Flint O'Brien * Chance Roth * Alexander Widera * Jordan Mendler * John Sebok
When
The meeting is confirmed for December 4th, 2012 16h00 UTC
Please check for [the time in your time zone](http://www.timeanddate.com/worldclock/fixedtime.html?iso=20121204T1600)
Where
We will be using the Free and Open Source [BigBlueButton](http://bigbluebutton.org/) Web conferencing platform
It will be possible to join
With a regular phone with a call to a North American number
Via the BigBlueButton web interface (in Flash) (please have a headset)
With Skype (please have a headset)
The meeting room is at http://tiki.org/SVG-edit+2012-12+community+meeting and you can already try it out.
Topics
Introduction of participants
Each person takes a minute or two to introduce themselves. This also serves to make sure sound is OK for all. Please have a headset.
Where do you live?
How do you use SVG-edit? (if this takes more than 30 seconds, please add as a presentation below)
Where do you want to see the project in the future?
Demos/explanation of how SVG-edit is used/integrated
Each project presents in 2-5 minutes an overview of how they use SVG-edit. Presenters: you'll be able to [share URLs in the chatroom, or you can upload PDFs to the presentation tool](http://www.bigbluebutton.org/overview/)
[CWM Draw Tool](https://code.google.com/p/cwm-drawtool/) (Boris Goldowsky)
[Awwation](http://awwation.com/) (Aditya Bhatt)
[Method Draw](https://github.com/duopixel/Method-Draw) (Mark MacKay)
[MediaWiki integration](https://www.mediawiki.org/wiki/Extension:SVGEdit) (Brion Vibber)
[TranslateSvg](https://www.mediawiki.org/wiki/Extension:TranslateSvg) (Harry Burt)
Various improvements by Michel Buffa (Touch, multiline)
[ownCloud integration](http://sourceforge.net/projects/ocsvg/) (Florian Hülsmann)
[A schematic editor (one-line diagrams for electric utilities)](https://groups.google.com/d/msg/svg-edit/8uYm9I4KheQ/kMLggZdytuoJ) (Flint O'Brien)
[Drupal SVG](https://drupal.org/sandbox/josegaert/1511596) (Jo Segaert)
[CloudCanvas](http://www.cloud-canvas.com/) (Chance Roth)
Sapiens Mapping Project
[The Veloz Group has been using SVG Edit for a lot of our companies](http://www.thevelozgroup.com/) ([Jordan Mendler](http://www.thevelozgroup.com/about/executive-team#Jordan-Mendler), [Yarong Guo](http://www.thevelozgroup.com/internships#engineering-internships), [Shangcheng Ying](http://www.thevelozgroup.com/internships#engineering-internships))
[Tiki Screen capture](http://doc.tiki.org/Screencast), [Tiki Draw](https://doc.tiki.org/Draw) and [CartoGraf](http://profiles.tiki.org/CartoGraf) (Marc Laporte & Robert Plummer)
[XWiki SVG Macro](http://extensions.xwiki.org/xwiki/bin/view/Extension/SVG+Macro) Ludovic Dubost
[Image Annotation](https://faustedition.uni-wuerzburg.de/public/text-image-links.jpg) Moritz Wissenbach
Reimar Bauer has added a [save extension](https://bitbucket.org/ReimarBauer/xstatic-svg-edit-moin/src/tip/xstatic/pkg/svgedit_moin/data/editor/extensions/ext-server_moinsave.js?at=default) for the [MoinMoin Wiki Software project](http://moinmo.in/MoinMoin2.0) and packaged it as [XStatic package](http://pypi.python.org/pypi/XStatic-svg-edit-moin) for PyPI
2.6 Release
What is the code status in trunk?
[The current list of issues tagged needed for 2.6](https://code.google.com/p/svg-edit/issues/list?can=2&q=NeededFor%3D2.6)
Discuss blockers for a 2.6 release
If we can't release quickly, perhaps just branch so trunk is open again for development?
Wiki edit rights
How should we use the wiki?
Used more for community planning discussion?
Explicit way for people to gain edit access
Commit access policy
SVG-edit is awesome. And all the people who worked on it have done a superb contribution to the Free and Open Source ecosystem. The main contributors according to https://www.ohloh.net/p/svg-edit/contributors?query=&sort=commits are: Alexis, Jeff, Pavol and of course, thank you to Narendra for starting all this.
Now, time goes by, great people get busy with new projects and it's time for renewal within the SVG-edit community. There is a great bit of talent and energy on the mailing lists and the issue tracker. We hope to always count on Alexis, Jeff, Pavol and Narendra when there is a big problem, but we want the community to be sustainable and growing.
The commit activity has slowed in recent years: https://www.ohloh.net/p/svg-edit/commits/summary
Yet, there are patches in the issue tracker: https://code.google.com/p/svg-edit/issues/list?can=2&q=patch How can we increase the odds that 1- they become appropriate for and 2- they are committed to the main code base?
What should our commit access policy be?
Marc Laporte proposes to think about this: http://info.tiki.org/article188-Tiki-reaches-500-contributors-with-commit-access and to move progressively in this direction. It's a little scary at first but listen to the podcast on that link :-)
Also, as an example, Ben has a simple commit, how do we make it efficient? Ref: https://groups.google.com/d/topic/svg-edit/4Try3YB7pMo/discussion
See proposal at: CommitPolicy
Convergence of energy
There are many applications that are based on SVG-edit (CWM Draw Tool, Method Draw, Awwation, etc.) Super! Now, many of these enhancements are obviously suitable for upstream as the new default, and some are suitable as an option. * Let's discuss when this is a "good"/acceptable/best scenario to keep things separate vs when we feel this work should be part of SVG-edit. * Let's discuss a way to reduce the number of forks and make projects closer and have everyone work in the same code base (with branches, distros, alternate themes, or something!)
Wikipedia
We have: * https://www.mediawiki.org/wiki/Extension:SVGEdit * https://www.mediawiki.org/wiki/Extension:TranslateSvg * https://bugzilla.wikimedia.org/show_bug.cgi?id=38271 * https://code.google.com/p/svg-edit/issues/detail?id=1006
Being used for Wikipedia will be the biggest surge of usage for SVG-edit (Wikipedia being a top-10 site in the World)
What are the next steps to get there?
Browser support
More or less half the web uses rapid release browsers (Chrome & Firefox). What happens if we want to improve SVG-edit but need something that is not yet available in some of the browsers? (or very difficult to do)
What should our policy be?
Release cycle
We don't need to decide anything today but let's start the discussion. And we should eventually come up with some realistic and commonly understood guidelines. Some examples: * A release every 6 months like Ubuntu (October and April) * Release at any time (when energy and features are there), but never more than 12 month between releases.
Consulting ecosystem
There are people (ex.: on the mailing list) that are willing to sponsor SVG-edit work. How do we leverage this? * Consulting (add yourself!) * What else?
Translations
[Translation overhaul discussion](https://groups.google.com/d/topic/svg-edit/suxArdPZcqI/discussion)
Or we use Google Code web-based commits
Roadmap
Let's discuss as a project where we want to be in 3-5 years. What are the features / use cases we would cover if we had tons of contributors the project vs what is outside the scope of the project?
SVG-edit is a https://en.wikipedia.org/wiki/Vector_graphics_editor. Will it become a https://en.wikipedia.org/wiki/Raster_graphics_editor as well? Ex.: [Pixastic Image Processing Library](https://code.google.com/p/svg-edit/issues/detail?id=893)
[SVG-edit can draw on images. Will it one day draw on videos?](https://code.google.com/p/svg-edit/issues/detail?id=985)
[How about realtime collaborative editing?](https://code.google.com/p/svg-edit/issues/detail?id=947)
There are some non-linear presentation tools like use SVG-edit as a base. Should SVG-edit become a such editor? [Awwation: "The editor is built upon the core of SVG-edit, and uses the Sozi library for zooming animations"](https://github.com/adityab/Awwation#readme)
How good will SVG-edit become for [Concept Maps, Mind Maps, Topic Maps, Flow Charts and Org Charts](http://www.mind-mapping.org/web-based-mindmappers/graphical.html)?
For example, I want something like http://drichard.org/mindmaps/ Should I work to add this to SVG-edit?
Who
If you are interested to participate, please indicate your name, city or time zone and ideal dates/times/periods. We'll likely use an online service to pick the date
Marc Laporte, Montréal (any time)
Pavol Rusnak, Prague (any time)
Chance Roth, San Diego (any time)
Mark MacKay (any time)
Ahmad Syazwan, Kuala Lumpur (?)
Bdkzero, Italy
Brion Vibber, San Francisco
Jordan Mendler (http://www.thevelozgroup.com), Los Angeles
Moritz Wissenbach, Germany
You?
Who else should we make sure is present?
You can confirm here as well: https://www.facebook.com/events/469279513113470/
Your thoughts
What do you think? Let us know what is on your mind :-)

View File

@@ -0,0 +1,99 @@
You can listen to the recording of the previous one here (and read up on meeting notes) The next call is here
The recording is here: http://tiki.bigbluebutton.org/playback/slides/playback.html?meetingId=c986d4c28a45e0f8bab246354ebfe0422683e9de-1360684740601
Summary of discussions
Jacques presented SVG-edit integrated in Instiki
We discussed a VersionLifecycle, to be improved/proposed.
Discussion about testing and unit testing -> Testing
Convergence of energy / theming -> Theming
Look at TinyMCE on how they do it in terms of theming and extending functionality
Report areas that need overrides as bugs / todos / issues on the new Theming page
Wikipedia: Brion presented the test suite and general objectives
Example of changes to SVG implementation in the browser [suspend/unsuspend Redraw Implementation](http://dschulze.com/blog/articles/4/efficient-redrawing-on-svg-or-why-suspendredraw-is-a-lie)
Presented Unhosted.org
We reviewed stats of https://www.ohloh.net/p/svg-edit
We will have Community Conference calls every 2-3 months
When
The meeting will be February 12th, 2013 (at 16h00 UTC like the previous one)
Please check for [the time in your time zone](http://www.timeanddate.com/worldclock/fixedtime.html?iso=20130212T1600)
Where
We will be using the Free and Open Source [BigBlueButton](http://bigbluebutton.org/) Web conferencing platform
It will be possible to join
With a regular phone with a call to a toll-free North American number
Via the BigBlueButton web interface (in Flash) (please have a headset)
With Skype (please have a headset) (It is a free call since you'll be calling a toll-free number)
The meeting room is at http://tiki.org/SVG-edit+2013-02+community+meeting
Topics
Introduction of participants
Each person takes a minute or two to introduce themselves. This also serves to make sure sound is OK for all. Please have a headset.
Where do you live?
How do you use SVG-edit? (if this takes more than 30 seconds, please add as a presentation below)
What is on your mind for this meeting (which topic of the agenda interests you the most)?
Demos/explanation of how SVG-edit is used/integrated
Each project presents in 2-5 minutes an overview of how they use SVG-edit. Presenters: you'll be able to [share URLs in the chatroom, or you can upload PDFs to the presentation tool](http://www.bigbluebutton.org/overview/)
This is for projects that didn't present in the previous call or that have something new to share.
Wikipedia
Being used for Wikipedia will be the biggest surge of usage for SVG-edit (Wikipedia being a top-10 site in the World)
[A round-trip test suite is now in place.](https://groups.google.com/forum/#!topic/svg-edit/SfTVM4OPXiA/discussion)
Related links: * https://code.google.com/p/svg-edit/wiki/Wikipedia * https://www.mediawiki.org/wiki/Extension:SVGEdit * https://www.mediawiki.org/wiki/Extension:TranslateSvg * https://bugzilla.wikimedia.org/show_bug.cgi?id=38271 * https://code.google.com/p/svg-edit/issues/detail?id=1006
What are the next steps to get there? Who can help?
Release cycle
Let's start the discussion. And we should eventually come up with some realistic and commonly understood guidelines. Some examples: * A release every 6 months like Ubuntu (October and April) * Release at any time (when energy and features are there), but never more than 12 month between releases.
2.7 Release
What is the code status in trunk?
[The current list of issues tagged needed for 2.7](https://code.google.com/p/svg-edit/issues/list?can=2&q=NeededFor%3D2.7)
Let's discuss "real" blockers for a 2.7 release, because the list above is quite long!
Ease of use and skinning platform
Convergence of energy / Roadmap / Revamp
Please present your ideas and proposals. Ideally, in writing before the meeting so people can read and be ready with questions.
[Gauging reception for a full redesign (Mark MacKay)](https://groups.google.com/d/topic/svg-edit/MvAHo1-4xpU/discussion)
[Proposal: svg-edit and svg-view (Christian Tzurcanu)](https://groups.google.com/d/topic/svg-edit/O1XLHrLZLYg/discussion)
[Modular design and customizations (Aditya Bhatt)](https://groups.google.com/d/topic/svg-edit/aua4-cy8hvI/discussion)
Add your proposal! :-)
Unhosted
https://unhosted.org/apps/
http://2013.unhosted.org/
Who
Optional: You can indicate your name, city or time zone.
Marc Laporte, Montréal
Ílson Bolzan, Porto Alegre
Who else should we make sure is present?
You can confirm here as well: https://www.facebook.com/events/322796481155915/
Your thoughts
What do you think? Let us know what is on your mind :-)
Promotion of this conference call
https://www.facebook.com/events/322796481155915/
http://www.linkedin.com/groups/SVGedit-2nd-Community-Conference-Call-4712151.S.206831551
https://twitter.com/SVGedit/status/293632047895937024
https://plus.google.com/107010604858430492390/posts/j1NMXR8ufGb
https://groups.google.com/d/msg/svg-edit/EFpAFKJV9kA/82ZWvmORicIJ
https://code.google.com/p/svg-edit/ (on front page)
https://bugzilla.wikimedia.org/show_bug.cgi?id=38271#c19

View File

@@ -0,0 +1,19 @@
The recording is [here](http://tiki.bigbluebutton.org/playback/slides/playback.html?meetingId=c986d4c28a45e0f8bab246354ebfe0422683e9de-1365523345940)
Previous calls: CommunityConferenceCall CommunityConferenceCall2
When
The meeting will be April 9th, 2013 (at 16h00 UTC like the previous one)
Please check for [the time in your time zone](http://www.timeanddate.com/worldclock/fixedtime.html?iso=20130409T1600)
Topics
Follow-up on Wikipedia progress and the dashboard
Related links
https://plus.google.com/107010604858430492390/posts/CMUWKL72cw3
https://twitter.com/SVGedit/status/307888404673216512
http://www.linkedin.com/groups/SVGedit-3rd-Community-Conference-Call-4712151.S.219028241
http://www.facebook.com/events/277075235756953/
https://identi.ca/notice/99881582

View File

@@ -0,0 +1,31 @@
The recording is here: http://tiki.bigbluebutton.org/playback/slides/playback.html?meetingId=c986d4c28a45e0f8bab246354ebfe0422683e9de-1381420089478
Previous calls: CommunityConferenceCall CommunityConferenceCall2 CommunityConferenceCall3
Next call: CommunityConferenceCall5
When
The meeting will be October 10th, 2013 (at 16h00 UTC like the previous one) Please check for the [time in your time zone](http://www.timeanddate.com/worldclock/fixedtime.html?iso=20131010T1600)
Where
Online with BigBlueButton here (no registration required)
Topics
demo of WebAppFind (Brett Zamir)
Follow-up on Wikipedia progress (Brion Vibber)
RoundtripTests dashboard (Mike Baynton)
Security fixes
2.7 release
Github discussion (Daniel Shapiro)
Who
Everyone is invited. Add your name below to confirm your participation. * Marc Laporte * Mike Baynton * Brion Vibber * Daniel Shapiro
Related links
Add links here when it's official
https://plus.google.com/107010604858430492390/posts/KkYbnyfLe5T
https://twitter.com/SVGedit/status/385489947689369600
http://www.linkedin.com/groups/SVGedit-4th-Community-Conference-Call-4712151.S.278209989
https://www.facebook.com/events/161235787405818/
https://identi.ca/

View File

@@ -0,0 +1,29 @@
Previous calls: CommunityConferenceCall CommunityConferenceCall2 CommunityConferenceCall3 CommunityConferenceCall4
The recording is here: http://tiki.bigbluebutton.org/playback/slides/playback.html?meetingId=c986d4c28a45e0f8bab246354ebfe0422683e9de-1383839952270
When
The meeting will be November 7th, 2013 (at 16h00 UTC like the previous one but your daylight saving time may have changed) Please check for [the time in your time zone](http://www.timeanddate.com/worldclock/fixedtime.html?iso=20131107T1600)
Where
Online with BigBlueButton [here](http://tiki.org/SVG-edit+2013-11+community+meeting) (no registration required)
Topics
demo of WebAppFind (Brett Zamir)
Follow-up on Wikipedia progress (Brion Vibber)
RoundtripTests dashboard (Mike Baynton)
Security fixes
2.7 release
Github discussion (Daniel Shapiro)
Who
Everyone is invited. Add your name below to confirm your participation. * Marc Laporte
Related links
Add links here when it's official
https://plus.google.com/
https://twitter.com/
http://www.linkedin.com/
https://www.facebook.com/
https://identi.ca/

View File

@@ -0,0 +1,19 @@
As per the [MIT license](https://en.wikipedia.org/wiki/MIT_License), you do not have to pay anything to anyone to use or integrate SVG-edit. If you code, we hope that you will choose to re-contribute your fixes and enhancements. Additionally, you may choose to pay for support, training, bug fixes and enhancements.
While there is no official endorsement from the point of view of SVG-edit, below is a list of self-identified consultants, who offer services. We ask that all consultants listed here be active within the community and upstream fixes and enhancements, when it's possible/relevant. Some enhancements are just too specific and it may not be acceptable for the official project code base.
Robert Plummer
Website: http://visop-dev.com
Email: rplummer@visop-dev.com
LinkedIn: http://www.linkedin.com/pub/robert-plummer/18/89/a36
Github: https://github.com/robertleeplummerjr
Expert developer in web technologies (php, mysql, javascript, jquery, .net, t-sql). Help to create the cwm draw tool (http://code.google.com/p/cwm-drawtool/) and implemented svg-editor into Tiki wiki cms groupware (http://tiki.org).
Ben McDonald
Email: mcdonald.ben@gmail.com
Website: http://yaks.co.nz/web-apps/
Three years experience working on SVG graphic editors and SVG-edit code. I can help you make high quality SVG-edit based apps. Creator of [Vector Paint](http://vectorpaint.yaks.co.nz/) which makes use of svg-edit code.
(other consultants: add yourself to this page)

View File

@@ -0,0 +1,3 @@
In general, to contact the SVG-edit community, please see HowToParticipate
For media inquiries or if you need to ask something in private, you can contact marclaporte --at-- gmail --dot-- com

View File

@@ -0,0 +1,60 @@
If you use SVG-edit, add to your Ohloh.net stacks: <wiki:gadget url="http://www.ohloh.net/p/325148/widgets/project_users.xml" height="100" border="0"/>
The Development Phases of a Release
NOTE: The duration of each of the phases below has not been defined at this time.
Pre-Alpha
During this phase, the trunk is completely open to contributions: new features, bug fixes, radical architectural changes. In this phase, the scope of the release will be locked down (features will be decided upon, new features will be voted and accepted for release targeting).
The trunk spends most of its lifetime in Pre-Alpha mode.
Alpha
During this phase, the majority of the features have been implemented on the trunk. Some minor features may still not be implemented yet. Portions of major features may be in a rough state during the Alpha phase.
No new features will be considered for the release, the scope is locked down.
Beta
During this phase, all feature work has been complete. The release has now gone into bug fix mode. Only fixes deemed critical to the release will be considered for check-in to the trunk.
Release
During this phase, the trunk will be branched to svn/branches/X.X (where X.X is the release number) and the following steps need to be performed:
Update the HTML to reference the aggregated minified JS file, svgedit.compiled.js (switch HTML comments)
Update the HTML to point to the Google CDN version of jQuery (switch HTML comments)
Change the version stored at the top of the Makefile
Run the Makefile, which does the following automatically
JS files will be minified on the branch
all files will be packaged up as a downloadable zip file
the Firefox extension will be packaged into an xpi file
the Opera widget will be packaged into a wgt file
[Opera Widgets are being phased out](http://my.opera.com/addons/blog/2012/04/24/sunsetting-unite-and-widgets)
Commit the now built minified JS file, svgedit.compiled.js
Project owner: ~~upload the zip, xpi and wgt files to the Google Code download section~~ (Commit the packaged files and/or add to Google Drive since new project downloads [now disabled](http://google-opensource.blogspot.hk/2013/05/a-change-to-google-code-download-service.html)?)
update the stable branch to refer to the new release branch via: $ svn delete -m "Removing old stable branch" https://svg-edit.googlecode.com/svn/branches/stable $ svn copy https://svg-edit.googlecode.com/svn/branches/2.3 https://svg-edit.googlecode.com/svn/branches/stable -m "Pointing stable branch to 2.3 branch"
A project owner should move the old version information from [Project home](https://code.google.com/p/svg-edit/) page to the VersionHistory page and move any information on the new release from the Roadmap to the [Project home](https://code.google.com/p/svg-edit/).
Update the Roadmap to refer to the next planned release (and keep updated with any new features added to trunk).
At this point, the trunk is now opened up again and enters Pre-Alpha phase for the next release.
If bugs are encountered with a released version, those fixes must be merged to both the release branch and the trunk (as well as to the "stable" branch if the bug is for the stable version).
Creating a Branch
For big experimental features, you may want to branch the repository to separate your work from the trunk. A branch in SVN is just a copy:
svn copy https://svg-edit.googlecode.com/svn/trunk/ https://svg-edit.googlecode.com/svn/branches/rotate-selector -m "Making a branch for..."
This will create the branch on the server. Then you can check it out as a working copy:
svn co https://svg-edit.googlecode.com/svn/branches/rotate-selector/ svg-edit-rotater
Then hack away in the 'svg-edit-rotater' folder and freely check in your changes (these will only be updating the rotate-selector branch in the repository. You can share your changes, have them reviewed, etc.
Once your happy with the branch, you can merge it in.
Rolling Back a Bad Commit
Let's say you accidentally committed your change when you didn't mean to as [revision 2075](https://code.google.com/p/svg-edit/source/detail?r=2075).
svn merge -r2075:2074 . svn ci -m "Rollback bad revision 2075"
TODO: instructions on automatically merging back to trunk
TODO: instructions for keeping up to date in the branch (i.e. merging from trunk to branch)

View File

@@ -0,0 +1,13 @@
SVG-edit is a community-managed project with the general principles of Free and Open Source software and Open Organizations.
The current admins are: * Ahmad Syazwan * Brion Vibber * Jeff Schiller * Marc Laporte * Pavol Rusnak
Admins rarely need to vote because decisions are usually consensual and it's a [doOcracy](http://www.communitywiki.org/en/DoOcracy). When a vote is required, these are the people (ex.: for legal/political reasons such as a formal motion needed for external needs). Admins are voted in by other admins.
Ongoing responsibilities of the Admins
Add/remove commit access for contributors
They also act as a safe guard, as a last resort, to deal with [Difficult People](http://producingoss.com/en/difficult-people.html) or [Poisonous People](http://www.youtube.com/watch?v=ZSFDm3UYkeE).
References
[Producing Open Source Software - How to Run a Successful Free Software Project - by Karl Fogel](http://producingoss.com/)

View File

@@ -0,0 +1,3 @@
Lukas Reschke
Special thanks to Lukas Reschke - [statuscode.ch](http://statuscode.ch/) for reporting http://code.google.com/p/svg-edit/source/detail?r=2080

View File

@@ -0,0 +1,67 @@
The items below need to be migrated or deleted.
## Features
SVG-edit is an online vector graphics editor that uses only JavaScript, HTML5, CSS and SVG (i.e. no server-side functionality). SVG-edit has the following features:
- Free-hand drawing
- Lines, Polylines
- Rects/Squares
- Ellipses/Circles
- Polygons/Curved Paths
- Stylable Text
- Raster Images
- Select/move/resize/rotate
- Undo/Redo
- Color/Gradient picker
- Group/ungroup
- Align
- Zoom
- Layers
- Convert Shapes to Path
- Wireframe Mode
- Save drawing to SVG
- Linear Gradient Picking
- View and Edit SVG Source
- UI Localization
- Resizable Canvas
- Change Background
- Draggable Dialogs
- Resizable UI (SVG icons)
- Open Local Files
- Import SVG into Drawing
- Connector lines and Arrows
- Plugin Architecture
- Smoother freehand paths
- Editing outside the canvas
- Increased support for SVG elements
- Add/edit Sub-paths
- Multiple path segment selection
- Support for foreign markup (MathML)
- Radial Gradients
- Configurable Options
- Eye-dropper tool
- Stroke linejoin and linecap
- Export to PNG
SVG-edit works directly in the browser. There have been several side projects: A Firefox Add-on, an Opera Widget, a Google Wave Gadget (no longer maintained).
In browsers that support the W3C File API, this editor allows you to open local files. The set of browsers in which this supported is: Firefox 3.6+, Chrome 6+, Safari 5+, and Opera 11.10+ (builds from 2011-04-05 onwards).
Supported browsers
## Support the project
If you use SVG-edit, add to your Ohloh.net stacks:
## Further Reading
* Projects that use SVG-edit
* Reviews
* How to participate
* Frequently Asked Questions
* Tips and Tricks
* Roadmap
* Governance
* Code Refactoring
* Version History (release notes)
* This editor depends on many other open-source projects. See Acknowledgements for details.

View File

@@ -0,0 +1,73 @@
Mailing lists
[General discussion](http://groups.google.com/group/svg-edit)
[All commits, including changes to wiki pages](http://groups.google.com/group/svg-edit-commit)
IRC chatroom
svg-edit on Freenode.net
Or use the web-basd version: http://webchat.freenode.net/?channels=svg-edit
The logs are at: http://irc.tiki.org/irclogger_log/svg-edit
Pavol Rusnak is the channel operator.
Conference calls
CommunityConferenceCall
CommunityConferenceCall2
CommunityConferenceCall3
CommunityConferenceCall4
CommunityConferenceCall5
Wiki access
To get wiki edit access, ask for it on the mailing list: https://groups.google.com/forum/#!forum/svg-edit or directly to marclaporte --at-- gmail --dot-- com and indicate what is your Google account or gmail address (Note: check if there is a way to skip this step)
Feature requests
Please add to https://code.google.com/p/svg-edit/issues/list once you have checked that it's not already there
Bug Reports
Please add to https://code.google.com/p/svg-edit/issues/list once you have checked that it's not already there
Security vulnerability reports
Please email [project owners listed here](https://code.google.com/p/svg-edit/people/list) with a report (and please do give us a bit of time to fix the issue and release a new version) and we'll add you to the Hall of Fame
Translations
Please see: Translation Guidelines
Developers and Commit access
If you have done some HTML/JS/CSS programming before, look at this list of [good first bugs](http://code.google.com/p/svg-edit/issues/list?can=2&q=label%3AGood-First-Bug) and ask for your commit access.
We have started to document the developer API here: http://svg-edit.googlecode.com/svn/trunk/docs/index.html
We have started to gather some unit tests for SVG-edit here: http://svg-edit.googlecode.com/svn/trunk/test/all_tests.html
Please see Commit policy, Development Process and Extension Docs
Interoperability or re-use
If you integrate / enhance / use SVG-edit in any way, please add to ProjectsThatUseSvgEdit
Networks
http://www.linkedin.com/groups/SVGedit-4712151
http://www.facebook.com/groups/447646278605459/
http://plus.google.com/107010604858430492390/
http://twitter.com/SVGedit
http://code.google.com/p/svg-edit/ (Please star SVG-edit!)
http://jster.net/library/svg-edit
http://alternativeto.net/software/svg-edit/ (Add a "like" there!)
If you use SVG-edit, add to your Ohloh.net stacks: <wiki:gadget url="http://www.ohloh.net/p/325148/widgets/project_users.xml" height="100" border="0"/>
Also see: http://www.ohloh.net/p/svg-edit
Consulting
You can become or hire a consultant -> Consulting
Events
Please see: Events
Anything and anything else
Please ask for it on the [General discussion mailing list](http://groups.google.com/group/svg-edit)
If you need to ask something in private
You can contact marclaporte --at-- gmail --dot-- com

View File

@@ -0,0 +1,46 @@
The article is here: http://www.infoworld.com/slideshow/131924/8-svg-tools-jazzing-the-web-232506#slide9
Below is information provided.
What is the purpose of SVG-edit?
SVG-edit is an online vector graphics editor that uses only JavaScript, HTML5, CSS and SVG (i.e. no server-side functionality). It is designed to be embedded in a web application (Wiki, CMS, Groupware, etc.)
What are its main functions?
Supports all modern browsers
Integrated with many applications
Stores drawing data in SVG
Free-hand drawing, Lines, Polylines, Rectanges, etc.
Layers
And many more: https://code.google.com/p/svg-edit/#Features
What does SVG-edit do that other SVG tools do not?
Most SVG tools are desktop applications, which makes it more complicated to collaborate.
I am pretty sure it's the Free and Open Source (FOSS) web-based SVG editor with the most features. If there are other projects out there with more / different features, please do get in touch with us so we may collaborate. We have developed an SVG test suite that would surely be useful to you too!
It's also likely the Free and Open Source (FOSS) web-based SVG editor with the most contributors.
Who developed it?
According to Ohloh.net "SVG-edit has had 1,749 commits made by 36 contributors representing 50,115 lines of code" https://www.ohloh.net/p/svg-edit
Is SVG-edit an open source or commercial product? If it is commercial, Can you provide a price range per-seat?
SVG-edit is Free and Open Source software, and community-managed. The license is MIT. So you can embed in your commercial or FOSS project.
How important is SVG, from your perspective?
It is very important to have standards for all data formats, as much as possible. If the tool you use to generate SVG stops being developed, you maintain your assets and can move to a more modern tool. It also protects you against vendor lock-in.
Can you provide some screen shots or URLs with visuals of SVG-edit?
Here is demo of the stable version: http://svg-edit.googlecode.com/svn/branches/2.6/editor/svg-editor.html
Here is a demo of the upcoming version: http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html
Any other comments about SVG-edit?
SVG-edit is a community-managed project with a open contribution policy. Join us in making it as good as it can possibly be! We have community conference calls and want to have as many contributors as possible. See: https://code.google.com/p/svg-edit/wiki/HowToParticipate
We also have a project to get SVG-edit used on Wikipedia for over half million SVG images there.
There have been 113 000 downloads on Google Code since 2009: https://code.google.com/p/svg-edit/downloads/list Also, SVG-edit is embedded in other projects, and we have no way of tracking how many downloads there.
Who is your employer and what is your title there?
I (Marc Laporte) am a volunteer project administrator for SVG-edit, along with others. We do have some consultants which are available to integrate SVG-edit in your application or for adding additional functionality (and let's work together so those features are added to SVG-edit!)

View File

@@ -0,0 +1,26 @@
NOTE: This page is obsolete now - the name is fixed at SVG-edit now.
Possible Names
Put all name ideas here:
Savage Editor
Carve: from an [earlier project](http://codedread.com/carve/) by codedread
SViGgy (the friendly SVG editor)
(alternative spellings are possible, such as SViiGy, SViiGgy, SViiGee, etc.)
Wizzy the Vector Wizzard (or Vizzy)
VectAble VectorAble
AniVector NodeSVG
Resizable Graphics
AllSize Move & Graphic
Vectigo
ScalarDraw
Possible Re-versioning
It was also brought up that the current version numbering (2.3) does not really match with what people consider version 1.0 software (there are several things missing from what one would expect of a basic vector graphics editor). If we rename the project it is an opportunity to also rectify this.
What version number would you assign to SVG-edit 2.3 ? Put your thoughts below:
codedread: I would give SVG-edit 2.3 a version number of 0.8, with the next release (currently 2.4) as 0.9. I think 1.0 would be for when the editor can support a good percentage of SVG found throughout the web and supports all basic manipulation.

View File

@@ -0,0 +1,70 @@
Integrate as-is means that it uses some or all of the functionality of SVG-edit but it doesn't extend them. Think "SVG-edit as a finished product"
Heavy modification means SVG-edit was used as a base, but application has important changes. Think "SVG-edit as a platform/framework/starting point"
FOSS Web apps
Free and Open Source Web applications that you can download and install on your own server
Integrate as-is
[Tiki Wiki CMS Groupware](http://doc.tiki.org/Draw) (aka Tiki Draw)
[Experimental MediaWiki extension](http://www.mediawiki.org/wiki/Extension:SVGEdit)
[Dokuwiki](http://www.dokuwiki.org/plugin:svgedit) (plugin)
[MoinMoin Extension](http://moinmo.in/ReimarBauer/SvgEditor) and a [save extension](https://bitbucket.org/ReimarBauer/xstatic-svg-edit-moin/src/tip/xstatic/pkg/svgedit_moin/data/editor/extensions/ext-server_moinsave.js?at=default) for the [MoinMoin Wiki Software project](http://moinmo.in/MoinMoin2.0) and packaged as [XStatic package](http://pypi.python.org/pypi/XStatic-svg-edit-moin) for PyPI
[Chamilo LMS](http://www.chamilo.org/)
[Instiki](http://golem.ph.utexas.edu/~distler/blog/archives/002168.html)
[Integrating SVG-edit with TiddlyWiki](http://www.autohotkey.com/forum/topic52732.html)
[XWiki](http://extensions.xwiki.org/xwiki/bin/view/Extension/SVG+Macro) (via macro)
[Project Eduvid](http://eduvid.techfandu.org/)
[Yanel CMS](http://trac.yanel-contribution.3k3.org/wiki/svg-edit) (as a 3rd-party resource)
[WISE 4.0 Learning environment](http://wise4.telscenter.org/webapp/index.html) (drawing component)
ownCloud
[Drupal](https://drupal.org/sandbox/josegaert/1511596)
[WebAppFind](https://github.com/brettz9/webappfind) - Allows desktop invocation of web apps (currently Windows only; UPDATE: Newest incarnation is currently Mac only); contains a demo SVG type handler using SVG-edit
Extension
[ext-sozi](http://asyazwan.github.com/ext-sozi/) SVG-edit extension to use Sozi in your SVGs. Create Sozi SVGs in your browser, 100% client-side. See also illustrated guide
[ext-mathjax](https://github.com/josegaert/ext-mathjax) SVG-edit extension to use the MathJax javaScript library to transform LaTeX math into nicely typeset SVG figures.
Heavy modification
[Awwation](http://adityab.github.com/Awwation/)
[CWM Draw Tool](https://code.google.com/p/cwm-drawtool/)
[Method Draw](https://github.com/duopixel/Method-Draw)
[LIVEyearbook Inc.](https://www.liveyearbook.com/) NOTE: svg-edit is not accessible to public
Online services
Directly available online, via a web browser. No need or way to download or install anything.
Use as-is
[Framavectoriel](http://framavectoriel.org/) (in French)
[Project Sesame](http://projectsesame.appspot.com/) (2.4)
http://www.ezadspro.com/
Heavy modification
[ImageBot](http://www.flamingtext.com/imagebot/)
[Clker.com](http://www.clker.com/) (clip art site)
[CloudCanvas](http://editor.cloud-canvas.com/)
[InstantTee](http://instanttee.co.nr/)
[Vector Paint](http://www.vector-paint.com/)
[Chromics](http://dev.chromics.com/master/editor/svg-editor.html)
Installable application
Integrating SVG-edit in a desktop application, which you download and use on your computer.
Integrate as-is
[Online Paint](https://chrome.google.com/webstore/detail/hnbpdiengicdefcjecjbnjnoifekhgdo) (Chrome Web App)
Heavy modification
[BlueGriffon Web Editor](http://bluegriffon.org/)
Others
[A text/image tool](https://faustedition.uni-wuerzburg.de/public/text-image-links.jpg)
[SVG-edit on tablets and devices](http://code.google.com/p/svg-edit/issues/detail?id=252)
And many [forks on Github](https://github.com/search?q=%22svg-edit%22&repo=&p=1&type=Repositories&l=)

View File

@@ -0,0 +1,23 @@
See also Events
SVG
Great videos: http://www.adrianparr.com/?p=389
http://www.w3.org/Graphics/SVG/
http://en.wikipedia.org/wiki/SVG_Working_Group
JavaScript
http://www.adrianparr.com/?p=457
http://www.adrianparr.com/?p=463
https://www.youtube.com/user/dotconferences
Other
http://srguiwiz.github.com/adj-js/user-docs/
http://leosbog.nrvr.com/2013/02/20/writing-svg-to-disk/
http://www.linkedin.com/groups/Using-SVG-realtime-displays-factory-2549009.S.216775723
https://code.google.com/p/nanoblok/
jHotDraw
http://www.randelshofer.ch/oop/jhotdraw/Documentation/index.html
http://jhotdraw.org/
http://svgjs.com/

View File

@@ -0,0 +1,14 @@
[Short Introduction to SVG-edit](http://ehmdunque.altervista.org/i-informatica/manuali/Short_intro_SVG-edit.html) by Luigi D. CAPRA
[Ohloh page](http://www.ohloh.net/p/svg-edit)
[Announcement](https://rusnak.io/svg-edit-a-web-based-svg-editor/) on Pavol's blog
[How to embed in your web page](http://blog.codedread.com/archives/2009/06/19/embed-an-svg-editor-on-your-web-page/) from Jeff's blog
[Firefox Add-On](https://addons.mozilla.org/en-US/firefox/addon/14186/) (dead link)
[gjolesuns's review of Arbelos](http://giizii.com/?p=449)
[Michael MacNaughton's review of Arbelos](http://www.texaswebdevelopers.com/blog/template_permalink.asp?id=131&utm_source=twitterfeed&utm_medium=twitter)
[Drawing on your Nokia N900 with SVG-Edit](http://www.jappit.com/blog/2010/02/05/drawing-on-nokia-n900-with-svg-edit/)
[SitePoint.com review of Arbelos](http://www.sitepoint.com/svg-edit-online-vector-graphics-editor/)
[Standalone Widget version of Arbelos by Opera](http://my.opera.com/ODIN/blog/2010/02/18/svg-edit-standalone-widget)
[Another review of SVG-edit 2.4](http://journal.mycom.co.jp/articles/2010/02/24/svgedit/index.html) (Japanese)
[PC-World article mentioning the SVG-edit Firefox add-on](http://www.pcworld.com/article/190614/svgedit_24.html) (dead link)
[Download Squad review](http://www.downloadsquad.com/2010/11/15/svg-edit-is-a-surprisingly-powerful-in-browser-vector-image-edit/)

View File

@@ -0,0 +1,55 @@
Introduction
This document covers future versions of SVG-edit. For the current release and previous versions, see the VersionHistory.
Although there is no set date to do so, one important project is to get SVG-edit used on Wikipedia.
Starting with 2.4, development versions of SVG-edit are given an alphabetic codename that corresponds to the name of a shape. See potential lists here: * http://en.wikipedia.org/wiki/List_of_curves * http://en.wikipedia.org/wiki/List_of_regular_polytopes
You can follow all [code commits here](https://code.google.com/p/svg-edit/source/list) to see any features that have been developed since the latest stable release.
Version 2.8 (Devil's curve in trunk; not yet released)
Proposed Features
[next version](http://code.google.com/p/svg-edit/issues/list?can=2&q=label%3ANeededFor-nextversion) ([Bugs only](https://code.google.com/p/svg-edit/issues/list?can=2&q=label:NeededFor-nextversion%20type=Defect&colspec=ID%20Type%20Status%20Priority%20NeededFor%20Browser%20Owner%20Summary))
[future version](https://code.google.com/p/svg-edit/issues/list?can=2&q=NeededFor%3AFuture&colspec=ID+Type+Status+Priority+NeededFor+Browser+Owner+Summary&cells=tiles)
Implemented Features (subject to further alteration before release)
[already fixed/implemented](https://code.google.com/p/svg-edit/issues/list?can=1&q=NeededFor%3Dnextversion+status%3AFixed%2CDone&colspec=ID+Type+Status+Priority+NeededFor+Browser+Owner+Summary&cells=tiles)
Enhancement (Experimental): Client-side PDF export ([issue #1156](https://code.google.com/p/svg-edit/issues/detail?id=#1156)) (to data: URI) and server-side PDF export (where not supported in browser and using ext-server_opensave.js); uses jsPDF library
Enhancement: For image exports, provided "datauri" property to "exported" event.
Enhancement: Allow config "exportWindowType" of value "new" or "same" to indicate whether to reuse the same export window upon subsequent exports
Enhancement: Added openclipart support to imagelib extension
Enhancement: allow showGrid to be set before load
Enhancement: Support loading of (properly URL encoded) non-base64 "data:image/svg+xml;utf8,"-style data URIs
Enhancement: More clear naming of labels: "Open Image"->"Open SVG" and "Import SVG"->"Import Image" ([issue #1206](https://code.google.com/p/svg-edit/issues/detail?id=#1206))
Enhancement: Included reference to (repository-ignored) custom.css file which once created by the user, as with config.js, allows customization without modifying the repo
Demo enhancement: Support and demonstrate export in embedded editor
Upgrade: canvg version
Fix: Avoid error in ungrouping function when no elements selected (was impacting MathJax "Ok" button).
Fix: [issue #1205](https://code.google.com/p/svg-edit/issues/detail?id=1205) with Snap to Grid preventing editing
Fix: bug in exportImage if svgEditor.setCustomHandlers calls made
Fix: Ensure "loading..." message closes upon completion or error
Fix: Ensure all dependencies are first available before canvg (and jsPDF) usage
Fix: Allow for empty images
Fix: Minor improvement in display when icon size is set to small
Fix: Based64-encoding issues with Unicode text (e.g., in data URIs or icons)
Fix: 2.7 regression in filesave.php for SVG saving (used by ext-server_opensave.js when client doesn't support the download attribute)
Potentially breaking API changes (subject to further alteration before release):
Remove 2.7-deprecated "pngsave" (in favor of "exportImage")
Data URIs must be properly URL encoded (use encodeURIComponent() on the "data:..." prefix and double encodeURIComponent() the remaining content)
Remove "paramurl" parameter (use "url" or "source" with a data: URI instead)
svgCanvas.rasterExport now takes an optional window name as the third argument, with the supplied name also being provided as a "exportWindowName" property on the object passed to the exportImage method optionally supplied to svgEditor.setCustomHandlers.
Change 2.7 allowance of "PDF" as a type in the canvas "rasterExport" method and the "exported" event to instead be moved to the canvas "exportPDF" method and "exportedPDF" event respectively.
Release Date
TBD
Future
Proposed Features
Animation
SVG-edit should provide a means of animating SVG content using SMIL so that it can be played back in any browser. This becomes increasingly important as more browsers come online with SMIL functionality (Webkit and soon Mozilla).
The Inkscape folks have thoughts here: http://wiki.inkscape.org/wiki/index.php/Animation-%28Timeline%29

View File

@@ -0,0 +1,71 @@
Roundtrip Tests
Primarily in an effort to make SVG-edit suitable for Wikipedia, there are some tests that determine how accurately SVG-edit reproduces an original svg document when it is loaded into SVG-edit and immediately saved back out.
Hosted tests
The tests automate SVG-edit to perform a series of load-save operations on svg documents randomly selected from the Wikimedia Commons, but SVG-edit's output is sent back to a server for analysis and permanent storage. Currently, the main test server is https://www.mbaynton.com/svg-edit/2.6/test/roundtrip-test-src/launcher.php'>https://www.mbaynton.com/svg-edit/2.6/test/roundtrip-test-src/launcher.php'>https://www.mbaynton.com/svg-edit/2.6/test/roundtrip-test-src/launcher.php. Anyone who wants to help out can donate some cycles and bandwidth to the tests just by visiting this URL. We test hundreds of svg's on many browsers and many SVG-edit code revisions, so there's probably tests to be run.
The Error Score is based on how many pixels differ between the rasterized version of the original SVG document and the rasterized version of the SVG document that ran through SVG-edit. The closer to 0 the better. In the present interface you can also see a highlighted view of which pixels differ in each test, and compare the C14N-canonicalized input xml with the C14N-canonicalized SVG-edit output in a side-by-side diff.
In revisions of SVG-edit as of this writing, one of the first tests (352) will pause at "uploading saved source..." for a very long time due to the wildly inaccurate dimensions of the image that SVG-edit reports back to the server. Be patient.
Identified Issues
This section lists some issues that the roundtrip tests have revealed
Inline style attributes are not preserved
Wildly inaccurate dimensions of saved document, as exemplified by test 352
2013-10-03 Firefox on Windows eats up over 2 gigs of RAM and eventually crashes (reported by marclaporte)
Test code and dependencies
This section is only of interest if you wanted to set up a new roundtrip test environment on your own server.
I've checked in the code in a new branch at /svn/branches/roundtrip-diff-tests/2.6/test/roundtrip-test-src. Those with more ownership of the project can feel free to reorganize and/or merge it into trunk if you like.
To get this working on your server:
Create a MySQL database and apply the svg-edit-test.sql file to it to create two empty tables. Configure permissions to this database as you desire; you'll need to give php credentials to read and write.
Create a settings.php file in the same directory as test-runner.php, replacing the variable values for your environment:
<?php
$dbhost = "localhost";
$dbuser = "www";
$dbpass = "";
$dbschema = "svg-edit-test"; // name of database you created
$baseURL = "http://www.mbaynton.com/svg-edit-test/2.6/test/roundtrip-test-src";
?>
Load a set of svg files ("tests") into your database from Wikimedia Commons via the Tests-generator.php command-line script. Verify everything is working by loading a single document with
$ php Tests-generator.php
If this is successful, you can load some n SVG documents with
$ php Tests-generator.php n
Once you're satisfied with the set of tests you've loaded, you probably shouldn't change them again. It will be easier to compare test runs that way.
A (probably incomplete) list of dependencies on the server:
PHP cURL extension
SVN Functions for PHP
ImageMagick and its PHP extension
(Optionally) a W3C markup validator. The validator is web based and so doesn't need to be local; the one it uses should be in settings.php but is currently hardcoded in helper-functions.php (function testSvgStrictValidity).
# Future Enhancements #
Use http://www.mergely.com/ for textual diffs
Allow tests to run from svg-edit hosted on arbitrary servers, so developers can evaluate changes before checking them in.
Plenty more...
Related links

View File

@@ -0,0 +1,27 @@
Info
8th International Conference on Scalable Vector Graphics August 30 to September 1, 2010 Paris, France
Abstract
Paper title: SVG-edit
Paper subtitle: A complete vector graphics editor in the browser
Authors: Rusnak, Pavol
Paper topic: SVG Authoring Tools and Techniques
Abstract:
SVG-edit is a fast, web-based, Javascript-driven SVG editor that works in any modern browser. It is inspired by Inkscape and despite its youth (slightly more than a year of development) already provides a good set of features to create advanced vector drawings. Open-source components like jQuery are used and SVG-edit itself is also licensed under a liberal Apache License 2.0, which makes it very easy to embed the editor in both commercial and non-commercial projects. The talk will focus on a short history plus overview of the project and the new features implemented in the last SVG-edit releases. We will mention various challenges we faced during the development and also describe the browser missing features which would make life a lot easier. We'll conclude the talk with a live demonstration of the editor and other projects that already use embedded SVG-edit.
Remarks:
codedread's comments
Pavol, I would recommend talking about the new features in 2.4, 2.5 (and if it is released prior to the conference, 2.6). Also, I would recommend discussing some of the challenges so that browsers are more aware of them. Please feel free to take comments from this list of challenges to weave them into your talk:
browser support of content-editable in HTML does not extend to HTML-inside-SVG (using foreignObject) in an interoperable way. This prevents rich text in SVG-edit. Try the T+ button on this experimental branch: http://svg-edit.googlecode.com/svn/branches/enhtext/editor/svg-editor.html
need all browsers to support the [W3C File API](http://www.w3.org/TR/FileAPI/) (to allow local files to be loaded into SVG-edit). Specifically Safari, Opera, IE9 and Chrome (Google has plans to support this in Chrome 5).
want browsers to start implementing the [W3C FileWriter](http://dev.w3.org/2009/dap/file-system/file-writer.html) interface (I think Chrome has plans for Version 5)
want browsers to allow better Canvas-SVG integration (i.e. export Canvas to SVG, [export SVG to PNG](http://dev.w3.org/html5/canvas-api/canvas-2d-api.html#todataurl-method), embed canvas directly in SVG for raster effects)
consistent support of SVG DOM interfaces, specifically things like SVGPathSegList (adeveria has more details, I'm sure), more details on the BrowserBugs page

View File

@@ -0,0 +1,22 @@
The goal of this page is for everyone in the community to be aware of how different community members use and rely on SVG-edit. Please see ProjectsThatUseSvgEdit for the list of projects.
FOSS Web apps
Wiki engines
Content Management Systems
E-learning tools
etc.
Typical example: http://www.dokuwiki.org/plugin:svgedit
Online services with drawing needs
Drawings for products
T-shirts
Web to print
etc.
Typical example: http://instanttee.co.nr/
Installable application
Integrating SVG-edit in a desktop application, which you download and use on your computer, like http://bluegriffon.org/
See also: Consulting

View File

@@ -0,0 +1,158 @@
Introduction
This is our page of ideas for the [Google Summer of Code 2010](http://socghop.appspot.com/). If you are a student, you can participate by developing one of the projects we describe here (or propose an idea of your own!), and get paid through a stipend by Google. Read the [Google Summer of Code 2010 FAQ](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs) for more details about the program.
Important dates
March 08 to March 12 - Mentor organization application period
March 18 - Announcement of accepted mentor organizations.
March 29 to April 09 - Student application period
April 26 - Announcement of accepted students
May 24 to August 16 - Coding period
See the [authorative timeline](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/timeline) for more details.
Information for students
The Google Summer of Code is a program for students in most countries. You will participate by writing code for a free software project. Students who finish their work satisfactorily will get a stipend of 4500 US Dollars.
Do this if you want to participate:
Start by reading the [Google Summer of Code FAQ](http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs)
See which of the Ideas below you find interesting or come up with your own idea.
Get in contact with the community
Submit your proposal on the Google Summer of Code website
Your proposal should include this information:
Give a detailed idea of what you want to accomplish in your project. Don't just quote what the project's abstract says! Think of how you will actually implement it, and describe that.
Give a general idea of your skills. If you have participated in a free software project before, say so and if possible point to your contributions.
Give a rough timeline for your work, with milestones. For example: "week 1, get the code to build and start familiarizing myself with it. Week 2, implement the first refactoring patch. Week 3, try such and such thing."
Basically, let us know why you are the perfect person to implement the project you picked :)
Ideas
This is a list of ideas for projects which could be done as part of the Google Summer of Code program. If you have an idea and want to mentor it, please add it to the list.
If you are a student and want to work on an idea, submit a proposal. You are not limited to the ideas listed here. If you have an own idea or want to approach an idea in a completely different way, feel free to submit this as proposal as well. Sometimes these are the best projects. Creativity and initiative are highly appreciated.
Path Tool Enhancements
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Advanced
Mentor: TBD
Student: TBD
Description:
add/delete arbitrary points on a path
join points/paths
continue from endpoint
click-drag makes curve/bezier point instead of corner point
simplify path algorithms
drag from lines as well as points
Objects on Path
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Experienced
Mentor: TBD
Student: TBD
Description:
Multiple duplicate object/instances along a path with either evenly spaced (user configurable) or at each point on the path.
Object along Path Enhancements
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Advanced
Mentor: TBD
Student: TBD
Description:
Object A is stretched along a path B.
Union/Intersection/Difference for shapes
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Advanced
Mentor: TBD
Student: TBD
Description:
2 or more overlapping objects when selected are either a) Combined to make one object from the outline of both or b) Like a Venn diagram we take only the shared intersecting area or c) Take the area of the two objects that are not intersecting
Rulers/Guides/Units Enhancements
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Experienced
Mentor: TBD
Student: TBD
Description:
Add rules and guides with configurable units
Bring forward/Send backward incremental
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Experienced
Mentor: TBD
Student: TBD
Description:
Currently moving an object all the way forward or backward is the only option, but adding the functionality to move forward or backward one object at a time is much better.
Layer Drag and Drop Enhancement
Required knowledge: JS, CSS, jQuery
Skill level: Novice
Mentor: TBD
Student: TBD
Description:
Enable Users to move the layers around by dragging them to change the order
History Interface in Sidebar
Required knowledge: JS, CSS, jQuery
Skill level: Novice
Mentor: TBD
Student: TBD
Description:
A visual representation of the undo/redo stack with the ability to go back n number of steps at will.
Pattern Fills
Required knowledge: SVG, JS, CSS, jQuery
Skill level: Experienced
Mentor: TBD
Student: TBD
Description:
Use a pattern to define a fill pattern
Documentation Enhancements
Required knowledge: Must possess technical writing skills and experience with graphics applications is a big plus.
Skill level: Novice
Mentor: TBD
Student: TBD
Description:
User Docs and Guides
API/Extensions
{IDEA_TITLE_TO_BE_REPLACED}
Required knowledge: What does the prospective student need to know before attempting this idea?.
Skill level: How difficult would this idea be to implement if the student has the required knowledge
Mentor: Your name and contact will go here.
Student: Your name and contact will go here.
Description of idea goes here, try and be as detailed as possible.
Links
http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs'>Google Summer of Code FAQ
http://code.google.com/soc/'>Google Summer of Code main page

View File

@@ -0,0 +1,46 @@
Introduction
This is our page of ideas for the [Google Summer of Code 2013](http://www.google-melange.com/gsoc/homepage/google/gsoc2013). If you are a student, you can participate by developing one of the projects we describe here (or propose an idea of your own!), and get paid through a stipend by Google. Read the [Google Summer of Code 2013 FAQ](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page) for more details about the program.
Important dates
March 18 to March 29 - Mentor organization application period
April 8 - Announcement of accepted mentor organizations.
April 22 to May 3 - Student application period
May 27 - Announcement of accepted students
June 17 to September 23 - Coding period
See the [authorative timeline](http://www.google-melange.com/gsoc/events/google/gsoc2013) for more details.
Information for students
The Google Summer of Code is a program for students in most countries. You will participate by writing code for a free software project. Students who finish their work satisfactorily will get a stipend of 4500 US Dollars.
Do this if you want to participate:
Start by reading the [Google Summer of Code FAQ](http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page)
See which of the Ideas below you find interesting or come up with your own idea.
Get in contact with the community
Submit your proposal on the Google Summer of Code website
Your proposal should include this information:
Give a detailed idea of what you want to accomplish in your project. Don't just quote what the project's abstract says! Think of how you will actually implement it, and describe that.
Give a general idea of your skills. If you have participated in a free software project before, say so and if possible point to your contributions.
Give a rough timeline for your work, with milestones. For example: "week 1, get the code to build and start familiarizing myself with it. Week 2, implement the first refactoring patch. Week 3, try such and such thing."
Basically, let us know why you are the perfect person to implement the project you picked :)
Ideas
This is a list of ideas for projects which could be done as part of the Google Summer of Code program. If you have an idea and want to mentor it, please add it to the list.
If you are a student and want to work on an idea, submit a proposal. You are not limited to the ideas listed here. If you have an own idea or want to approach an idea in a completely different way, feel free to submit this as proposal as well. Sometimes these are the best projects. Creativity and initiative are highly appreciated.
{IDEA_TITLE_TO_BE_REPLACED}
Required knowledge: What does the prospective student need to know before attempting this idea?.
Skill level: How difficult would this idea be to implement if the student has the required knowledge
Mentor: Your name and contact will go here.
Student: Your name and contact will go here.
Description of idea goes here, try and be as detailed as possible.

View File

@@ -0,0 +1,20 @@
SVG Element and Attribute Whitelist
I apologize up-front for the poor format of this table, I blame the wiki markup allowed in Google Code.
Anything not listed here is not supported by SVG-edit and will be stripped out upon import. SVG-edit supports the following elements and attributes:
| Element | Attributes | |:------------|:---------------| | All Elements | class, filter, id, requiredFeatures, style, systemLanguage | | All Shapes | clip-path, fill, fill-opacity, fill-rule, marker-end, marker-mid, marker-start, pattern, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, transform | | a | xlink:href | | circle | cx, cy, r | | clipPath | clipPathUnits | | defs | | | desc | | | ellipse | cx, cy, rx, ry | | feGaussianBlur | stdDeviation | | filter | filterRes, filterUnits, height, primitiveUnits, width, x, xlink:href, y | | g | | | image | xlink:href, xlink:title | | line | x1, x2, y1, y2 | | linearGradient | gradientTransform, gradientUnits, spreadMethod, x1, x2, y1, y2 | | marker | markerHeight, markerUnits, markerWidth, orient, refX, refY | | path | d | | pattern | height, patternContentUnits, patternTransform, patternUnits, width, x, xlink:href, y | | polygon | points | | polyline | points | | radialGradient | cx, cy, fx, fy, gradientTransform, gradientUnits, r, spreadMethod | | stop | offset, stop-color, stop-opacity | | symbol | preserveAspectRatio, viewBox | | svg | height, preserveAspectRatio, viewBox, width, xmlns, xmlns:xlink | | switch | | | rect | height, rx, ry, width, x, y | | text | font-size, font-family, font-style, font-weight, text-anchor, x, xml:space, y | | textPath | method, spacing, startOffset, xlink:href | | tspan | dx, dy, rotate, textLength, x, y | | title | | | use | height, width, x, xlink:href, y |
Non-Editable Items
At this time, the following attributes cannot be edited in the user interface of SVG-edit (but they can be tweaked using the SVG source editor within SVG-edit):
fill-rule
stroke-dashoffset
stroke-miterlimit
xlink:href on a use element
In addition, there is no way within jGraduate (the color picker used in SVG-edit) to:
create a radial gradient
add stops to any gradient (limited to two stops only)

View File

@@ -0,0 +1,13 @@
There are some unit tests here: https://svg-edit.googlecode.com/svn/trunk/test/
All the tests can be run at once from [this page](https://svg-edit.googlecode.com/svn/trunk/test/all_tests.html).
To do
List all tests that need to be written
In particular, it seems that the existing tests are lower level tests. That's good, but we probably also need higher level "acceptance testing" kinds of tests.
It seems also we need to organize and document these tests a bit better, so that:
people don't end up writing a test that already exists
when people want to add a new test, they know where to add it
people know that those tests exist, and have access to easy tutorials on how to write them.
Related: * For Wikipedia, we have a round-trip testing suite: https://github.com/brion/svg-edit-test

View File

@@ -0,0 +1,11 @@
We need to make it easier to theme svg-edit and tweak the interface. Currently the presentation, markup and logic are mixed in css, html and javascript. Ideally an approach similar to the [CSS Zen Garden](http://www.csszengarden.com/).
Open questions
What needs to be changed in the code to make this separation happen?
What sorts of interface changes would we want possible? Perhaps take inspiration from other editors like [Method Draw](http://editor.method.ac/) and [CWM Draw Tool](https://code.google.com/p/cwm-drawtool/)
Related links
[Gauging reception for a full redesign (Mark MacKay)](https://groups.google.com/d/topic/svg-edit/MvAHo1-4xpU/discussion)
[Proposal: svg-edit and svg-view (Christian Tzurcanu)](https://groups.google.com/d/topic/svg-edit/O1XLHrLZLYg/discussion)
[Modular design and customizations (Aditya Bhatt)](https://groups.google.com/d/topic/svg-edit/aua4-cy8hvI/discussion)

View File

@@ -0,0 +1,21 @@
Unexpected svgEditor.ready doesn't exist when load svg-editor from parent using iframe
Situation: You have a web page where you use an iframe to load svg-edit. Since the jQuery ready function does not wait for all JavaScript to load, you may get some unexpected behavior, such as svgEditor.ready not existing. You may thus need to catch this exception and wait a little longer to try again:
svg_frame is the id for the svg-editor iframe
``` $('#svg_frame').ready(function() {
var ifrm = $('#svg_frame')[0];
// waiting for real load
(function(){
try {
ifrm.contentWindow.svgEditor.ready(function() { editor_ready();});
}
catch (Ex){
setTimeout(arguments.callee, 1000);
}
})();
}) ```

View File

@@ -0,0 +1,758 @@
To commit translations to the main code base, please see: CommitPolicy
Under construction
http://imgh.us/SVG-edit_Languages.svg http://imgh.us/SVG-edit_Languages.jpg]
shows the status of translations for each SVG-edit language file.
'>
Introduction Explanation of this document.
IDs Details Describes the IDs.
js_strings Describes the JavaScript strings.
Introduction
This page lists the existing IDs in the language files, and explains what they "technically" represent, for a meaningful - yet simple - translation of the SVG-edit interface.
New ID since the last version
Active ID
ID made obsolete last version
Obsolete ID
There is also a block of JavaScript strings, at the end of each language file. Their second part needs to be translated.
The current available languages files can be found here. Click on the language file you want, then select "View Raw file" to display the file and save it as a .js file that you can edit.
This page is sorted in the same order as the language files themselves.
Notes: * a '%string' is a value and must not be translated. Ex: '%s'. * \n inside a long line:
Long lines are sometimes split with a
\nwhich must not be translated. It may be moved
\ninto the sentences
\nfor verbose languages.
References to shortcuts (numbers or words inside a pair of "[ ]" brackets still appearing in a language file must be deleted from the line.
IDs Details
align_relative_to
DescriptionVerb. To align objects relatively to either objects or the page. Default languageAlign relative to ... In use since2.4 Obsolete since-
angleLabel
DescriptionNoun. The angle of rotation applied to an object. Default languageangle: In use since2.4 Obsolete since2.5
bkgnd_color
DescriptionVerb. To change the background color / the opacity. Default languageChange background color/opacity In use since2.4 Obsolete since-
circle_cx
DescriptionVerb. To change the horizontal coordinate cx of a circle. Default languageChange circle's cx coordinate In use since2.4 Obsolete since-
circle_cy
DescriptionVerb. To change the vertical coordinate cy of a circle. Default languageChange circle's cy coordinate In use since2.4 Obsolete since-
circle_r
DescriptionVerb. To change the radius of a circle. Default languageChange circle's radius In use since2.4 Obsolete since-
connector_no_arrow
DescriptionNoun. Option indicating that the line should not have arrows. Default languageNo arrow In use since2.5 Obsolete since-
copyrightLabel
DescriptionSentence start. Prefix to "SVG-edit" credit in bottom-right corner. Default languagePowered by In use since2.5 Obsolete since-
cornerRadiusLabel
DescriptionVerb. Value of the radius of the corners, for a rectangle with rounded corners. Note: This text used to be "Corner Radius:" and was a label. As of 2.5 it refers to the tooltip text Default languageChange Rectangle Corner Radius In use since2.4 Obsolete since
curve_segments
DescriptionNoun. Type of segment: curved segment, as opposed to straight line. Default languageCurve In use since2.4 Obsolete since-
ellipse_cx
DescriptionVerb. To change the horizontal coordinate cx of an ellipse. Default languageChange ellipse's cx coordinate In use since2.4 Obsolete since-
ellipse_cy
DescriptionVerb. To change the vertical coordinate cy of an ellipse. Default languageChange ellipse's cy coordinate In use since2.4 Obsolete since-
ellipse_rx
DescriptionVerb. To change the horizontal radius x of an ellipse. Default languageChange ellipse's x radius In use since2.4 Obsolete since-
ellipse_ry
DescriptionVerb. To change the vertical radius y of an ellipse. Default languageChange ellipse's y radius In use since2.4 Obsolete since-
fill_color
DescriptionVerb. To change the fill color of an object. Default languageChange fill color In use since2.4 Obsolete since-
fill_tool_bottom
DescriptionNoun. The inner painting of an object. Default languagefill: In use since2.4 Obsolete since2.5
fitToContent
DescriptionAdjective or past participle. Adjusted to the content of the drawing, cropped. Default languageFit to Content In use since2.4 Obsolete since-
fit_to_all
DescriptionVerb. To adjust the zoom level to include everything drawn in all layers. Default languageFit to all content In use since2.4 Obsolete since-
fit_to_canvas
DescriptionVerb. To adjust the zoom level to the canvas dimensions. Default languageFit to canvas In use since2.4 Obsolete since-
fit_to_layer_content
DescriptionVerb. To adjust the zoom level to include everything in the current layer. Default languageFit to layer content In use since2.4 Obsolete since-
fit_to_sel
DescriptionVerb. To adjust the zoom level to include all the selected objects. Default languageFit to selection In use since2.4 Obsolete since-
font_family
DescriptionVerb. To change the font-family of a text element. Default languageChange Font Family In use since2.4 Obsolete since-
idLabel
DescriptionVerb. To change the ID of an element. Default languageIdentify the element In use since2.5 Obsolete since-
icon_large
DescriptionAdjective. Large, for the size of the icons. Default languageLarge In use since2.4 Obsolete since-
icon_medium
DescriptionAdjective. Average, for the size of the icons. Default languageMedium In use since2.4 Obsolete since-
icon_small
DescriptionAdjective. Small, for the size of the icons. Default languageSmall In use since2.4 Obsolete since-
icon_xlarge
DescriptionAdjective. Extra large, for the size of the icons. Default languageExtra Large In use since2.4 Obsolete since-
iheightLabel
DescriptionNoun. Height. Default languageheight: In use since2.4 Obsolete since2.5
image_height
DescriptionVerb. To change the height of an image. Default languageChange image height In use since2.4 Obsolete since-
image_opt_embed
DescriptionVerb. To embed (include, integrate) the images as data (for local files) Default languageEmbed data (local files) In use since2.4 Obsolete since-
image_opt_ref
DescriptionVerb. To use the reference of the images (URLs of the images, instead of embedding them Default languageUse file reference In use since2.4 Obsolete since-
image_url
DescriptionVerb. To change the URL of an image. Default languageChange URL In use since2.4 Obsolete since-
image_width
DescriptionVerb. To change the width of an image. Default languageChange image width In use since2.4 Obsolete since-
includedImages
DescriptionAdjective or past participle. Included, integrated, embedded images. Default languageIncluded Images In use since2.4 Obsolete since-
iwidthLabel
DescriptionNoun. Width. Default languagewidth: In use since2.4 Obsolete since2.5
largest_object
DescriptionSuperlative adjective. The largest object. Default languagelargest object In use since2.4 Obsolete since-
layer_delete
DescriptionVerb. To delete the current layer. Default languageDelete Layer In use since2.4 Obsolete since-
layer_down
DescriptionVerb. To move the current layer down in the layer table. Default languageMove Layer Down In use since2.4 Obsolete since-
layer_new
DescriptionNoun. A new layer. Default languageNew Layer In use since2.4 Obsolete since-
layer_rename
DescriptionVerb. To give a new name to the current layer. Default languageRename Layer In use since2.4 Obsolete since-
layer_up
DescriptionVerb. To move the current layer up in the layer table. Default languageMove Layer Up In use since2.4 Obsolete since-
layersLabel
DescriptionNoun. The layers. Default languageLayers: In use since2.4 Obsolete since-
line_x1
DescriptionVerb. To change the horizontal coordinate x of the starting point, for a line. Default languageChange line's starting x coordinate In use since2.4 Obsolete since-
line_x2
DescriptionVerb. To change the horizontal coordinate x of the ending point, for a line. Default languageChange line's ending x coordinate In use since2.4 Obsolete since-
line_y1
DescriptionVerb. To change the vertical coordinate y of the starting point, for a line. Default languageChange line's starting y coordinate In use since2.4 Obsolete since-
line_y2
DescriptionVerb. To change the vertical coordinate y of the ending point, for a line. Default languageChange line's ending y coordinate In use since2.4 Obsolete since-
linecap_butt
DescriptionNoun. To made the end of a line stop exactly at its end coordinate. Default languageLinecap: Butt In use since2.5 Obsolete since-
linecap_round
DescriptionNoun. To made the end of a line end rounded. Default languageLinecap: Round In use since2.5 Obsolete since-
linecap_round
DescriptionNoun. To made the end of a line end square. Default languageLinecap: Square In use since2.5 Obsolete since-
linejoin_bevel
DescriptionNoun. To make line joints use straight, cut off edges. Default languageLinejoin: Bevel In use since2.5 Obsolete since-
linejoin_miter
DescriptionNoun. To make line joints use regular, usually pointy edges. Default languageLinejoin: Miter In use since2.5 Obsolete since-
linejoin_round
DescriptionNoun. To make line joints use round edges. Default languageLinejoin: Round In use since2.5 Obsolete since-
main_icon
DescriptionNoun. The main (application) menu. Default languageMain Menu In use since2.5 Obsolete since-
mode_connect
DescriptionVerb. Option to connect two objects with a line. Default languageConnect two objects In use since2.5 Obsolete since-
page
DescriptionNoun. The page. Default languagepage In use since2.4 Obsolete since-
palette
DescriptionNoun. The palette, the painter's tool which holds all the available colors. Default languageClick to change fill color, shift-click to change stroke color In use since2.4 Obsolete since-
path_node_x
DescriptionVerb. To change the horizontal coordinate x, for a node (point). Default languageChange node's x coordinate In use since2.4 Obsolete since-
path_node_y
DescriptionVerb. To change the vertical coordinate y, for a node (point). Default languageChange node's y coordinate In use since2.4 Obsolete since-
rect_height
DescriptionVerb. To change the height of a rectangle. Default languageChange rectangle height In use since2.4 Obsolete since-
rect_rx
DescriptionVerb. To change the value of the radius of the corners, for a rectangle with rounded corners. Default languageChange Rectangle Corner Radius In use since2.4 Obsolete since-
rect_width
DescriptionVerb. To change the width of a rectangle. Default languageChange rectangle width In use since2.4 Obsolete since-
relativeToLabel
DescriptionAdverb. (Objects aligned) relatively to either objects, or the page. Default languagerelative to: In use since2.4 Obsolete since-
rheightLabel
DescriptionNoun. Height. Default languageheight: In use since2.4 Obsolete since2.5
rwidthLabel
DescriptionNoun. Width. Default languagewidth: In use since2.4 Obsolete since2.5
seg_type
DescriptionVerb. To change the type of a segment. Default languageChange Segment type In use since2.4 Obsolete since-
selLayerLabel
DescriptionVerb. To move elements to (another layer): Default languageMove elements to: In use since2.4 Obsolete since-
selLayerNames
DescriptionVerb. To move selected elements to a different layer. Default languageMove selected elements to a different layer In use since2.4 Obsolete since-
selectedPredefined
DescriptionVerb. To select predifined values, for the canvas dimensions. Default languageSelect predefined: In use since2.4 Obsolete since-
selected_objects
DescriptionPast participle. Objects which are selected. Default languageselected objects In use since2.4 Obsolete since-
selected_x
DescriptionVerb. To change the horizontal coordinate X. Default languageChange X coordinate In use since2.4 Obsolete since-
selected_y
DescriptionVerb. To change the vertical coordinate Y. Default languageChange Y coordinate In use since2.4 Obsolete since-
smallest_object
DescriptionSuperlative adjective. The smallest object. Default languagesmallest object In use since2.4 Obsolete since-
straight_segments
DescriptionNoun. Type of segment: straight line, as opposed to curve. Default languageStraight In use since2.4 Obsolete since-
stroke_color
DescriptionVerb. To change the color of the outline (exterior) of an element. Default languageChange stroke color In use since2.4 Obsolete since-
stroke_style
DescriptionVerb. To change the style of dashes, for the outline (exterior) of an element. Default languageChange stroke dash style In use since2.4 Obsolete since-
stroke_tool_bottom
DescriptionNoun. The outline (exterior) of an element. This includes the color/opacity, the line thicknes and the line style (dashes and/or dots). Default languagestroke: In use since2.4 Obsolete since2.5
stroke_width
DescriptionVerb. To change the width of the outline (exterior) of an element. Default languageChange stroke width by 1, shift-click to change by 0.1 In use since2.4 Obsolete since-
svginfo_bg_note
DescriptionNote : Background will not be saved with the image. Default languageNote: Background will not be saved with image. In use since2.4 Obsolete since-
svginfo_change_background
DescriptionNoun. The background color or image of the editor. Default languageEditor Background In use since2.4 Obsolete since-
svginfo_dim
DescriptionNoun. The dimensions of the canvas. Default languageCanvas Dimensions In use since2.4 Obsolete since-
svginfo_editor_prefs
DescriptionNoun. The preferences of the editor. Default languageEditor Preferences In use since2.4 Obsolete since-
svginfo_height
DescriptionNoun. Height. Default languageHeight: In use since2.4 Obsolete since-
svginfo_icons
DescriptionNoun. Size of the icons. Default languageIcon size In use since2.4 Obsolete since-
svginfo_image_props
DescriptionNoun. The properties of the image. Default languageImage Properties In use since2.4 Obsolete since-
svginfo_lang
DescriptionNoun. Language (of the editor). Default languageLanguage In use since2.4 Obsolete since-
svginfo_title
DescriptionNoun. Title (of the image). Default languageTitle In use since2.4 Obsolete since-
svginfo_width
DescriptionNoun. Width (of the image). Default languageWidth: In use since2.4 Obsolete since-
text
DescriptionNoun. Text, content of a text element. Default languageChange text contents In use since2.4 Obsolete since-
toggle_stroke_tools
DescriptionVerb. To show/hide the additional stroke tools Default languageShow/hide more stroke tools In use since2.5 Obsolete since-
tool_alignbottom
DescriptionVerb. To align the bottom of selected elements. Default languageAlign Bottom In use since2.4 Obsolete since-
tool_aligncenter
DescriptionVerb. To center vertically, relatively to the vertical axis Default languageAlign Center In use since2.4 Obsolete since-
tool_alignleft
DescriptionVerb. To align the left sides of selected elements. Default languageAlign Left In use since2.4 Obsolete since-
tool_alignmiddle
DescriptionVerb. To center horizontally, relatively to the horizontal axis Default languageAlign Middle In use since2.4 Obsolete since-
tool_alignright
DescriptionVerb. To align the right sides of selected elements. Default languageAlign Right In use since2.4 Obsolete since-
tool_aligntop
DescriptionVerb. To align the top sides of selected elements. Default languageAlign Top In use since2.4 Obsolete since-
tool_angle (was: angle)
DescriptionVerb. To change the angle of rotation applied to an object. Default languageChange rotation angle In use since2.4 Obsolete since-
tool_blur
DescriptionVerb. To change the gaussian blur value of an object. Default languageChange gaussian blur value In use since2.5 Obsolete since-
tool_bold
DescriptionAdjective. Bold text Default languageBold Text In use since2.4 Obsolete since-
tool_circle
DescriptionNoun. Circle. Default languageCircle In use since2.4 Obsolete since-
tool_clear
DescriptionAdjective. New Image Default languageNew Image In use since2.4 Obsolete since-
tool_clone
DescriptionVerb. To clone an element Default languageClone Element In use since2.4 Obsolete since-
tool_clone_multi
DescriptionVerb. To clone elements Default languageClone Elements In use since2.4 Obsolete since-
tool_delete
DescriptionVerb. To delete an element Default languageDelete Element In use since2.4 Obsolete since-
tool_delete_multi
DescriptionVerb. To delete selected elements Default languageDelete Selected Elements In use since2.4 Obsolete since-
tool_docprops
DescriptionNoun. The document properties Default languageDocument Properties In use since2.4 Obsolete since-
tool_docprops_cancel
DescriptionVerb. To cancel Default languageCancel In use since2.4 Obsolete since-
tool_docprops_save
DescriptionNoun. OK (does not mean "Save") Default languageOK In use since2.4 Obsolete since-
tool_ellipse
DescriptionNoun. Ellipse Default languageEllipse In use since2.4 Obsolete since-
tool_export
DescriptionVerb. To save the image as a PNG, JPEG, BMP, or WEBP file Default languageExport In use since2.5 Obsolete since-
tool_eyedropper
DescriptionVerb. Tool for copying the style from one element to another Default languageEye Dropper Tool In use since2.5 Obsolete since-
tool_fhellipse
DescriptionNoun. Free-hand ellipse Default languageFree-Hand Ellipse In use since2.4 Obsolete since-
tool_fhpath
DescriptionNoun. Pencil tool Default languagePencil Tool In use since2.4 Obsolete since-
tool_fhrect
DescriptionNoun. Free-hand rectangle Default languageFree-Hand Rectangle In use since2.4 Obsolete since-
tool_font_size (was: font_size)
DescriptionVerb. To change the font size of a text element. Default languageChange Font Size In use since2.4 Obsolete since-
tool_group
DescriptionVerb. To group elements Default languageGroup Elements In use since2.4 Obsolete since-
tool_image
DescriptionNoun. Image tool Default languageImage Tool In use since2.4 Obsolete since-
tool_import
DescriptionVerb. To import an SVG file into the image. Default languageImport SVG In use since2.5 Obsolete since-
tool_opacity (was: group_opacity)
DescriptionVerb. To change the opacity of selected items. Default languageChange selected item opacity In use since2.4 Obsolete since-
tool_openclose_path
DescriptionVerb. To make a path or part of a path open or closed Default languageOpen/close sub-path In use since2.5 Obsolete since-
tool_italic
DescriptionAdjective. Italic text Default languageItalic Text In use since2.4 Obsolete since-
tool_line
DescriptionNoun. Line tool Default languageLine Tool In use since2.4 Obsolete since-
tool_move_bottom
DescriptionVerb. To move (the selected element) to the bottom Default languageMove to Bottom In use since2.4 Obsolete since-
tool_move_top
DescriptionVerb. To move (the selected element) to the top Default languageMove to Top In use since2.4 Obsolete since-
tool_node_clone
DescriptionVerb. To clone a node Default languageClone Node In use since2.4 Obsolete since-
tool_node_delete
DescriptionVerb. To delete a node Default languageDelete Node In use since2.4 Obsolete since-
tool_node_link
DescriptionVerb. To link control points: to make the two handles of a node move together, with solidarity, instead of individually. Default languageLink Control Points In use since2.4 Obsolete since-
tool_open
DescriptionVerb. To open an image Default languageOpen Image In use since2.4 Obsolete since-
tool_path
DescriptionNoun. Path tool. The chosen word musn't mean Polygon. Default languagePath Tool In use since2.3 Obsolete since2.4
tool_position
DescriptionVerb. To align a single element in reference to the page Default languageAlign Element to Page In use since2.5 Obsolete since-
tool_rect
DescriptionNoun. Rectangle Default languageRectangle In use since2.4 Obsolete since-
tool_redo
DescriptionVerb. To redo Default languageRedo In use since2.4 Obsolete since-
tool_reorient
DescriptionVerb. (to) Reorient (a) path: For a previously rotated object, make its bounding box parallel to the canvas, and with a rotation angle of 0°. Resets the bounding box origin. Default languageReorient path In use since2.4 Obsolete since-
tool_save
DescriptionVerb. To save the image Default languageSave Image In use since2.4 Obsolete since-
tool_select
DescriptionNoun. Select (selection) tool Default languageSelect Tool In use since2.4 Obsolete since-
tool_source
DescriptionVerb. To edit the source (opens the source editor) Default languageEdit Source In use since2.4 Obsolete since-
tool_source_cancel
DescriptionVerb. To cancel, discard changes. Default languageCancel In use since2.4 Obsolete since-
tool_source_save
DescriptionVerb. (to) Apply changes, accept changes. (does not mean "Save") Default languageApply Changes In use since2.4 Obsolete since-
tool_square
DescriptionNoun. Square Default languageSquare In use since2.4 Obsolete since-
tool_text
DescriptionNoun. Text tool Default languageText Tool In use since2.4 Obsolete since-
tool_topath
DescriptionVerb. To convert (a regular shape, circle, ellipse, rectangle...) in a path (with editable segments) Default languageConvert to Path In use since2.4 Obsolete since-
tool_undo
DescriptionVerb. To undo Default languageUndo In use since2.4 Obsolete since-
tool_ungroup
DescriptionVerb. To ungroup elements (previously grouped) Default languageUngroup Elements In use since2.4 Obsolete since-
tool_wireframe
DescriptionNoun. Wireframe, outline mode (shows the outline of the elements, with no colors) Default languageWireframe Mode In use since2.4 Obsolete since-
tool_zoom
DescriptionNoun. Zoom tool Default languageZoom Tool In use since2.4 Obsolete since-
tools_ellipse_show
DescriptionNoun. Ellipse/Circle tool Default languageEllipse/Circle Tool In use since2.4 Obsolete since2.5 r1333
tools_rect_show
DescriptionNoun. Square/Rectangle tool Default languageSquare/Rect Tool In use since2.4 Obsolete since2.5 r1333
url_notice
DescriptionSentence. Notice given to indicate the raster image cannot be embedded and depends on the given path to appear Default languageNOTE: This image cannot be embedded. It will depend on this path to be displayed In use since2.5 Obsolete since-
zoom_panel (was: zoom)
DescriptionVerb. To change the zoom level Default languageChange zoom level In use since2.5 Obsolete since-
zoomLabel
DescriptionNoun. Zoom: Default languagezoom: In use since2.4 Obsolete since2.5
sidepanel_handle
DescriptionVerb, then Noun. To drag left/right (in order) to resize the side panel, then, L a y e r s. Default languageDrag left/right to resize side panel Default languageL a y e r s In use since2.4 Obsolete since-
JavaScript strings (js_strings)
QerrorsRevertToSource
DescriptionSentence. States that there were errors while parsing the manually given SVG source code. Asks if it should go back to the original code. Default languageThere were parsing errors in your SVG source.\nRevert back to original SVG source? In use since2.4 Obsolete since-
QignoreSourceChanges
DescriptionSentence. Verifies that the changes made to the SVG source code can be rolled back. Default languageIgnore changes made to SVG source? In use since2.4 Obsolete since-
QmoveElemsToLayer
DescriptionSentence. Verifies that the selected items must be moved to another (already specified) layer. ('%s' must not be translated or changed.) Default languageMove selected elements to layer '%s'? In use since2.4 Obsolete since-
QwantToClear
DescriptionSentence. Verifies if the entire drawing, including the undo history, should be discarded. Default languageDo you want to clear the drawing?\nThis will also erase your undo history! In use since2.4 Obsolete since-
cancel
DescriptionVerb. Cancels a given command and returns back to the state before that. Default languageCancel In use since2.4 Obsolete since-
dupeLayerName
DescriptionSentence. Is displayed if a layer is created with a name of an already existing layer. Default languageThere is already a layer named that! In use since2.4 Obsolete since-
enterNewImgURL
DescriptionVerb. Lets you edit the URL of an inserted image. Default languageEnter the new image URL In use since2.4 Obsolete since-
enterNewLayerName
DescriptionSentence. Asks for a new layer name. A layer name identifies a layer. Default languagePlease enter the new layer name In use since2.4 Obsolete since-
enterUniqueLayerName
DescriptionSentence. Asks for a unique layer name. Default languagePlease enter a unique layer name In use since2.4 Obsolete since-
featNotSupported
DescriptionNoun. States that a function is not supported. Default languageFeature not supported In use since2.4 Obsolete since-
invalidAttrValGiven
DescriptionAdjective. States that a given value is not correct. Eg some text is given while a number is required. Default languageInvalid value given In use since2.4 Obsolete since-
defsFailOnSave
DescriptionSentence. Provides a message for Firefox users indicating that gradients, markers, etc will not appear as expected when saving. Default languageNOTE: Due to a bug in your browser, this image may appear wrong (missing gradients or elements). It will however appear correct once actually saved. In use since2.5 Obsolete since-
loadingImage
DescriptionSentence. Text that briefly appears on the page when the "Export" option is chosen Default languageLoading image, please wait... In use since2.5 Obsolete since-
saveFromBrowser
DescriptionSentence. Text that appears in popup on the new window with a SVG or image (%s = PNG, JPEG, BMP, WEBP, SVG) Default languageSelect \"Save As...\" in your browser to save this image as a %s file. In use since2.5 Obsolete since-
noteTheseIssues
DescriptionSentence. On "Export", the prefix text to indicate there are issues. Default languageAlso note the following issues: In use since2.5 Obsolete since-
key_backspace
DescriptionNoun. Name of the keyboard key: backspace Default languagebackspace In use since2.4 Obsolete since-
key_del
DescriptionNoun. Name of the keyboard key: delete Default languagedelete In use since2.4 Obsolete since-
key_down
DescriptionNoun. Name of the keyboard key: down Default languagedown In use since2.4 Obsolete since-
key_up
DescriptionNoun. Name of the keyboard key: up Default languageup In use since2.4 Obsolete since-
layer
DescriptionNoun. Gives the name for a layer. An image can have multiple layers that can group a number of elements. Default languageLayer In use since2.4 Obsolete since-
layerHasThatName
DescriptionSentence. States that the new layer name is the same as the old layer name. Default languageLayer already has that name In use since2.4 Obsolete since-
noContentToFitTo
DescriptionSentence. States that the command to resize the canvas to all content could not be executed, because there is no content. Default languageNo content to fit to In use since2.4 Obsolete since-
ok
DescriptionNoun. Executes the action and commits the changes that have been made. Default languageOK In use since2.4 Obsolete since-
pathCtrlPtTooltip
DescriptionVerb. States that the point that is being hovered can be dragged elsewhere. This will change the curve of the matching line. Default languageDrag control point to adjust curve properties In use since2.4 Obsolete since-
pathNodeTooltip
DescriptionVerb. States that the point that is being hovered can be dragged elsewhere. This will change the shape. The point can also be double-clicked, which will change the matching line type. Default languageDrag node to move it. Double-click node to change segment type In use since2.4 Obsolete since-
exportNoBlur
DescriptionSentence. Note that blur is not supported on image export Default languageBlurred elements will appear as un-blurred In use since2.5 Obsolete since-
exportNoImage
DescriptionSentence. Note that Image elements are not supported on image export Default languageImage elements will not appear In use since2.5 Obsolete since-
exportNoforeignObject
DescriptionSentence. Note that foreignObject elements are not supported on image export Default languageforeignObject elements will not appear In use since2.5 Obsolete since-
exportNoDashArray
DescriptionSentence. Note that stroke-dasharray is not supported on image export (will appear as regular stroke instead) Default languageStrokes will appear filled In use since2.5 Obsolete since-
exportNoText
DescriptionSentence. Note that text is not supported on image export (will only appear in browsers that don't support Canvas Text API) Default languageText may not appear as expected In use since2.5 Obsolete since-

View File

@@ -0,0 +1,283 @@
Introduction
This page describes the current release and previous versions of SVG-edit. For planned future versions (or current trunk-only features), see the Roadmap.
You can see the changes of the upcoming version here: http://code.google.com/p/svg-edit/source/list
As of 2011-09-29 (and for 2.6+ versions), the license was changed from Apache License v2.0 to MIT.
Current release: 2.7.1 (applied to 2.7 branch)
Fix important ID situation with embedded API
Update functions available to embedded editor
Version 2.7 ([Deltoid curve](https://en.wikipedia.org/wiki/Deltoid_curve))
New Features
Export to PNG, JPEG, BMP, WEBP (including quality control for JPEG/WEBP) for default editor and for the server_opensave extension
Added Star, Polygon, and Panning Extensions [r2318](https://code.google.com/p/svg-edit/source/detail?r=2318) [r2319](https://code.google.com/p/svg-edit/source/detail?r=2319) [r2333](https://code.google.com/p/svg-edit/source/detail?r=2333)
Added non-default extension, ext-xdomain-messaging.js, moving cross-domain messaging code (as used by the embedded editor) out of core and requiring, when the extension IS included, that configuration (an array "allowedOrigins") be set in order to allow access by any domain (even same domain).
Cause embedded editor to pass on URL arguments to the child editor (child iframe)
Added default extension, ext-storage.js moving storage setting code into this (optional) extension; contains dialog to ask user whether they wish to utilize local storage for prefs and/or content; provides configuration options to tweak behaviors.
Allow for a new file config.js within the editor folder (but not committed to SVN and ignored) which is always loaded and can be used for supplying configuration which happens early enough to affect URL or user storage configuration, in addition to extension behavior configuration. Provided config-sample.js to indicate types of configuration one could use (see also defaultPrefs, defaultExtensions, and defaultConfig within svg-editor.js )
Added configuration "preventAllURLConfig", "lockExtensions", and/or "preventURLContentLoading" for greater control of what can be configured via URL.
Allow second argument object to setConfig containing "allowInitialUserOverride" booleans to allow for preference config in config.js to be overridden by URL or preferences in user storage; also can supply "overwrite" boolean in 2nd argument object if set to false to prevent overwriting of any prior-set configuration (URL config/pref setting occurs in this manner automatically for security reasons).
Allow server_opensave extension to work wholly client-side (if browser [supports](http://caniuse.com/#feat=download) the download attribute)
Added [WebAppFind](https://github.com/brettz9/webappfind) extension
Added new php_savefile extension to replace outdated, non-functioning server-save code; requires user to create "savefile_config.php" file and do any validation there (for their own security)
Use addEventListener for 'beforeunload' event so user can add their own if desired
Changed locale behavior to always load from locale file, including English. Allow extensions to add new "langReady" callback which is passed an object with "lang" and "uiStrings" properties whenever the locale data is first made available or changed by the user (this callback will not be invoked until the locale data is available). Extensions can add strings to all locales and utilize this mechanism.
Made fixes impacting path issues and also ext-connector.js
Fixed a bug where the position number supplied on an extension object was too high (e.g., if too few other extensions were included, the extension might not show up because its position was set too high).
Added Polish locale
Zoom features
Make extension paths relative within extensions (issue [1184](https://code.google.com/p/svg-edit/issues/detail?id=1184&can=1&sort=-id&colspec=ID%20Type%20Status%20Priority%20NeededFor%20Browser%20Owner%20Summary))
Security improvements and other fixes
Embedded editor can now work same domain without JSON parsing and the consequent potential loss of arguments or return values.
Potentially breaking API changes:
Disallowed "extPath", "imgPath", "langPath", and "jGraduatePath" setting via URL and prevent cross-domain/cross-folder extensions being set by URL (security enhancement)
Deprecated "pngsave" option called by setCustomHandlers() in favor of "exportImage" (to accommodate export of other image types). Second argument will now supply, in addition to "issues" and "svg", the properties "type" (currently 'PNG', 'JPEG', 'BMP', 'WEBP'), "mimeType", and "quality" (for 'JPEG' and 'WEBP' types).
Default extensions will now always load (along with those supplied in the URL unless the latter is prohibited by configuration), so if you do not wish your old code to load all of the default extensions, you will need to add &noDefaultExtensions=true to the URL (or add equivalent configuration in config.js). ext-overview_window.js can now be excluded though it is still a default.
Preferences and configuration options must be within the list supplied within svg-editor.js (should include those of all documented extensions).
Embedded messaging will no longer work by default for privacy/data integrity reasons. One must include the "ext-xdomain-messaging.js" extension and supply an array configuration item, "allowedOrigins" with potential values including: "*" (to allow all domains--strongly discouraged!), "null" as a string to allow file:// access, window.location.origin (to allow same domain access), or specific trusted origins. The embedded editor works without the extension if the main editor is on the same domain, but if cross-domain control is needed, the "allowedOrigins" array must be supplied by a call to svgEditor.setConfig({allowedOrigins: [origin1, origin2, etc.]}) in the new config.js file.
[http://code.google.com/p/svg-edit/issues/list?can=1&q=NeededFor%3D2.6&colspec=ID+Type+Status+Priority+NeededFor+Browser+Owner+Summary&cells=tiles many more] '>
Release date
April 7th, 2014
Demo
http://svg-edit.googlecode.com/svn/branches/2.7/editor/svg-editor.html
Version 2.6 ([Cycloid](http://en.wikipedia.org/wiki/Cycloid))
New Features
[Support for Internet Explorer 9](http://code.google.com/p/svg-edit/issues/detail?id=120)
Context menu
[Cut/Copy/Paste/Paste in Place options](http://code.google.com/p/svg-edit/issues/detail?id=612)
[Gridlines, snap to grid](http://code.google.com/p/svg-edit/issues/detail?id=131)
Merge layers
Duplicate layer
[Image library](http://code.google.com/p/svg-edit/issues/detail?id=71)
[Shape library](http://code.google.com/p/svg-edit/issues/detail?id=541)
[Basic Server-based tools for file opening/saving](http://code.google.com/p/svg-edit/issues/detail?id=582)
In-group editing
Cut/Copy/Paste
[full list](http://code.google.com/p/svg-edit/issues/list?can=1&q=label%3ANeededFor-2.6)
Release Date
[January 15th, 2013](http://code.google.com/p/svg-edit/source/detail?r=2281)
Demo
http://svg-edit.googlecode.com/svn/branches/2.6/editor/svg-editor.html
Version 2.5 ([Bicorn](http://en.wikipedia.org/wiki/Bicorn))
New Features
[Open Local Files](http://code.google.com/p/svg-edit/issues/detail?id=392) (Firefox 3.6+ only)
[Import SVG into Drawing](http://code.google.com/p/svg-edit/issues/detail?id=72) (Firefox 3.6+ only)
[Ability to create extensions/plugins](http://code.google.com/p/svg-edit/issues/detail?id=310)
[Main menu and overal interface improvements](http://code.google.com/p/svg-edit/issues/detail?id=313)
[Create and select elements outside the canvas](http://code.google.com/p/svg-edit/issues/detail?id=185)
[Base support for the svg:use element](http://code.google.com/p/svg-edit/issues/detail?id=424)
[Add/Edit Sub-paths](http://code.google.com/p/svg-edit/issues/detail?id=443)
[Multiple path segment selection](http://code.google.com/p/svg-edit/issues/detail?id=277)
[Radial Gradient support](http://code.google.com/p/svg-edit/issues/detail?id=298)
[Connector lines](http://code.google.com/p/svg-edit/issues/detail?id=200)
[Arrows & Markers](http://code.google.com/p/svg-edit/issues/detail?id=308)
[Smoother freehand paths](http://code.google.com/p/svg-edit/issues/detail?id=341)
Foreign markup support (ForeignObject/MathML)
[Configurable options](http://code.google.com/p/svg-edit/issues/detail?id=427)
[File-loading options](http://code.google.com/p/svg-edit/issues/detail?id=65)
[Eye-dropper tool (copy element style)](http://code.google.com/p/svg-edit/issues/detail?id=115)
[Stroke linejoin and linecap options](http://code.google.com/p/svg-edit/issues/detail?id=440)
[Export to PNG](http://code.google.com/p/svg-edit/issues/detail?id=70)
[Blur tool](http://code.google.com/p/svg-edit/issues/detail?id=75)
[Page-align single elements](http://code.google.com/p/svg-edit/issues/detail?id=135)
[Inline text editing](http://code.google.com/p/svg-edit/issues/detail?id=364)
[Line draw snapping with Shift key](http://code.google.com/p/svg-edit/issues/detail?id=520)
Release Date
June 15th, 2010
Demo
http://svg-edit.googlecode.com/svn/branches/2.5/editor/svg-editor.html
Version 2.4 ([Arbelos](http://en.wikipedia.org/wiki/Arbelos))
New Features
[Raster Images](http://code.google.com/p/svg-edit/issues/detail?id=57)
[Select Non-Adjacent Elements](http://code.google.com/p/svg-edit/issues/detail?id=119)
[Group/Ungroup](http://code.google.com/p/svg-edit/issues/detail?id=40)
[Zoom](http://code.google.com/p/svg-edit/issues/detail?id=38)
[Layers](http://code.google.com/p/svg-edit/issues/detail?id=73)
[Curve Segments in Paths](http://code.google.com/p/svg-edit/issues/detail?id=118)
[UI Localization](http://code.google.com/p/svg-edit/issues/detail?id=64)
[Wireframe Mode](http://code.google.com/p/svg-edit/issues/detail?id=106)
[Change Background](http://code.google.com/p/svg-edit/issues/detail?id=39)
[Convert Shapes to Path](http://code.google.com/p/svg-edit/issues/detail?id=68)
Release Date
January 11th, 2010
Demo
http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html
Full Release Notes
New SVG support
Raster Images
Raster images (PNGs, JPEGs, etc) can now be added and where possible can be entirely embedded in the SVG file.
Group elements
Elements can be added into a group, and each group can be transformed like any other element. Any groups can also be ungrouped.
Add/Remove path nodes
After a path has been created, nodes can now be added or removed.
Curved Paths
After a path has been created, the straight segments (lines between nodes) can be turned into curved segments. Curves can be finely tuned by adjusting their control points.
Floating point values for all attributes
Attribute values are no longer restricted to integers.
Text fields for all attributes
Attributes values are no longer limited to those given in dropdown lists, any (valid) value can now be entered.
Title element
Images and layer groups can now be given a title.
New Interface features
Zoom
The canvas can now be zoomed in or out using a variety of methods:
Using the up/down buttons on the zoom spinner tool in the bottom-left corner
Using the dropdown button next to the zoom spinner tool (includes several "Fit to..." options)
Clicking on the magnifier icon to draw a zoom box, or just click/shift-click on an area to zoom in/out
Double-click tho magnifier icon to return to 100% zoom
Hold the shift key and use the scroll wheel on your mouse to zoom in/out on the area the cursor is on
Layers
Using the panel on the right (click or drag the "Layers" handle), additional layers can be created. Layers can be shown/hidden by clicking on the eye icon, and re-arranged by using the up and down buttons. To move one or more elements to another layer: select the elements, then choose the destination layer from the dropdown list under the layer list.
UI Localization
In addition to English, there are now several language options available for the SVG-Edit interface. When loaded for the first time, SVG-Edit will automatically switch to the language the browser has been set to. Else it will use the language specified in the Document Properties interface. Current supported languages are:
Czech
Dutch
Farsi
French
German
Romanian
Slovak
Spanish
Wireframe Mode
Clicking on the wireframe button (the outlined square and circle icon on the top panel) makes all shapes appear only as outlines, allowing shapes to be seen regardless of their position or opacity level.
Resizable UI (SVG icons)
A dropdown list for the "Icon size" has been added in the Document Properties. This allows toolbars to be set at a smaller or larger size than the default. By using SVG, the icons will appear as intended at any size.
Set background color and/or image (for tracing)
The default white background of the canvas can now be changed to a different color in the Document Properties. Additionally, a URL to an image can be given that can be used to trace over.
Convert Shapes to Paths
All shapes (except text and raster images) can now be converted to path elements by clicking on the "Convert to Path" icon in the context menu. This then allows the shapes to be modified by editing their nodes and segments.
X, Y coordinates for all elements
Elements that do not actually have base x and y values can now be positioned using them anyway, based on the top-left coordinates of their bounding box.
Draggable Dialog boxes
The color/gradient picker and other dialog boxes can now be dragged around.
Select Non-Adjacent Elements
Previously selecting multiple elements was only possible by dragging, you can now select/deselect elements by shift-clicking them while in "select" mode.
Fixed-ratio resize
While resizing elements, you can now hold the shift key to keep the width/height ratio the same.
Automatic Tool Switching
After drawing an element, you will remain in the same mode you were in. However, if you simply click on another element, you will automatically go into "Select" mode.
Version 2.3
New Features
[Align Objects](http://code.google.com/p/svg-edit/issues/detail?id=52)
[Rotate Objects](http://code.google.com/p/svg-edit/issues/detail?id=42)
[Clone Objects](http://code.google.com/p/svg-edit/issues/detail?id=51)
[Select Next/Prev Object](http://code.google.com/p/svg-edit/issues/detail?id=102)
[Edit SVG Source](http://code.google.com/p/svg-edit/issues/detail?id=59)
[Gradient picking](http://code.google.com/p/svg-edit/issues/detail?id=33)
[Polygon Mode](http://code.google.com/p/svg-edit/issues/detail?id=34) (Path Editing, Phase 1)
[(full list)](http://code.google.com/p/svg-edit/issues/list?can=1&q=label%3ANeededFor-2.3)
Release Date
September 8th, 2009
Demo
http://svg-edit.googlecode.com/svn/branches/2.3/editor/svg-editor.html
Version 2.2
New Features
[Multiselect Mode](http://code.google.com/p/svg-edit/issues/detail?id=31)
[Undo/Redo Actions](http://code.google.com/p/svg-edit/issues/detail?id=19)
[Resize Elements](http://code.google.com/p/svg-edit/issues/detail?id=27)
Contextual tools for rect, circle, ellipse, line, text elements
Some updated button images
Stretched the UI to fit the browser window
Resizing of the SVG canvas
Upgraded to jPicker 1.0.8
[(full list)](http://code.google.com/p/svg-edit/issues/list?can=1&q=label%3ANeededFor-2.2)
Release Date
July 8th, 2009
Demo
http://svg-edit.googlecode.com/svn/branches/2.2/editor/svg-editor.html
Version 2.1
New Features
tooltips added to all UI elements
edit of fill opacity, stroke opacity, group opacity
selection of elements
move/drag of elements
save SVG file to separate tab
create and edit text elements
contextual panel of tools
change rect radius, font-family, font-size
keystroke handling
[(full list)](http://code.google.com/p/svg-edit/issues/list?can=1&q=label%3ANeededFor-2.1)
Release Date
June 17th, 2009
Demo
http://svg-edit.googlecode.com/svn/branches/2.1/editor/svg-editor.html
Version 2.0
New Features
draw ellipse, square
change stroke-dasharray (line style)
rearranged whole code to OOP
GUI enhancement
Release Date
[June 3rd, 2009](http://code.google.com/p/svg-edit/source/detail?r=24)
Demo
http://svg-edit.googlecode.com/svn/branches/2.0/svg-editor.html
Version 1.0
New Features
draw path, line, freehand-circle, rect
clear drawn image
delete element
save image
[Release Date](http://code.google.com/p/svg-edit/source/detail?r=9)
Feb 13, 2009
Demo
http://svg-edit.googlecode.com/svn/branches/1.0/svg-editor.html

View File

@@ -0,0 +1,3 @@
Proposal
The release is by default planned for 12 months after the previous release. However, we can release at any time earlier. For example: * When energy and features are there * Just before a major refactor in trunk

View File

@@ -0,0 +1,23 @@
What
There are over 600k SVG images total on [Wikipedia Commons](https://commons.wikimedia.org/). Imagine if all this free content was editable via SVG-edit! (and eventually translatable as well)
The 1st thing we need is RoundtripTests (worked on by Mike Baynton, based on initial ideas / work by Brion Vibber)
Who
Brion Vibber
Mike Baynton
Marc Laporte
You? (join us!)
Related links
http://lists.wikimedia.org/pipermail/wikitech-l/2012-November/064472.html
https://bugzilla.wikimedia.org/show_bug.cgi?id=38271
https://github.com/brion/svg-edit-test
http://leuksman.com/misc/svg-edit-test/ (round-trip tester pulling SVGs from Wikimedia Commons)
https://groups.google.com/forum/#!topic/svg-edit/SfTVM4OPXiA/discussion
https://www.mediawiki.org/wiki/Extension:SVGEdit
https://www.mediawiki.org/wiki/Extension:TranslateSvg
https://code.google.com/p/svg-edit/issues/detail?id=1006
Maybe https://github.com/svg/svgo can be useful?

View File

@@ -0,0 +1,27 @@
Hello, my name is Jeff Schiller and I'll be giving you a brief introduction to SVG-edit. In this video, I'll describe what SVG-edit is, what it can do and I'll demonstrate some of its features.
SVG-edit is a new, open-source, lightweight vector graphics editor similar in nature to Adobe Illustrator or Inkscape. But what's exciting about SVG-edit is that it runs directly in the browser and is powered only by open web technologies such as HTML, CSS, JavaScript and SVG. SVG-edit runs in any modern browser including Firefox, Opera, Safari and Chrome.
So here is SVG-edit. What we're looking at is a small collection of tools, a color palette at the bottom and a white canvas on which you can draw your masterpiece. We'll see that drawing simple shapes is as simple as clicking the tool you want, I'll choose a simple rectangle here, and then dragging and lifting on the canvas.
We can draw many types of shapes: rectangles, circles [draw one large one for sun], ellipses [draw two small ones], lines [draw three for sun radiation], or even freehand drawing [draw a smile].
If we want to move the elements around, we click on the Select Tool and then drag the element to the correct position. We can click to select one shape or we can drag on the canvas to select multiple shapes. We can use the resizing grips to change the size of the element to our hearts content. [arrange sun, beams, eyes, rectangle floor, and text]
If we want to change the interior color of a particular shape, we first select the shape using the Select Tool, and then either click on a palette box or we can click on the Fill Paint box and choose the color we want from the standard picker. We can also set the opacity or alpha of the paint.
Changing the border color of the shape can be done in a similar manner by using the color picker for the Stroke. We can also shift-click on the palette to change the stroke color or to clear the Stroke color. We can also change the thickness of the stroke or the dash-style of the stroke using controls near the bottom of the window.
A simple Text tool is also included [set stroke to None, set fill to Red, then create a text element that says "Vector Graphics are powerful"]
I'd like to talk a bit about the tool panel near the top of the window. Apart from some standard buttons on the left, which I'll go over in a minute, the rest of the panel is dedicated to context-sensitive tools. This means that you only see controls on this toolbar for the tool and element you have selected. For instance, when I select a Text element, I see controls to change the text contents, font family, font size and whether the text should be bold or italic. If I select a rectangle, I see controls to change the rectangle's position, size and whether the rectangle should have rounded corners.
You may have noticed that some buttons were available in both cases. These controls manipulate the selected element. For instance, you can delete an element or move it to the top of the stack.
The final thing I'd like to talk about is the controls on the left. These controls are always present. There are the standard Undo/Redo buttons. And there are the standard New Document or Save Document buttons. Clicking New will wipe out all existing work. Clicking Save will open a new tab in the browser containing your document. You can then save this document to your desktop, publish it to a website or whatever.
One final thing to mention: because SVG-edit is a web application, it's quite trivial to embed the editor in a web page using nothing more than an HTML iframe element. Here we see an entry on my blog in which I've done this very thing.
SVG-edit is still in the beginning stages of development, there are a lot of features missing, but I hope this video has given you a sense of SVG-edit's capabilities and its ease of use.
Thanks for watching!

View File

@@ -0,0 +1,23 @@
Hi, this is Jeff Schiller and I'll be describing the new features in the latest release of SVG-edit, version 2.3.
For those of you who didn't watch the first screencast, SVG-edit is an open source vector graphics editor that works in any modern browser that natively supports SVG. This includes Firefox, Opera, Safari, and Chrome.
The latest release of SVG-edit sports more than just a new logo, this release brings some powerful new features. Features that you would expect of a first-class vector editor on your desktop. So let's launch the 2.3 Demo [click]
Probably the most significant new capability that SVG-edit brings is the ability to actually save and reload your work. SVG-edit now comes with a source editor [click on editor], which means you can save your SVG files to your hard disk and then copy and paste them back into SVG-edit and continue your work. You can also fine-tune the source of your drawing if there's something you want to do that isn't yet supported by the editor [add Jeff Schiller to comment and delete -->, show dialog].
Another important addition in 2.3 is the ability to construct arbitrary polygons or connected line segments. Once the shape is complete, click on the first point to close the shape or any other point if you want to leave it open. Polys can be dragged and resized just like any other shape. Click the shape again to edit the position of the points. [draw an arrow and position the points]
Rotation is now supported on shapes. There are a variety of ways to do this: by drag-rotating the handle, by holding shift and pressing the left/right arrow keys or by adjusting the spinner control at the top. [rotate the arrow]
The final major feature in SVG-edit 2.3 is the ability to pick linear gradients as fill/stroke paints instead of just solid colors. The color picker now has two tabs, one for solid colors and one for gradients. You choose the position of the begin and end stops and the color/opacity of each stop. [set fill on the black ellipse to a vert gradient from white to transparent]
There are also several minor features worthy of note:
Elements can now be copy-pasted using the Clone Tool. Select any number of elements and click Clone (or press C) to get the copied elements.
If you want fine-grained element navigation, you can use the keyboard shortcuts Shift-O and Shift-P to cycle forward or backward through elements on the canvas.
Compared to desktop vector graphics editors, SVG-edit still has a long ways to go, but already pretty sophisticated artwork can be achieved [open mickey.svg]. It's also important to remember that SVG-edit runs directly in the browser, with no plugins required. This means zero install hassle for users. You don't even need a bleeding edge browser, any SVG-capable browser released for the last few years will just work.
Thanks for watching.

View File

@@ -0,0 +1,50 @@
SVG-edit 2.4
------------
Hi, this is Jeff Schiller and this is part one of two videos in which I'll be describing the new features in the latest release of SVG-edit 2.4.
First, some background: SVG-edit is a web-based vector graphics editor that runs in any modern browser that supports SVG. This includes Firefox, Opera, Safari and Chrome. SVG-edit also runs in Internet Explorer with the Google Chrome Frame plugin installed.
So Version 2.4, code-named Arbelos, is a significant improvement over the previous release: SVG-edit has now evolved from a proof-of-concept demo into a full-featured application.
In this video I'll talk about the new path tool and the concept of zooming, I'll also cover some of the improvements to the user interface.
First up is the new path tool. In SVG-edit 2.3, the user had the ability to create a connected series of line segments and polygons [Draw a polyline]. In 2.4, the Poly Tool has evolved into a general purpose Path tool that draw straight lines or curves. To change a line segment into a curve, double-click on the starting point of that segment. Users can also manipulate the look of the curve by moving control points. Curves can be configured to be symmetrical by a push-button in the context panel. As you can see, when I change the position of a control point, the opposite control point also moves. The user also has the ability to add/delete segments to an existing path element. One final note on paths: most graphical elements (rectangles, ellipses, etc) can now be converted into paths for finer editing. This conversion is a one-way process, though it can be undone.
So next I'm going to talk about zooming. In 2.4, it is now possible to zoom in and out of a graphic. Zooming can be achieved in a variety of ways: Using the zoom control at the bottom left, you can type in a zoom percentage, use the spinner or pick a zoom level from the popup. Also included in the popup are things like "Fit to selection", which can be quite handy. Zooming is also possible via the Zoom tool on the left. Select it, then drag the area you wish to zoom in on. A final option is to just use the mousewheel to zoom the canvas quickly around the mouse pointer.
From a usability perspective, we've created a Document Properties dialog, available by clicking on the button in the top panel. This dialog box serves as housing for image and editor properties that are seldom accessed, but still important.
In terms of image properties:
* Give the image a title
* Change the canvas size, or pick one of several options
(* You can choose to have all local raster images referenced via URL or embedded inline as a data: URL. This will make your SVG image larger, but self-contained and thus, more portable.)
In terms of editor properties:
* SVG-edit's entire user interface (tooltips, labels) is fully localizable, and SVG-edit has now been translated into 8 languages. If you would like to contribute translation for a language, please contact us on the mailing list.
* Another nice feature is the ability to set the icon size of the editor, which can help with adapting SVG-edit to different environments (mobile devices, smaller netbooks, widescreen displays).
(* One final editor preference that can be changed is the canvas' colour. For most situations, a white canvas might be fine for creating your graphic, but if you are trying to draw an image with a lot of white in it, you might find this option useful.)
So that's it for this video. In the next video I'll talk about grouping, layers and a few other features of SVG-edit 2.4.
--------------------
Hi, this is Jeff Schiller and this is the second of two videos describing the new features in the latest release of SVG-edit 2.4, code-named Arbelos.
If you missed the first video, SVG-edit is a web-based vector graphics editor that runs in any modern browser that supports SVG. This includes Firefox, Opera, Safari and Chrome. SVG-edit also runs in Internet Explorer with the Google Chrome Frame plugin installed.
In the first video I gave an overview of the Path tool, Zooming and the new Document Properties dialog. In this video I'll talk about grouping, layers and a couple other features that round out the release.
So first is grouping. In SVG-edit 2.3 one could draw graphical primitives such as ellipses, rectangles, lines and polygons - and those elements could be moved, resized, and rotated. In 2.4 we've added the ability to arrange any number of elements together into a group. Groups behave just like other element types: they can be moved, resized and rotated - and they can be added to larger groups to create even more complex objects. You can copy/delete groups just like any other element. Ungrouping a group allows you to manipulate the elements individually again.
The next thing I'll talk about is Layers. The Layers panel lies tucked to the side but can be clicked or dragged open at any time. Layers work very much like they do in other drawing programs: you can create new layers, rename them, change the order and delete them. Elements not on the current layer are not selectable, so it's an excellent way to separate elements in your drawing so that you can work on them without interfering with other parts of the drawing. If you want to move elements between layers, select them, then select the layer you want to move them to.
There are a couple of other minor features that round out SVG-edit 2.4:
* It is now possible to embed raster images (via URL) into the canvas using the Image tool on the left
* It is also possible to keep the ratio of any element fixed when resizing by holding down the shift key.
* Finally, if the canvas is starting to become obscured, you can turn on 'wireframe mode' which shows the outline of all shapes in your drawing, but none of the fill or stroke properties.
There are several minor features that I didn't have time to talk about, but feel free to browse to the project page and try out the demo. Thanks for your time.

View File

@@ -0,0 +1 @@
See the license information in `index.html`

View File

@@ -0,0 +1,288 @@
<!DOCTYPE html>
<!--
Copyright 2010 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Original slides: Marcin Wichary (mwichary@google.com)
Modifications: Ernest Delgado (ernestd@google.com)
Alex Russell (slightlyoff@chromium.org)
Brad Neuberg
SVG-edit presentation: Pavol Rusnak (pavol@rusnak.io)
-->
<html>
<head>
<!--[if gte IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<![endif]-->
<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<![endif]-->
<meta charset="utf-8" />
<title>SVG-edit, Pavol Rusnák, SVG Open 2010, Paris</title>
<link href="https://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono" rel="stylesheet" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="presentation">
<div id="presentation-counter"></div>
<div class="slides">
<div class="slide">
<section class="middle">
<h1 style="font-size: 220%;">SVG-edit</h1>
<p><img src="logo.svg" alt="logo" width="30%" height="30%" /></p>
<h2>Pavol Rusnák</h2>
<h3>SVG Open 2010, Paris</h3>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>SVG-edit is ...</h2>
</header>
<ul class="bulleted">
<li>a web-based, JavaScript-driven SVG editor that works in any modern browser</li>
<li>not a full replacement for Inkscape (yet :-P)</li>
<li>licensed under very liberal open source license (Apache License 2.0)</li>
<li>platform for other projects which need to edit SVG documents</li>
<li>pushing browsers to find their limits</li>
<li>always up-to-date</li>
</ul>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 1.0 (13th Feb 2009)</h2>
</header>
<ul class="bulleted">
<li>draw path, line, freehand-circle, rectangle</li>
<li>clear drawn image</li>
<li>delete element</li>
<li>save image</li>
<li>&rarr; Narendra Sisodiya</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/1.0/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.0 (3rd June 2009)</h2>
</header>
<ul class="bulleted">
<li>draw ellipse, square</li>
<li>change line style (stroke-dasharray)</li>
<li>rearranged whole code to utilize OOP</li>
<li>GUI enhancement</li>
<li>&rarr; Pavol Rusnák</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.0/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.1 (17th June 2009)</h2>
</header>
<ul class="bulleted">
<li>tooltips added to all UI elements</li>
<li>edit of fill opacity, stroke opacity, group opacity</li>
<li>selection of elements</li>
<li>move/drag of elements</li>
<li>save SVG file to separate tab</li>
<li>create and edit text elements</li>
<li>contextual panel of tools</li>
<li>change rect radius, font-family, font-size</li>
<li>keystroke handling</li>
<li>&rarr; Jeff Schiller</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.1/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.2 (8th July 2009)</h2>
</header>
<ul class="bulleted">
<li>multiselect mode</li>
<li>undo/redo actions</li>
<li>resize elements</li>
<li>contextual tools for rect, circle, ellipse, line, text elements</li>
<li>some updated button images</li>
<li>stretched the UI to fit the browser window</li>
<li>resizing of the SVG canvas</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.2/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.3 (8th Sept 2009)</h2>
</header>
<ul class="bulleted">
<li>align objects</li>
<li>rotate objects</li>
<li>clone objects</li>
<li>select next/prev object</li>
<li>edit SVG source</li>
<li>gradient picking</li>
<li>polygon mode</li>
<li>&rarr; Alexis Deveria</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.3/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.4 Arbelos (11th Jan 2010)</h2>
</header>
<ul class="bulleted">
<li>include raster images</li>
<li>select non-adjacent elements</li>
<li>group/ungroup</li>
<li>zoom</li>
<li>layers</li>
<li>curve segments in paths</li>
<li>UI localization</li>
<li>wireframe mode</li>
<li>change background</li>
<li>convert shapes to path</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.5 Bicorn (15th June 2010)</h2>
</header>
<ul class="bulleted">
<li>open local files (Firefox 3.6+, Chrome 6+ only)</li>
<li>import SVG into drawing (Firefox 3.6+, Chrome 6+ only)</li>
<li>connector lines and arrows</li>
<li>smoother freehand paths</li>
<li>editing outside the canvas</li>
<li>increased support for SVG elements</li>
<li>add/edit sub-paths</li>
<li>multiple path segment selection</li>
<li>support for foreign markup (MathML)</li>
<li>radial gradients</li>
<li>eye-dropper tool</li>
<li>stroke linejoin and linecap</li>
<li>export to PNG</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.5/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Plugin Architecture</h2>
</header>
<pre>
svgEditor.addExtension('Hello World', function () {
return {
svgicons: 'extensions/helloworld-icon.xml',
buttons: [{...}],
mouseDown () {
...
},
mouseUp (opts) {
...
}
};
});</pre>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Features in progress (for 2.6 Cycloid)</h2>
</header>
<ul class="bulleted">
<li>IE9 support</li>
<li>context menus</li>
<li>path clipping</li>
<li>support for &lt;a&gt; element</li>
<li><a href="http://10k.aneventapart.com/Entry/319">advanced gradient editor</a> (more stops, elliptic fills)</li>
<li>shape library tool</li>
<li>linking off to clipart/image library sites</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Projects based on SVG-edit</h2>
</header>
<ul class="bulleted">
<li>Firefox add-on</li>
<li>Opera widget</li>
<li>Google Wave gadget</li>
<li>Wiki extensions (Dokuwiki, Instiki, MoinMoin, XWiki)</li>
<li><a href="http://www.cloud-canvas.com/cloudcanvas.php">Cloud Canvas</a></li>
<li>Eduvid</li>
<li>Sesame</li>
</ul>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Resources</h2>
</header>
<ul class="bulleted">
<li><a href="https://github.com/SVG-Edit/svgedit">https://github.com/SVG-Edit/svgedit</a> (demos, downloads, source, wiki, issue tracker)</li>
<li>#svg-edit on irc.freenode.net</li>
<li><a href="https://groups.google.com/group/svg-edit">https://groups.google.com/group/svg-edit</a></li>
<li><a href="https://en.wikipedia.org/wiki/SVG-edit">https://en.wikipedia.org/wiki/SVG-edit</a></li>
</ul>
</section>
</div>
<div class="slide">
<section class="middle">
<h2>Thank you!</h2>
<h3>Questions?</h3>
</section>
</div>
</div> <!-- slides -->
</div> <!-- presentation -->
<script src="script.js"></script>
</body>
</html>

View File

@@ -0,0 +1,32 @@
<svg viewBox="0 0 478 472" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="svg_5" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#ffffe0" stop-opacity="1"/>
<stop offset="1" stop-color="#edc39c" stop-opacity="1"/>
</linearGradient>
<linearGradient id="svg_10" x1="0.57031" y1="0.78125" x2="0.28906" y2="0.41406">
<stop offset="0" stop-color="#ff7f00" stop-opacity="1"/>
<stop offset="1" stop-color="#ffff00"/>
</linearGradient>
<linearGradient id="svg_18" x1="0.37891" y1="0.35938" x2="1" y2="1">
<stop offset="0" stop-color="#e0e0e0" stop-opacity="1"/>
<stop offset="1" stop-color="#666666" stop-opacity="1"/>
</linearGradient>
</defs>
<g>
<title>Layer 1</title>
<path d="m68.82031,270.04688l-22,-33l17,-35l34,2l25,15l7,-35l28,-16l25,12l100,102l21,23l-15,35l-36,9l20,49l-31,24l-49,-17l-1,31l-33,21l-31,-19l-13,-35l-30,21l-30,-9l-5,-35l16,-31l-32,-6l-15,-19l3,-36l47,-18z" id="svg_19" fill="#ffffff"/>
<path fill="#1a171a" fill-rule="nonzero" id="path2902" d="m158.96452,155.03685c-25.02071,0 -45.37077,20.35121 -45.37077,45.3775c0,0.72217 0.01794,1.4399 0.0471,2.15645c-0.49339,-0.53604 -0.99355,-1.06085 -1.50603,-1.58452c-8.56077,-8.55519 -19.95982,-13.28413 -32.07432,-13.28413c-12.12122,0 -23.52027,4.72334 -32.08778,13.29646c-17.69347,17.69464 -17.69347,46.4619 0,64.17445c0.51809,0.51697 1.0485,1.0126 1.59015,1.50601c-0.72891,-0.03586 -1.45782,-0.04822 -2.19234,-0.04822c-25.02071,0 -45.37189,20.35117 -45.37189,45.37747c0,25.01398 20.35119,45.36517 45.37189,45.36517c0.72891,0 1.45221,-0.01236 2.1744,-0.04828c-0.5293,0.48221 -1.05412,0.98801 -1.56547,1.49368c-17.70021,17.68906 -17.70021,46.48654 -0.00628,64.18677c8.57872,8.56747 19.96655,13.2785 32.08778,13.2785c12.1145,0 23.5012,-4.71103 32.07433,-13.2785c0.51247,-0.51694 1.01823,-1.04849 1.50603,-1.57895c-0.02915,0.71213 -0.04709,1.44669 -0.04709,2.15759c0,25.01511 20.35007,45.37747 45.37077,45.37747c25.01398,0 45.37079,-20.3624 45.37079,-45.37747c0,-0.7222 -0.01689,-1.44553 -0.05266,-2.18112c0.48105,0.52933 0.97562,1.04849 1.48697,1.56662c8.57982,8.57977 19.97775,13.2908 32.1057,13.2908c12.11003,0 23.51358,-4.71103 32.0687,-13.2785c17.68906,-17.70013 17.68906,-46.48538 0,-64.17441c-0.50577,-0.4946 -1.01141,-1.00034 -1.54306,-1.48248c0.69983,0.03592 1.42316,0.04828 2.16992,0.04828c25.01514,0 45.35284,-20.35123 45.35284,-45.36517c0,-25.02631 -20.33774,-45.37747 -45.35284,-45.37747c-0.74683,0 -1.47009,0.01236 -2.19345,0.04822c0.53152,-0.49341 1.06082,-0.98904 1.59128,-1.50601c8.55521,-8.55521 13.2785,-19.94186 13.2785,-32.07545c0,-12.12793 -4.72336,-23.52028 -13.30319,-32.0934c-8.55515,-8.56076 -19.95866,-13.2841 -32.0687,-13.2841c-12.12122,0 -23.52025,4.72334 -32.08777,13.2841c-0.51137,0.5181 -1.01822,1.04851 -1.5049,1.57895c0.03586,-0.72331 0.05266,-1.43991 0.05266,-2.16881c0,-25.02629 -20.35681,-45.3775 -45.37079,-45.3775m0,20.71901c13.61607,0 24.65851,11.03122 24.65851,24.65849c0,6.62749 -2.651,12.62137 -6.9101,17.04979l0,51.67419l36.53975,-36.53523c0.12001,-6.14418 2.48277,-12.24686 7.18146,-16.94667c4.81305,-4.81305 11.12094,-7.22409 17.44116,-7.22409c6.30228,0 12.61577,2.41104 17.43552,7.22409c9.62166,9.63287 9.62166,25.24948 0,34.87669c-4.69977,4.68634 -10.80803,7.04915 -16.95334,7.18147l-36.5341,36.53305l51.66742,0c4.42841,-4.25351 10.42905,-6.90451 17.08008,-6.90451c13.59137,0 24.62933,11.03799 24.62933,24.66525c0,13.61606 -11.03796,24.66519 -24.62933,24.66519c-6.65106,0 -12.65167,-2.66333 -17.08008,-6.91681l-51.64836,0l36.50273,36.50946c6.16995,0.14465 12.26587,2.50522 16.96568,7.20618c9.6216,9.61487 9.6216,25.23151 0,34.85757c-4.80856,4.81979 -11.13327,7.22974 -17.43556,7.22974c-6.32019,0 -12.63371,-2.40991 -17.44786,-7.22974c-4.68074,-4.68744 -7.04802,-10.79572 -7.17473,-16.94098l-36.53975,-36.53415l0,51.66742c4.25908,4.44635 6.9101,10.43466 6.9101,17.0621c0,13.62729 -11.04243,24.66415 -24.65851,24.66415c-13.62166,0 -24.65848,-11.0369 -24.65848,-24.66415c0,-6.62744 2.64539,-12.61575 6.90335,-17.0621l0,-51.66742l-36.53864,36.54648c-0.12672,6.14413 -2.48838,12.26477 -7.18147,16.94098c-4.81416,4.81873 -11.12206,7.22974 -17.42882,7.22974c-6.31461,0 -12.6225,-2.41101 -17.43555,-7.22974c-9.63284,-9.62833 -9.63284,-25.24277 0,-34.8699c4.68073,-4.67627 10.79012,-7.05026 16.94101,-7.18262l36.533,-36.53302l-51.66632,0c-4.44075,4.25348 -10.42902,6.91681 -17.06211,6.91681c-13.61606,0 -24.65288,-11.04913 -24.65288,-24.66519c0,-13.62726 11.03682,-24.66525 24.65288,-24.66525c6.63309,0 12.62136,2.651 17.06211,6.90451l51.68537,0l-36.55208,-36.54538c-6.14527,-0.12 -12.25354,-2.49403 -16.94775,-7.19377c-9.62611,-9.61493 -9.62611,-25.23715 0,-34.86441c4.81419,-4.81305 11.12769,-7.22406 17.44228,-7.22406c6.30676,0 12.61465,2.41101 17.42883,7.22406c4.69978,4.69307 7.06034,10.80246 7.18144,16.94777l36.5386,36.53299l0,-51.66074c-4.25795,-4.42841 -6.90334,-10.42229 -6.90334,-17.04979c0,-13.62726 11.03682,-24.65848 24.65848,-24.65848"/>
<path d="m188.82031,210.04688l16,-47l155,-148l107,100l-158,156.99999l-44,12l-76,-74z" id="svg_6" fill="url(#svg_10)" stroke="#ffffff" stroke-width="0"/>
<path d="m335.57031,40.29688c-11.5,39.75 55.5,115.25 109.25,98.75l21,-20.99999l-103,-101l-27.25,23.25z" id="svg_11" fill="url(#svg_18)" stroke="#ffffff" stroke-width="0"/>
<rect x="272.80404" y="20.76382" width="42.35197" height="232.66835" id="svg_13" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 293.98, 137.1)" opacity="0.4"/>
<rect x="282.80404" y="22.76382" width="14" height="232.66835" fill="#ffffff" stroke="#ffffff" stroke-width="0" transform="rotate(45.9094, 289.805, 139.1)" opacity="0.4" id="svg_14"/>
<ellipse cx="415.13312" cy="64.38066" id="svg_12" fill="#ea7598" stroke="#ffffff" stroke-width="0" rx="67.79251" ry="34.82026" transform="rotate(39.4735, 415.133, 64.379)"/>
<path d="m212.07031,166.04688c-8.5,47 36.25,103.75 99.25,96.75l-152.5,53.25l53.25,-150z" id="svg_4" fill="url(#svg_5)" stroke="#ffffff" stroke-width="0"/>
<path d="m181.32031,242.54688c0.5,20.5 26.75,45 46.75,48.5l-66.25,20l19.5,-68.5z" id="svg_3" fill="#27382f" stroke="#ffffff" stroke-width="0"/>
</g>
<g>
<title>Layer 2</title>
<path d="m152.82031,317.04688l51,-152l157,-153c40,-12.00001 118,48 105,105l-157,152.99999l-156,47z" id="svg_1" fill="none" stroke="#800000" stroke-width="17"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,338 @@
(() => {
const doc = document;
const disableBuilds = true;
let ctr = 0;
const byId = function (id) {
if (typeof id === 'string') { return doc.getElementById(id); }
return id;
};
const query = function (qry, root) {
if (!qry) { return []; }
if (typeof qry !== 'string') { return [...qry]; }
if (typeof root === 'string') {
root = byId(root);
if (!root) { return []; }
}
root = root || document;
const rootIsDoc = (root.nodeType === 9);
const dcmnt = rootIsDoc ? root : (root.ownerDocument || document);
// rewrite the query to be ID rooted
if (!rootIsDoc || ('>~+'.includes(qry[0]))) {
root.id = root.id || ('qUnique' + (ctr++));
qry = '#' + root.id + ' ' + qry;
}
// don't choke on something like ".yada.yada >"
if ('>~+'.includes(qry.slice(-1))) { qry += ' *'; }
return [...dcmnt.querySelectorAll(qry)];
};
const ua = navigator.userAgent;
const isFF = Number.parseFloat(ua.split('Firefox/')[1]) || undefined;
const isWK = Number.parseFloat(ua.split('WebKit/')[1]) || undefined;
const isOpera = Number.parseFloat(ua.split('Opera/')[1]) || undefined;
const canTransition = (function () {
const ver = Number.parseFloat(ua.split('Version/')[1]) || undefined;
// test to determine if this browser can handle CSS transitions.
const cachedCanTransition =
(isWK || (isFF && isFF > 3.6) || (isOpera && ver >= 10.5));
return function () { return cachedCanTransition; };
})();
//
// Slide class
//
const Slide = function (node, idx) {
this._node = node;
if (idx >= 0) {
this._count = idx + 1;
}
if (this._node) {
this._node.classList.add('slide', 'distant-slide');
}
this._makeCounter();
this._makeBuildList();
};
Slide.prototype = {
_node: null,
_count: 0,
_buildList: [],
_visited: false,
_currentState: '',
_states: [
'distant-slide', 'far-past',
'past', 'current', 'future',
'far-future', 'distant-slide'
],
setState (state) {
if (typeof state !== 'string') {
state = this._states[state];
}
if (state === 'current' && !this._visited) {
this._visited = true;
this._makeBuildList();
}
this._node.classList.remove(...this._states);
this._node.classList.add(state);
this._currentState = state;
// delay first auto run. Really wish this were in CSS.
/*
this._runAutos();
*/
const that = this;
setTimeout(function () { that._runAutos(); }, 400);
},
_makeCounter () {
if (!this._count || !this._node) { return; }
const c = doc.createElement('span');
c.textContent = this._count;
c.className = 'counter';
this._node.append(c);
},
_makeBuildList () {
this._buildList = [];
if (disableBuilds) { return; }
if (this._node) {
this._buildList = query('[data-build] > *', this._node);
}
this._buildList.forEach(function (el) {
el.classList.add('to-build');
});
},
_runAutos () {
if (this._currentState !== 'current') {
return;
}
// find the next auto, slice it out of the list, and run it
let idx = -1;
this._buildList.some(function (n, i) {
if (n.hasAttribute('data-auto')) {
idx = i;
return true;
}
return false;
});
if (idx >= 0) {
const elem = this._buildList.splice(idx, 1)[0];
const transitionEnd = isWK ? 'webkitTransitionEnd' : (isFF ? 'mozTransitionEnd' : 'oTransitionEnd');
const that = this;
if (canTransition()) {
const l = function (evt) {
elem.parentNode.removeEventListener(transitionEnd, l);
that._runAutos();
};
elem.parentNode.addEventListener(transitionEnd, l);
elem.classList.remove('to-build');
} else {
setTimeout(function () {
elem.classList.remove('to-build');
that._runAutos();
}, 400);
}
}
},
buildNext () {
if (!this._buildList.length) {
return false;
}
this._buildList.shift().classList.remove('to-build');
return true;
}
};
//
// SlideShow class
//
const SlideShow = function (slides) {
this._slides = (slides || []).map(function (el, idx) {
return new Slide(el, idx);
});
const h = window.location.hash;
try {
this.current = Number.parseInt(h.split('#slide')[1]);
} catch (e) { /* squelch */ }
this.current = Number.isNaN(this.current) ? 1 : this.current;
const that = this;
doc.addEventListener('keydown',
function (e) { that.handleKeys(e); });
doc.addEventListener('mousewheel',
function (e) { that.handleWheel(e); });
doc.addEventListener('DOMMouseScroll',
function (e) { that.handleWheel(e); });
doc.addEventListener('touchstart',
function (e) { that.handleTouchStart(e); });
doc.addEventListener('touchend',
function (e) { that.handleTouchEnd(e); });
window.addEventListener('popstate',
function (e) { that.go(e.state); });
this._update();
};
SlideShow.prototype = {
_slides: [],
_update (dontPush) {
document.querySelector('#presentation-counter').textContent = this.current;
if (history.pushState) {
if (!dontPush) {
history.pushState(this.current, 'Slide ' + this.current, '#slide' + this.current);
}
} else {
window.location.hash = 'slide' + this.current;
}
for (let x = this.current - 1; x < this.current + 7; x++) {
if (this._slides[x - 4]) {
this._slides[x - 4].setState(Math.max(0, x - this.current));
}
}
},
current: 0,
next () {
if (!this._slides[this.current - 1].buildNext()) {
this.current = Math.min(this.current + 1, this._slides.length);
this._update();
}
},
prev () {
this.current = Math.max(this.current - 1, 1);
this._update();
},
go (num) {
if (history.pushState && this.current !== num) {
history.replaceState(this.current, 'Slide ' + this.current, '#slide' + this.current);
}
this.current = num;
this._update(true);
},
_notesOn: false,
showNotes () {
const notesOn = this._notesOn = !this._notesOn;
query('.notes').forEach(function (el) {
el.style.display = (notesOn) ? 'block' : 'none';
});
},
switch3D () {
document.body.classList.toggle('three-d');
},
handleWheel (e) {
let delta = 0;
if (e.wheelDelta) {
delta = e.wheelDelta / 120;
if (isOpera) {
delta = -delta;
}
} else if (e.detail) {
delta = -e.detail / 3;
}
if (delta > 0) {
this.prev();
return;
}
if (delta < 0) {
this.next();
}
},
handleKeys (e) {
if ((/^(?:input|textarea)$/i).test(e.target.nodeName)) return;
switch (e.keyCode) {
case 37: // left arrow
this.prev(); break;
case 39: // right arrow
case 32: // space
this.next(); break;
case 50: // 2
this.showNotes(); break;
case 51: // 3
this.switch3D(); break;
}
},
_touchStartX: 0,
handleTouchStart (e) {
this._touchStartX = e.touches[0].pageX;
},
handleTouchEnd (e) {
const delta = this._touchStartX - e.changedTouches[0].pageX;
const SWIPE_SIZE = 150;
if (delta > SWIPE_SIZE) {
this.next();
} else if (delta < -SWIPE_SIZE) {
this.prev();
}
}
};
// Initialize
/* const slideshow = */ new SlideShow(query('.slide')); // eslint-disable-line no-new
document.querySelector('#toggle-counter').addEventListener('click', toggleCounter);
document.querySelector('#toggle-size').addEventListener('click', toggleSize);
document.querySelector('#toggle-transitions').addEventListener('click', toggleTransitions);
document.querySelector('#toggle-gradients').addEventListener('click', toggleGradients);
const counters = document.querySelectorAll('.counter');
const slides = document.querySelectorAll('.slide');
/**
* Show or hide the counters.
* @returns {void}
*/
function toggleCounter () {
[...counters].forEach(function (el) {
el.style.display = (el.offsetHeight) ? 'none' : 'block';
});
}
/**
* Add or remove `reduced` (size) class.
* @returns {void}
*/
function toggleSize () {
[...slides].forEach(function (el) {
if (!(/reduced/).test(el.className)) {
el.classList.add('reduced');
} else {
el.classList.remove('reduced');
}
});
}
/**
* Add or remove `no-transitions` class.
* @returns {void}
*/
function toggleTransitions () {
[...slides].forEach(function (el) {
if (!(/no-transitions/).test(el.className)) {
el.classList.add('no-transitions');
} else {
el.classList.remove('no-transitions');
}
});
}
/**
* Add or remove `no-gradients` class.
* @returns {void}
*/
function toggleGradients () {
[...slides].forEach(function (el) {
if (!(/no-gradients/).test(el.className)) {
el.classList.add('no-gradients');
} else {
el.classList.remove('no-gradients');
}
});
}
})();

View File

@@ -0,0 +1,395 @@
body {
font: 20px "Lucida Grande", "Trebuchet MS", Verdana, sans-serif;
padding: 0;
margin: 0;
width: 100%;
height: 100%;
position: absolute;
left: 0px; top: 0px;
}
.presentation {
position: absolute;
height: 100%;
width: 100%;
left: 0px;
top: 0px;
display: block;
overflow: hidden;
background: #778;
}
.slides {
width: 100%;
height: 100%;
left: 0;
top: 0;
position: absolute;
display: block;
-webkit-transition: -webkit-transform 1s ease-in-out;
-moz-transition: -moz-transform 1s ease-in-out;
-o-transition: -o-transform 1s ease-in-out;
transition: transform 1s ease-in-out;
/* so it's visible in the iframe. */
-webkit-transform: scale(0.8);
-moz-transform: scale(0.8);
-o-transform: scale(0.8);
transform: scale(0.8);
}
.slide {
display: none;
position: absolute;
overflow: hidden;
width: 900px;
height: 700px;
left: 50%;
top: 50%;
margin-top: -350px;
background-color: #eee;
background: -webkit-gradient(linear, left bottom, left top, from(#bbd), to(#fff));
background: -moz-linear-gradient(bottom, #bbd, #fff);
background: linear-gradient(bottom, #bbd, #fff);
-webkit-transition: all 0.25s ease-in-out;
-moz-transition: all 0.25s ease-in-out;
-o-transition: all 0.25s ease-in-out;
transition: all 0.25s ease-in-out;
-webkit-transform: scale(1);
-moz-transform: scale(1);
-o-transform: scale(1);
transform: scale(1);
}
.slide:nth-child(even) {
-moz-border-radius: 20px 0;
-khtml-border-radius: 20px 0;
border-radius: 20px 0; /* includes Opera 10.5+ */
-webkit-border-top-left-radius: 20px;
-webkit-border-bottom-right-radius: 20px;
}
.slide:nth-child(odd) {
-moz-border-radius: 0 20px;
-khtml-border-radius: 0 20px;
border-radius: 0 20px;
-webkit-border-top-right-radius: 20px;
-webkit-border-bottom-left-radius: 20px;
}
.slide p, .slide textarea {
font-size: 120%;
}
.slide .counter {
color: #999999;
position: absolute;
left: 20px;
bottom: 20px;
display: block;
font-size: 70%;
}
.slide.title > .counter,
.slide.segue > .counter,
.slide.mainTitle > .counter {
display: none;
}
.force-render {
display: block;
visibility: hidden;
}
.slide.far-past {
display: block;
margin-left: -2400px;
}
.slide.past {
visibility: visible;
display: block;
margin-left: -1400px;
}
.slide.current {
visibility: visible;
display: block;
margin-left: -450px;
}
.slide.future {
visibility: visible;
display: block;
margin-left: 500px;
}
.slide.far-future {
display: block;
margin-left: 1500px;
}
body.three-d div.slides {
-webkit-transform: translateX(50px) scale(0.8) rotateY(10deg);
-moz-transform: translateX(50px) scale(0.8) rotateY(10deg);
-o-transform: translateX(50px) scale(0.8) rotateY(10deg);
transform: translateX(50px) scale(0.8) rotateY(10deg);
}
/* Content */
@font-face { font-family: 'Junction'; src: url(src/Junction02.otf); }
@font-face { font-family: 'LeagueGothic'; src: url(src/LeagueGothic.otf); }
header {
font-family: 'Droid Sans';
font-weight: normal;
letter-spacing: -.05em;
text-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px;
left: 30px;
top: 25px;
margin: 0;
padding: 0;
font-size: 140%;
}
h1 {
font-size: 140%;
display: inline;
font-weight: normal;
padding: 0;
margin: 0;
}
h2 {
font-family: 'Droid Sans';
color: black;
font-size: 120%;
padding: 0;
margin: 20px 0;
}
h2:first-child {
margin-top: 0;
}
section, footer {
font-family: 'Droid Sans';
color: #3f3f3f;
text-shadow: rgba(0, 0, 0, 0.2) 0 2px 5px;
margin: 100px 30px 0;
display: block;
overflow: hidden;
}
footer {
font-size: 100%;
margin: 20px 0 0 30px;
}
a {
color: inherit;
display: inline-block;
text-decoration: none;
line-height: 110%;
border-bottom: 2px solid #3f3f3f;
}
ul {
margin: 0;
padding: 0;
}
li {
margin: 2%;
}
button {
font-size: 100%;
}
pre button {
margin: 2px;
}
section.left {
float: left;
width: 390px;
}
section.small {
font-size: 24px;
}
section.small ul {
margin: 0 0 0 15px;
padding: 0;
}
section.small li {
padding-bottom: 0;
}
section.middle {
line-height: 2em;
text-align: center;
display: table-cell;
vertical-align: middle;
height: 700px;
width: 900px;
}
pre {
text-align: left;
font-family: 'Droid Sans Mono', Courier;
font-size: 80%;
padding: 10px 20px;
background: rgba(255, 0, 0, 0.05);
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
border: 1px solid rgba(255, 0, 0, 0.2);
}
pre select {
font-family: Monaco, Courier;
border: 1px solid #c61800;
}
input {
font-size: 100%;
margin-right: 10px;
font-family: Helvetica;
padding: 3px;
}
input[type="range"] {
width: 100%;
}
button {
margin: 20px 10px 0 0;
font-family: Verdana;
}
button.large {
font-size: 32px;
}
pre b {
font-weight: normal;
color: #c61800;
text-shadow: #c61800 0 0 1px;
/*letter-spacing: -1px;*/
}
pre em {
font-weight: normal;
font-style: normal;
color: #18a600;
text-shadow: #18a600 0 0 1px;
}
pre input[type="range"] {
height: 6px;
cursor: pointer;
width: auto;
}
div.example {
display: block;
padding: 10px 20px;
color: black;
background: rgba(255, 255, 255, 0.4);
-webkit-border-radius: 8px;
-khtml-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
margin-bottom: 10px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
video {
-moz-border-radius: 8px;
-khtml-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.key {
font-family: 'Droid Sans';
color: black;
display: inline-block;
padding: 6px 10px 3px 10px;
font-size: 100%;
line-height: 30px;
text-shadow: none;
letter-spacing: 0;
bottom: 10px;
position: relative;
-moz-border-radius: 10px;
-khtml-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
background: white;
box-shadow: rgba(0, 0, 0, 0.1) 0 2px 5px;
-webkit-box-shadow: rgba(0, 0, 0, 0.1) 0 2px 5px;
-moz-box-shadow: rgba(0, 0, 0, 0.1) 0 2px 5px;
-o-box-shadow: rgba(0, 0, 0, 0.1) 0 2px 5px;
}
.key { font-family: Arial; }
:not(header) > .key {
margin: 0 5px;
bottom: 4px;
}
.two-column {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 2;
}
.stroke {
-webkit-text-stroke-color: red;
-webkit-text-stroke-width: 1px;
} /* currently webkit-only */
.center {
text-align: center;
}
#presentation-counter {
color: #ccc;
font-size: 70%;
letter-spacing: 1px;
position: absolute;
top: 40%;
left: 0;
width: 100%;
text-align: center;
}
div:not(.current).reduced {
-webkit-transform: scale(0.8);
-moz-transform: scale(0.8);
-o-transform: scale(0.8);
transform: scale(0.8);
}
.no-transitions {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.no-gradients {
background: none;
background-color: #fff;
}
ul.bulleted {
padding-left: 30px;
}