Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. Site Bugs / Suggestions
  4. SVG in articles?

SVG in articles?

Scheduled Pinned Locked Moved Site Bugs / Suggestions
questiongraphicslounge
13 Posts 6 Posters 16 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    Jerry Evans
    wrote on last edited by
    #1

    Hello CP It would be great to be able to upload and link to SVG files for decent vector imaging. I recently tried adding some SVG UML diagrams to an article but had to drop back to making (highly unsatisfactory) JPEGs first. TIA! Jerry P.S A slightly more general question was asked some time back but the SVG aspect remains unanswered ('09 actually).

    Kornfeld Eliyahu PeterK C 3 Replies Last reply
    0
    • J Jerry Evans

      Hello CP It would be great to be able to upload and link to SVG files for decent vector imaging. I recently tried adding some SVG UML diagrams to an article but had to drop back to making (highly unsatisfactory) JPEGs first. TIA! Jerry P.S A slightly more general question was asked some time back but the SVG aspect remains unanswered ('09 actually).

      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu Peter
      wrote on last edited by
      #2

      Did you tried to include your SVG inside the HTML of your article? It works perfectly as I can see...

      Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.

      "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

      J 1 Reply Last reply
      0
      • J Jerry Evans

        Hello CP It would be great to be able to upload and link to SVG files for decent vector imaging. I recently tried adding some SVG UML diagrams to an article but had to drop back to making (highly unsatisfactory) JPEGs first. TIA! Jerry P.S A slightly more general question was asked some time back but the SVG aspect remains unanswered ('09 actually).

        C Offline
        C Offline
        Chris Maunder
        wrote on last edited by
        #3

        SVG is a leaky boat so unfortunately we can't allow SVG uploads. Take a look at this[^]

        cheers Chris Maunder

        J 1 Reply Last reply
        0
        • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

          Did you tried to include your SVG inside the HTML of your article? It works perfectly as I can see...

          Skipper: We'll fix it. Alex: Fix it? How you gonna fix this? Skipper: Grit, spit and a whole lotta duct tape.

          J Offline
          J Offline
          Jerry Evans
          wrote on last edited by
          #4

          Hah! No I did not. Excellent suggestion, thanks.

          1 Reply Last reply
          0
          • C Chris Maunder

            SVG is a leaky boat so unfortunately we can't allow SVG uploads. Take a look at this[^]

            cheers Chris Maunder

            J Offline
            J Offline
            Jerry Evans
            wrote on last edited by
            #5

            Yes, it does have that potential. No chance of applying a sanitizer perhaps? https://github.com/alister-/SVG-Sanitizer for example? Thanks for listening :)

            C 1 Reply Last reply
            0
            • J Jerry Evans

              Yes, it does have that potential. No chance of applying a sanitizer perhaps? https://github.com/alister-/SVG-Sanitizer for example? Thanks for listening :)

              C Offline
              C Offline
              Chris Maunder
              wrote on last edited by
              #6

              Spend the 30 mins converting that to C# for me and yep, I'll do it.

              cheers Chris Maunder

              J 2 Replies Last reply
              0
              • C Chris Maunder

                Spend the 30 mins converting that to C# for me and yep, I'll do it.

                cheers Chris Maunder

                J Offline
                J Offline
                Jerry Evans
                wrote on last edited by
                #7

                It's a deal. I'll ping you here when it's ready :)

                F 1 Reply Last reply
                0
                • C Chris Maunder

                  Spend the 30 mins converting that to C# for me and yep, I'll do it.

                  cheers Chris Maunder

                  J Offline
                  J Offline
                  Jerry Evans
                  wrote on last edited by
                  #8

                  Yo. Here it is.

                  /*

                  A really simple SVG cleaner for the CodeProject
                  
                  This is a \*big\* thanks to Chris Maunder and the team for their great work 
                  
                      Based on an original PHP implementation here:
                  
                      https://github.com/alister-/SVG-Sanitizer
                  
                  Copyright (c) Jerry Evans, 2015
                  All rights reserved.
                  
                  The MIT License (MIT)
                  
                  Copyright (c) 2015 Jerry Evans
                  
                  Permission is hereby granted, free of charge, to any person obtaining a copy
                  of this software and associated documentation files (the "Software"), to deal
                  in the Software without restriction, including without limitation the rights
                  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                  copies of the Software, and to permit persons to whom the Software is
                  furnished to do so, subject to the following conditions:
                  
                  The above copyright notice and this permission notice shall be included in
                  all copies or substantial portions of the Software.
                  
                  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                  THE SOFTWARE.
                  

                  */

                  using System;
                  using System.Collections.Generic;
                  using System.Linq;
                  using System.Text;
                  using System.Xml;

                  namespace svgcheck
                  {
                  class SVGChecker
                  {
                  /// /// dictionary of string to hashset maps valid SVG tags to valid attributes. All else is discarded (!)
                  ///
                  static Dictionary> dict = new Dictionary>()
                  {
                  { "a", new HashSet{"class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "href", "xlink:href", "xlink:title"} },
                  { "circle", new HashSet{"class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "r", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit

                  F 1 Reply Last reply
                  0
                  • J Jerry Evans

                    It's a deal. I'll ping you here when it's ready :)

                    F Offline
                    F Offline
                    Forogar
                    wrote on last edited by
                    #9

                    I'll help, if you need any. SVG is fun and now supported in all major browsers! Yeah!

                    - I would love to change the world, but they won’t give me the source code.

                    1 Reply Last reply
                    0
                    • J Jerry Evans

                      Yo. Here it is.

                      /*

                      A really simple SVG cleaner for the CodeProject
                      
                      This is a \*big\* thanks to Chris Maunder and the team for their great work 
                      
                          Based on an original PHP implementation here:
                      
                          https://github.com/alister-/SVG-Sanitizer
                      
                      Copyright (c) Jerry Evans, 2015
                      All rights reserved.
                      
                      The MIT License (MIT)
                      
                      Copyright (c) 2015 Jerry Evans
                      
                      Permission is hereby granted, free of charge, to any person obtaining a copy
                      of this software and associated documentation files (the "Software"), to deal
                      in the Software without restriction, including without limitation the rights
                      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                      copies of the Software, and to permit persons to whom the Software is
                      furnished to do so, subject to the following conditions:
                      
                      The above copyright notice and this permission notice shall be included in
                      all copies or substantial portions of the Software.
                      
                      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
                      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                      THE SOFTWARE.
                      

                      */

                      using System;
                      using System.Collections.Generic;
                      using System.Linq;
                      using System.Text;
                      using System.Xml;

                      namespace svgcheck
                      {
                      class SVGChecker
                      {
                      /// /// dictionary of string to hashset maps valid SVG tags to valid attributes. All else is discarded (!)
                      ///
                      static Dictionary> dict = new Dictionary>()
                      {
                      { "a", new HashSet{"class", "clip-path", "clip-rule", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "style", "systemLanguage", "transform", "href", "xlink:href", "xlink:title"} },
                      { "circle", new HashSet{"class", "clip-path", "clip-rule", "cx", "cy", "fill", "fill-opacity", "fill-rule", "filter", "id", "mask", "opacity", "r", "requiredFeatures", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit

                      F Offline
                      F Offline
                      Forogar
                      wrote on last edited by
                      #10

                      Excellent work! :-D

                      - I would love to change the world, but they won’t give me the source code.

                      1 Reply Last reply
                      0
                      • J Jerry Evans

                        Hello CP It would be great to be able to upload and link to SVG files for decent vector imaging. I recently tried adding some SVG UML diagrams to an article but had to drop back to making (highly unsatisfactory) JPEGs first. TIA! Jerry P.S A slightly more general question was asked some time back but the SVG aspect remains unanswered ('09 actually).

                        C Offline
                        C Offline
                        Chris Maunder
                        wrote on last edited by
                        #11

                        SVG support has been added.

                        cheers Chris Maunder

                        P S 2 Replies Last reply
                        0
                        • C Chris Maunder

                          SVG support has been added.

                          cheers Chris Maunder

                          P Offline
                          P Offline
                          Pete OHanlon
                          wrote on last edited by
                          #12

                          Now that IS agile.

                          1 Reply Last reply
                          0
                          • C Chris Maunder

                            SVG support has been added.

                            cheers Chris Maunder

                            S Offline
                            S Offline
                            SoMad
                            wrote on last edited by
                            #13

                            :thumbsup: That is awesome! Since I know it is possible to do inline SVGs (at least in QA answers), you should probably make sure your new sanitizer handles that as well. Last year I answered a question in QA where I fiddled with inline SVG. I got it to display the image, but once I tried modifying my answer, the HTML control would HTML encode the embedded image tag so it wouldn't display. I figured it was some sort of precautionary measure you guys had implemented. Raster to Vector Image without autotrace - Solution 3[^] Here is another answer where I added an inline SVG: SVG 2 PDF conversion in python using the svglib package does not work on my svg file - Solution 1[^] Soren Madsen

                            "When you don't know what you're doing it's best to do it quickly" - Jase #DuckDynasty

                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • World
                            • Users
                            • Groups