hateda2md 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +8 -4
- data/lib/hateda2md/converter.rb +40 -9
- data/lib/hateda2md/version.rb +1 -1
- metadata +8 -8
    
        data/README.md
    CHANGED
    
    | @@ -24,8 +24,8 @@ Or install it yourself as: | |
| 24 24 |  | 
| 25 25 | 
             
                mdb = HateDa::MdBuilder.new('hatena-diary.xml')
         | 
| 26 26 |  | 
| 27 | 
            -
                # set  | 
| 28 | 
            -
                #  | 
| 27 | 
            +
                # set pre-defined filters
         | 
| 28 | 
            +
                # 定義済みフィルタをセットする
         | 
| 29 29 | 
             
                mdb.set :title
         | 
| 30 30 | 
             
                mdb.set :subtitle
         | 
| 31 31 | 
             
                mdb.set :link
         | 
| @@ -56,9 +56,13 @@ To set all pre-defined filters, you can call `MdBuilder#pre_defined_filters` or | |
| 56 56 | 
             
                # すべての定義済みフィルタをセットする
         | 
| 57 57 | 
             
                filters.each { |f| mdb.set f }
         | 
| 58 58 |  | 
| 59 | 
            -
             | 
| 59 | 
            +
            Filters of super_pre, footnote, hatebu, amazon, youtube, gist are create a liquid tag. Only for hatebu, youtube, gist, you can select html code to be created, instead of liquid tag by passing false as its second parameter. 
         | 
| 60 60 |  | 
| 61 | 
            -
             | 
| 61 | 
            +
            super_pre, footnote, hatebu, amazon, youtube, gistの各フィルタはliquid tagを生成します。hatebu, youtube, gistのフィルタに関しては、その第2引数にfalseを渡すことで、liquid tagに代えてhtmlコードを生成させることができます。
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            You can define your filters using `MdBuilder#filter` method.
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            `MdBuilder#filter`を使って、独自フィルタを定義できます。
         | 
| 62 66 |  | 
| 63 67 | 
             
                # define a filter to convert wikipedia hatena tag to a correspond liquid tag
         | 
| 64 68 | 
             
                # はてな記法によるwikipediaタグをliquid tagに変換するフィルタを定義する
         | 
    
        data/lib/hateda2md/converter.rb
    CHANGED
    
    | @@ -86,13 +86,13 @@ module HateDa::Converter | |
| 86 86 |  | 
| 87 87 | 
             
              def blockquote
         | 
| 88 88 | 
             
                filter(/^>>\n(.*?)^<<$/m) do |md|
         | 
| 89 | 
            -
                  "\n" + md[1]. | 
| 89 | 
            +
                  "\n" + md[1].gsub(/^.*$/, '> \0')
         | 
| 90 90 | 
             
                end
         | 
| 91 91 | 
             
              end
         | 
| 92 92 |  | 
| 93 93 | 
             
              def pre
         | 
| 94 94 | 
             
                filter(/^>\|\n(.*?)^\|<$/m) do |md|
         | 
| 95 | 
            -
                  "\n" + md[1]. | 
| 95 | 
            +
                  "\n" + md[1].gsub(/^.*$/, '    \0')
         | 
| 96 96 | 
             
                end
         | 
| 97 97 | 
             
              end
         | 
| 98 98 |  | 
| @@ -130,10 +130,14 @@ module HateDa::Converter | |
| 130 130 | 
             
                end
         | 
| 131 131 | 
             
              end
         | 
| 132 132 |  | 
| 133 | 
            -
              def hatebu
         | 
| 133 | 
            +
              def hatebu(liquid=true)
         | 
| 134 134 | 
             
                url_r = URI.regexp(['http', 'https'])
         | 
| 135 135 | 
             
                filter(/\[(#{url_r}):bookmark\]/) do |md|
         | 
| 136 | 
            -
                   | 
| 136 | 
            +
                  if liquid
         | 
| 137 | 
            +
                    "{% hatebu #{md[1]} %}"
         | 
| 138 | 
            +
                  else
         | 
| 139 | 
            +
                    hatebu_html(md[1])
         | 
| 140 | 
            +
                  end
         | 
| 137 141 | 
             
                end
         | 
| 138 142 | 
             
              end
         | 
| 139 143 |  | 
| @@ -152,9 +156,13 @@ module HateDa::Converter | |
| 152 156 | 
             
                end
         | 
| 153 157 | 
             
              end
         | 
| 154 158 |  | 
| 155 | 
            -
              def youtube
         | 
| 159 | 
            +
              def youtube(liquid=true)
         | 
| 156 160 | 
             
                filter(/[\(\[]?\s*https?:\/\/.*?youtube.*?\?v=([a-zA-Z0-9_-]+):movie\s*[\]\)]?/) do |md|
         | 
| 157 | 
            -
                   | 
| 161 | 
            +
                  if liquid
         | 
| 162 | 
            +
                    "{% youtube #{md[1]} %}"
         | 
| 163 | 
            +
                  else
         | 
| 164 | 
            +
                    youtube_html(md)
         | 
| 165 | 
            +
                  end
         | 
| 158 166 | 
             
                end
         | 
| 159 167 | 
             
              end
         | 
| 160 168 |  | 
| @@ -167,10 +175,33 @@ module HateDa::Converter | |
| 167 175 | 
             
                end
         | 
| 168 176 | 
             
              end
         | 
| 169 177 |  | 
| 170 | 
            -
              def gist
         | 
| 178 | 
            +
              def gist(liquid=true)
         | 
| 171 179 | 
             
                host = %r{https?://gist.github.com/}
         | 
| 172 180 | 
             
                filter(/<script src=\"#{host}(\d+)\.js\?file=(.*?)\"><\/script>/) do |md|
         | 
| 173 | 
            -
                   | 
| 181 | 
            +
                  if liquid
         | 
| 182 | 
            +
                    "{% gist #{md[1]} #{md[2]} %}"
         | 
| 183 | 
            +
                  else
         | 
| 184 | 
            +
                    gist_html(md)
         | 
| 185 | 
            +
                  end
         | 
| 186 | 
            +
                end
         | 
| 187 | 
            +
              end
         | 
| 188 | 
            +
             | 
| 189 | 
            +
              def hatebu_html(md)
         | 
| 190 | 
            +
                url, title = md.to_s.match(/(https?:\/\/\S+)(.*)/){ [$1, $2] }
         | 
| 191 | 
            +
                bm_url = %{<a href="http://b.hatena.ne.jp/entry/#{url}" class="http-bookmark" target="_blank"><img src="http://b.hatena.ne.jp/entry/image/#{url}" alt="" class="http-bookmark"></a>}
         | 
| 192 | 
            +
             | 
| 193 | 
            +
                unless title.nil?
         | 
| 194 | 
            +
                  %{<a href="#{url}" target="_blank">#{title.strip} </a>} + bm_url
         | 
| 195 | 
            +
                else
         | 
| 196 | 
            +
                  bm_url
         | 
| 174 197 | 
             
                end
         | 
| 175 198 | 
             
              end
         | 
| 176 | 
            -
             | 
| 199 | 
            +
             | 
| 200 | 
            +
              def gist_html(md)
         | 
| 201 | 
            +
                %{<div><script src="https://gist.github.com/#{md[1]}.js?file=#{md[2]}"></script></div>%}
         | 
| 202 | 
            +
              end
         | 
| 203 | 
            +
             | 
| 204 | 
            +
              def youtube_html(md)
         | 
| 205 | 
            +
                %{<iframe width="560" height="420" src="http://www.youtube.com/embed/#{md[1]}?color=white&theme=light"></iframe>}
         | 
| 206 | 
            +
              end
         | 
| 207 | 
            +
            end
         | 
    
        data/lib/hateda2md/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: hateda2md
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012-05- | 
| 12 | 
            +
            date: 2012-05-06 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: rspec
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &2153731440 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,10 +21,10 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :development
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *2153731440
         | 
| 25 25 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 26 | 
             
              name: nokogiri
         | 
| 27 | 
            -
              requirement: & | 
| 27 | 
            +
              requirement: &2153730980 !ruby/object:Gem::Requirement
         | 
| 28 28 | 
             
                none: false
         | 
| 29 29 | 
             
                requirements:
         | 
| 30 30 | 
             
                - - ! '>='
         | 
| @@ -32,10 +32,10 @@ dependencies: | |
| 32 32 | 
             
                    version: '0'
         | 
| 33 33 | 
             
              type: :runtime
         | 
| 34 34 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements: * | 
| 35 | 
            +
              version_requirements: *2153730980
         | 
| 36 36 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 37 | 
             
              name: gsub_filter
         | 
| 38 | 
            -
              requirement: & | 
| 38 | 
            +
              requirement: &2153730560 !ruby/object:Gem::Requirement
         | 
| 39 39 | 
             
                none: false
         | 
| 40 40 | 
             
                requirements:
         | 
| 41 41 | 
             
                - - ! '>='
         | 
| @@ -43,7 +43,7 @@ dependencies: | |
| 43 43 | 
             
                    version: '0'
         | 
| 44 44 | 
             
              type: :runtime
         | 
| 45 45 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements: * | 
| 46 | 
            +
              version_requirements: *2153730560
         | 
| 47 47 | 
             
            description: Convert Hatena-Diary XML file to Markdown files for Jekyll
         | 
| 48 48 | 
             
            email:
         | 
| 49 49 | 
             
            - postagie@gmail.com
         |