enwrite 0.2.3 → 0.2.4
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.
- checksums.yaml +4 -4
- data/README.md +64 -28
- data/enwrite.gemspec +3 -3
- data/lib/enwrite.rb +1 -1
- data/lib/output/hugo.rb +11 -15
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 41ff65583cf68c9ac604768f8b61527ef296e2e0
         | 
| 4 | 
            +
              data.tar.gz: a71a84427e5d203841a7f8be48a5cf72386604f4
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a0ad71fde41b53fb975e1966ad07c62edcc874066cbf94eb7fc0fabd78cca3fa7089ed7c71d580bd4164cae2e48282433399a2f0d3cc46c20032a116061c0dd1
         | 
| 7 | 
            +
              data.tar.gz: 3da4d70e1ddfddde94df2f9f41a6c7f3336120effde5aaacb1606c6dda9281b28c2b661442696278ca3b6d22b2980d6b56af1d6a066864a327835f9db9a641bb
         | 
    
        data/README.md
    CHANGED
    
    | @@ -15,13 +15,16 @@ provide the authentication code to Enwrite. | |
| 15 15 | 
             
            For now it produces output suitable for [Hugo](http://gohugo.io). You
         | 
| 16 16 | 
             
            need to have an existing Hugo install.
         | 
| 17 17 |  | 
| 18 | 
            -
            ##  | 
| 18 | 
            +
            ## Installation
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                $ sudo gem install enwrite
         | 
| 19 21 |  | 
| 20 | 
            -
             | 
| 22 | 
            +
            Make sure you have Hugo installed:
         | 
| 23 | 
            +
            http://gohugo.io/overview/installing/
         | 
| 21 24 |  | 
| 22 | 
            -
             | 
| 25 | 
            +
            ## Getting started
         | 
| 23 26 |  | 
| 24 | 
            -
            Create a new Hugo site for testing | 
| 27 | 
            +
            Create a new Hugo site for testing:
         | 
| 25 28 |  | 
| 26 29 | 
             
                $ cd ~/tmp
         | 
| 27 30 | 
             
                $ hugo new site my-hugo-blog
         | 
| @@ -30,7 +33,7 @@ Create a new Hugo site for testing (if you don't have one already): | |
| 30 33 | 
             
            Populate it with contents from Evernote:
         | 
| 31 34 |  | 
| 32 35 | 
             
                $ enwrite --help
         | 
| 33 | 
            -
                Enwrite v0.2. | 
| 36 | 
            +
                Enwrite v0.2.3
         | 
| 34 37 |  | 
| 35 38 | 
             
                Usage: /usr/local/bin/enwrite [options] (at least one of -n or -s has to be specified)
         | 
| 36 39 |  | 
| @@ -56,8 +59,8 @@ Populate it with contents from Evernote: | |
| 56 59 | 
             
                                                     interactively.
         | 
| 57 60 | 
             
                        --config-tag TAG             Specify tag to determine config notes
         | 
| 58 61 | 
             
                                                     (default: _enwrite_config)
         | 
| 59 | 
            -
             | 
| 60 | 
            -
                    - | 
| 62 | 
            +
                    -v, --verbose                    Verbose mode
         | 
| 63 | 
            +
                    -d, --debug                      Debug output mode
         | 
| 61 64 | 
             
                        --version                    Show version
         | 
| 62 65 | 
             
                    -h, --help                       Shows this help message
         | 
| 63 66 |  | 
| @@ -83,6 +86,8 @@ file types are stored and linked to with their filename. | |
| 83 86 | 
             
            The following tags trigger special behavior if found within the
         | 
| 84 87 | 
             
            selected notes:
         | 
| 85 88 |  | 
| 89 | 
            +
            ### Globally-recognized tags
         | 
| 90 | 
            +
             | 
| 86 91 | 
             
            - `page`: publish the note as a page instead of a blog post.
         | 
| 87 92 | 
             
            - `post` (or none): publish the note as a blog post. This is the
         | 
| 88 93 | 
             
            default.
         | 
| @@ -94,6 +99,7 @@ default. | |
| 94 99 | 
             
              about this will be written soon). For example, if you wanted blog
         | 
| 95 100 | 
             
              posts to be stored in the Hugo `blog` category instead of `post`,
         | 
| 96 101 | 
             
              you could include this:
         | 
| 102 | 
            +
             | 
| 97 103 | 
             
              ```
         | 
| 98 104 | 
             
              hugo:
         | 
| 99 105 | 
             
                  tag_to_type:
         | 
| @@ -101,38 +107,68 @@ default. | |
| 101 107 | 
             
                      post: blog/
         | 
| 102 108 | 
             
                      page:
         | 
| 103 109 | 
             
              ```
         | 
| 110 | 
            +
             | 
| 111 | 
            +
            ### Hugo-specific tags
         | 
| 112 | 
            +
             | 
| 113 | 
            +
            The following tags are recognized by the Hugo output plugin (the only
         | 
| 114 | 
            +
            one available at the moment):
         | 
| 115 | 
            +
             | 
| 104 116 | 
             
            - `_enwrite_files_hugo`: text in these notes is ignored, but any
         | 
| 105 117 | 
             
              attachments are stored under the Hugo output directory. `.tar.gz`
         | 
| 106 118 | 
             
              files will be unpacked under that directory, all others will be
         | 
| 107 | 
            -
              stored as-is.
         | 
| 108 | 
            -
             | 
| 109 | 
            -
             | 
| 110 | 
            -
             | 
| 111 | 
            -
             | 
| 112 | 
            -
             | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 115 | 
            -
             | 
| 119 | 
            +
              stored as-is. You can use this to have Hugo config files, themes,
         | 
| 120 | 
            +
              static contents or anything else automatically installed by Enwrite
         | 
| 121 | 
            +
              as well. Please note that any "files" notes *must also* be included
         | 
| 122 | 
            +
              in the selection criteria specified by `-n`, `-t` or `-s` (e.g. if
         | 
| 123 | 
            +
              you are using `-t published`, your files notes must also be tagged
         | 
| 124 | 
            +
              `published` or they will be ignored).
         | 
| 125 | 
            +
             | 
| 126 | 
            +
              Any text in files notes will be ignored, so you can use it to make
         | 
| 127 | 
            +
              it human-readable. For example, I have the following note in the
         | 
| 128 | 
            +
              notebook that powers http://zzamboni.org/new/, so I can start from a
         | 
| 129 | 
            +
              plain Hugo site and have it fully customized after running
         | 
| 130 | 
            +
              `enwrite`:
         | 
| 131 | 
            +
              
         | 
| 132 | 
            +
              
         | 
| 116 133 |  | 
| 117 | 
            -
            -  | 
| 118 | 
            -
               | 
| 119 | 
            -
             | 
| 120 | 
            -
               | 
| 134 | 
            +
            - Any tags of the form `_foo=bar` are inserted into the frontmatter
         | 
| 135 | 
            +
              for the generated posts as field `foo` with value `bar`. This might
         | 
| 136 | 
            +
              be used to add information (e.g. a custom `slug`, specify `weight` for
         | 
| 137 | 
            +
              ordeing of pages, or any other field which may control the behavior or
         | 
| 138 | 
            +
              output produced.
         | 
| 121 139 |  | 
| 140 | 
            +
            ## Other tags
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            All the special tags described above are removed from the post before
         | 
| 143 | 
            +
            publishing (you can configure additional ones to remove with the
         | 
| 144 | 
            +
            `--remove-tags` option). All other tags are passed through to the
         | 
| 145 | 
            +
            produced posts. Of course, you could have some of those tags also
         | 
| 146 | 
            +
            trigger special behavior within the output system. For example, my
         | 
| 147 | 
            +
            [custom Hyde-X Hugo theme](https://github.com/zzamboni/new/tree/master/themes/hyde-x-zzamboni)
         | 
| 148 | 
            +
            recognizes the following tags:
         | 
| 149 | 
            +
             | 
| 150 | 
            +
            - `_home`: set this page as the default for the site.
         | 
| 151 | 
            +
            - `_menu=main`: add this page to the top-level navigation menu.
         | 
| 152 | 
            +
             | 
| 122 153 | 
             
            ## Shortcuts
         | 
| 123 154 |  | 
| 124 | 
            -
             | 
| 155 | 
            +
            Shortcuts are of the form `[shortcutname params]`. The following
         | 
| 156 | 
            +
            shortcuts are currently recognized:
         | 
| 125 157 |  | 
| 126 | 
            -
            Embed Youtube video by URL or ID. You can optionally specify `width`
         | 
| 127 | 
            -
            and `height`. All arguments must be enclosed in double quotes.
         | 
| 158 | 
            +
            - Embed Youtube video by URL or ID. You can optionally specify `width`
         | 
| 159 | 
            +
              and `height`. All arguments must be enclosed in double quotes.
         | 
| 128 160 |  | 
| 129 | 
            -
             | 
| 130 | 
            -
             | 
| 131 | 
            -
             | 
| 161 | 
            +
              ```
         | 
| 162 | 
            +
            [youtube url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
         | 
| 163 | 
            +
            [youtube src="https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
         | 
| 164 | 
            +
            [youtube id="dQw4w9WgXcQ" width="640px" height="480px"]
         | 
| 165 | 
            +
              ```
         | 
| 132 166 |  | 
| 133 | 
            -
            Embed gist | 
| 167 | 
            +
            - Embed gist.
         | 
| 134 168 |  | 
| 135 | 
            -
             | 
| 169 | 
            +
              ```
         | 
| 170 | 
            +
            [gist url="https://gist.github.com/zzamboni/843142d3f759e582fe8f"]
         | 
| 171 | 
            +
              ```
         | 
| 136 172 |  | 
| 137 173 | 
             
            ## Planned features/fixes
         | 
| 138 174 |  | 
    
        data/enwrite.gemspec
    CHANGED
    
    | @@ -2,16 +2,16 @@ | |
| 2 2 | 
             
            # DO NOT EDIT THIS FILE DIRECTLY
         | 
| 3 3 | 
             
            # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
         | 
| 4 4 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 5 | 
            -
            # stub: enwrite 0.2. | 
| 5 | 
            +
            # stub: enwrite 0.2.4 ruby lib
         | 
| 6 6 |  | 
| 7 7 | 
             
            Gem::Specification.new do |s|
         | 
| 8 8 | 
             
              s.name = "enwrite"
         | 
| 9 | 
            -
              s.version = "0.2. | 
| 9 | 
            +
              s.version = "0.2.4"
         | 
| 10 10 |  | 
| 11 11 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 12 12 | 
             
              s.require_paths = ["lib"]
         | 
| 13 13 | 
             
              s.authors = ["Diego Zamboni"]
         | 
| 14 | 
            -
              s.date = "2015-05- | 
| 14 | 
            +
              s.date = "2015-05-20"
         | 
| 15 15 | 
             
              s.description = "Enwrite allows you to generate a website from content stored in Evernote."
         | 
| 16 16 | 
             
              s.email = "diego@zzamboni.org"
         | 
| 17 17 | 
             
              s.executables = ["enwrite"]
         | 
    
        data/lib/enwrite.rb
    CHANGED
    
    
    
        data/lib/output/hugo.rb
    CHANGED
    
    | @@ -107,18 +107,12 @@ class Hugo < Output | |
| 107 107 | 
             
                  return
         | 
| 108 108 | 
             
                end
         | 
| 109 109 |  | 
| 110 | 
            -
                # Determine if we should  | 
| 111 | 
            -
                 | 
| 112 | 
            -
                 | 
| 113 | 
            -
                   | 
| 114 | 
            -
             | 
| 115 | 
            -
             | 
| 116 | 
            -
                # Determine if we should use a custom slug
         | 
| 117 | 
            -
                slug = nil
         | 
| 118 | 
            -
                note.tagNames.grep(/^_slug=(\S+)/) do |slugtag|
         | 
| 119 | 
            -
                  slug = $1
         | 
| 120 | 
            -
                  note.tagNames -= [ slugtag ]
         | 
| 121 | 
            -
                  verbose "   Will use custom slug for this post: #{slug}"
         | 
| 110 | 
            +
                # Determine if we should add custom frontmatter
         | 
| 111 | 
            +
                custom_fm = {}
         | 
| 112 | 
            +
                note.tagNames.grep(/^_(\S+)=(.*)/) do |tag|
         | 
| 113 | 
            +
                  custom_fm[$1] = $2
         | 
| 114 | 
            +
                  note.tagNames -= [ tag ]
         | 
| 115 | 
            +
                  verbose "   Will use custom frontmatter entry for this post: #{$1} = #{custom_fm[$1]}"
         | 
| 122 116 | 
             
                end
         | 
| 123 117 |  | 
| 124 118 | 
             
                # Get our note GUID-to-filename map
         | 
| @@ -173,10 +167,12 @@ class Hugo < Output | |
| 173 167 | 
             
                      # Update tags, for now set categories to the same
         | 
| 174 168 | 
             
                      frontmatter['tags'] = note.tagNames
         | 
| 175 169 | 
             
                      frontmatter['categories'] = note.tagNames
         | 
| 170 | 
            +
                      # Set custom frontmatter
         | 
| 171 | 
            +
                      custom_fm.each do |k,v|
         | 
| 172 | 
            +
                        frontmatter[k] = v
         | 
| 173 | 
            +
                      end
         | 
| 176 174 | 
             
                      # Set slug to work around https://github.com/spf13/hugo/issues/1017
         | 
| 177 | 
            -
                      frontmatter['slug'] = slug ? slug : note.title.downcase.gsub(/\W+/, "-").gsub(/^-+/, "").gsub(/-+$/, "")
         | 
| 178 | 
            -
                      # Set main menu tag if needed
         | 
| 179 | 
            -
                      frontmatter['menu'] = 'main' if inmainmenu
         | 
| 175 | 
            +
                      frontmatter['slug'] = custom_fm['slug'] ? custom_fm['slug'] : note.title.downcase.gsub(/\W+/, "-").gsub(/^-+/, "").gsub(/-+$/, "")
         | 
| 180 176 | 
             
                      break
         | 
| 181 177 | 
             
                    elsif output =~ /ERROR: \S+ (.+) already exists/
         | 
| 182 178 | 
             
                      # Get the full filename as reported by Hugo
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: enwrite
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Diego Zamboni
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-05- | 
| 11 | 
            +
            date: 2015-05-20 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: colorize
         |