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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ab868ce535c913c7f1bda420ccc50ea9e8c8629a
4
- data.tar.gz: a53cf60fcfea16cb3f3aac2816966c507bde662e
3
+ metadata.gz: 41ff65583cf68c9ac604768f8b61527ef296e2e0
4
+ data.tar.gz: a71a84427e5d203841a7f8be48a5cf72386604f4
5
5
  SHA512:
6
- metadata.gz: b973cf1e94be664f7155636dc3621009f15ef3907727a0541e5f93a0cdc2066eb24a1de997169a35308b631d0ad5ef24a96659870a660b644c47fecbf4e30915
7
- data.tar.gz: 1eec8e7fd2222e735878bd3383261a7e42b0f7c71734ab5f3d2aa72a5d8b0ab8372c2f2843179973d3882c34a89f595f1df22e3a857ca553b23a6ef50aeacec7
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
- ## Getting started
18
+ ## Installation
19
+
20
+ $ sudo gem install enwrite
19
21
 
20
- Install using gem:
22
+ Make sure you have Hugo installed:
23
+ http://gohugo.io/overview/installing/
21
24
 
22
- $ gem install enwrite
25
+ ## Getting started
23
26
 
24
- Create a new Hugo site for testing (if you don't have one already):
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.0
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
- --verbose Verbose mode
60
- -v, --debug Debug output mode
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
- Any of these special tags are removed from the post before publishing
110
- (you can configure additional ones with the `--remove-tags`
111
- option). All other tags are passed through to the produced posts. Of
112
- course, you could have some of those tags also trigger special
113
- behavior within the output system. For example, my
114
- [custom Hugo theme](https://github.com/zzamboni/new/tree/master/themes/hyde-x-zzamboni)
115
- recognizes the following tags:
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
+ ![Files note screenshot](https://www.evernote.com/shard/s2/sh/828dbfcd-83ff-493c-a247-493ed0704e73/fb8ffb0e1e417dd6/res/eaa1ca47-3cb1-4c4d-963e-815cfd83bd00/skitch.png)
116
133
 
117
- - `_home`: set this page as the default for the site. This is
118
- dependent on the Hugo theme being used.
119
- - `_mainmenu`: add this page to the top-level navigation menu. This is
120
- dependent on the Hugo theme being used.
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
- The following shortcuts are recognized:
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
- [youtube url="https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
130
- [youtube src="https://www.youtube.com/watch?v=dQw4w9WgXcQ"]
131
- [youtube id="dQw4w9WgXcQ" width="640px" height="480px"]
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
- [gist url="https://gist.github.com/zzamboni/843142d3f759e582fe8f"]
169
+ ```
170
+ [gist url="https://gist.github.com/zzamboni/843142d3f759e582fe8f"]
171
+ ```
136
172
 
137
173
  ## Planned features/fixes
138
174
 
@@ -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.3 ruby lib
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.3"
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-15"
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"]
@@ -22,7 +22,7 @@ class Enwrite
22
22
  module Version
23
23
  MAJOR = 0
24
24
  MINOR = 2
25
- PATCH = 3
25
+ PATCH = 4
26
26
 
27
27
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
28
28
  end
@@ -107,18 +107,12 @@ class Hugo < Output
107
107
  return
108
108
  end
109
109
 
110
- # Determine if we should include the page in the main menu
111
- inmainmenu = note.tagNames.include?('_mainmenu')
112
- if inmainmenu
113
- note.tagNames -= [ '_mainmenu' ]
114
- end
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.3
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-15 00:00:00.000000000 Z
11
+ date: 2015-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize