GithubHelp home page GithubHelp logo

h2h's Introduction

(ns h2h
  (:gen-class))

(comment
  html2hiccup.core=> (def html "<a>asd</a><img<v>valid tags only</v>>dsa</img>")
  #'html2hiccup.core/html
  html2hiccup.core=> html
  "<a>asd</a><img<v>valid tags only</v>>dsa</img>"
  html2hiccup.core=> (h2h html)
  ([:a "asd"] [:v "valid tags only"])
  html2hiccup.core=>
  ) ;; COMMENT

(defn html2hiccup
  "Converts full tag elemnts <t></t>"
  [str-html]
  (let
      [tags-open (map #(hash-map
                        (keyword (last %))
                        '{})
                      (re-seq #"<(\w+)>"
                              str-html))
       tags-close (map #(hash-map
                         (keyword (last %))
                         '{})
                       (re-seq #"<(/\w+)>"
                               str-html))
       tags-content (let
                        [tags (lazy-seq
                               (.split str-html
                                       ">"))
                         stags (filter #(.contains
                                         (str %)
                                         "</")
                                       tags)]
                      (map #(first
                             (.split
                              (str %)
                              "<"))
                           stags))
       html-tags (partition 3
                            (interleave
                             (flatten tags-content)
                             (flatten tags-open)
                             (flatten tags-close)))]
     (lazy-seq
      (for [ht html-tags
            :let
            [content (first ht)
             opent (first
                    (keys
                     (second ht)))
             closet (last ht)]]
        [opent
         content]))))
        
(defn h2h [str-html] (html2hiccup str-html))

h2h's People

Contributors

runexec avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.