vimwiki_markdown 0.2.5 → 0.2.6
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 +11 -0
- data/changelog.md +3 -0
- data/lib/vimwiki_markdown/options.rb +19 -2
- data/lib/vimwiki_markdown/version.rb +1 -1
- data/lib/vimwiki_markdown/wiki_body.rb +10 -0
- data/spec/lib/vimwiki_markdown/options_spec.rb +16 -2
- data/spec/lib/vimwiki_markdown/template_spec.rb +4 -0
- data/spec/lib/vimwiki_markdown/wiki_body_spec.rb +12 -0
- data/spec/spec_helper.rb +10 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f15a379fe2281d0a38bd24c2bdf359017dda45d1
|
4
|
+
data.tar.gz: 513869385056bd8578cb850cd8682f42efd93ecd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7c9cf57dc30a2f88b88bada446122a0406076d5d1a69f93fb0e3e0d53c9dc18fb714e57b412c024f39b281d782f1d2c411818d63fc8ab3f62eb868a3277f0ab
|
7
|
+
data.tar.gz: 937e1c37ac549bef675e94723fc9c7c1dd51a5aa8540de506dad665d9460cdb253a2495b202bd91f030a9f27191beb1e05dc3499d6fce325bbd7c6010c7139a8
|
data/README.md
CHANGED
@@ -59,6 +59,17 @@ to [this commit](https://github.com/patrickdavey/vimwiki_markdown/commit/8645883
|
|
59
59
|
It will get rewritten with the relative path to the root
|
60
60
|
of the site (e.g. `./` or `../../` etc)
|
61
61
|
|
62
|
+
#### Using Custom Template Tag
|
63
|
+
|
64
|
+
Including a line with `%template <template name>` in any of your Vimwiki pages will will force the generator to use `<template name>.tpl` rather than `default.tpl` for that page.
|
65
|
+
|
66
|
+
`<template name>` cannot contain any spaces
|
67
|
+
|
68
|
+
#### Using Custom Title Tag
|
69
|
+
|
70
|
+
Including a line with `%title <title name>` in any of your Vimwiki pages will force the generator to replace `%title%` in your template file with `<title name>` rather than the name of the file itself.
|
71
|
+
*You can have spaces in your titles now!*
|
72
|
+
|
62
73
|
## Contributing
|
63
74
|
|
64
75
|
Pull requests are very welcome, especially if you want to implement some of the
|
data/changelog.md
CHANGED
@@ -26,7 +26,7 @@ module VimwikiMarkdown
|
|
26
26
|
|
27
27
|
attr_reader :force, :syntax, :extension, :output_dir,
|
28
28
|
:input_file, :css_file, :template_path,
|
29
|
-
:template_default, :template_ext, :root_path
|
29
|
+
:template_default, :template_ext, :root_path, :tags
|
30
30
|
|
31
31
|
=begin force : [0/1] overwrite an existing file
|
32
32
|
syntax : the syntax chosen for this wiki
|
@@ -54,10 +54,26 @@ module VimwikiMarkdown
|
|
54
54
|
@template_ext = arguments[TEMPLATE_EXT]
|
55
55
|
@root_path = arguments[ROOT_PATH]
|
56
56
|
@root_path = "./" if @root_path == "-"
|
57
|
+
@tags = pull_tags
|
57
58
|
raise "Must be markdown" unless syntax == 'markdown'
|
58
59
|
end
|
59
60
|
|
61
|
+
def get_file_contents
|
62
|
+
file = File.open(input_file, "r")
|
63
|
+
file.read
|
64
|
+
end
|
65
|
+
|
66
|
+
def pull_tags
|
67
|
+
tags = Hash.new
|
68
|
+
get_file_contents.split("\n").each do |li|
|
69
|
+
tags['template'] = li.split.last if (li[/%template \S+./])
|
70
|
+
tags['title'] = li.sub(/%title /, '') if (li[/%title .+/])
|
71
|
+
end
|
72
|
+
return tags
|
73
|
+
end
|
74
|
+
|
60
75
|
def template_filename
|
76
|
+
return "#{template_path}#{tags['template']}#{template_ext}" if @tags['template']
|
61
77
|
"#{template_path}#{template_default}#{template_ext}"
|
62
78
|
end
|
63
79
|
|
@@ -66,11 +82,12 @@ module VimwikiMarkdown
|
|
66
82
|
end
|
67
83
|
|
68
84
|
def title
|
85
|
+
return File.basename(tags['title'], ".md").split(/ |\_/).map(&:capitalize).join(" ") if @tags['title']
|
69
86
|
File.basename(input_file, ".md").capitalize
|
70
87
|
end
|
71
88
|
|
72
89
|
def output_fullpath
|
73
|
-
"#{output_dir}#{
|
90
|
+
"#{output_dir}#{File.basename(input_file, ".md")}.html"
|
74
91
|
end
|
75
92
|
|
76
93
|
private
|
@@ -13,6 +13,7 @@ class VimwikiMarkdown::WikiBody
|
|
13
13
|
def to_s
|
14
14
|
@markdown_body = get_wiki_markdown_contents
|
15
15
|
fixlinks
|
16
|
+
remove_tags
|
16
17
|
github_markup = GitHub::Markup.render('README.markdown', markdown_body)
|
17
18
|
pipeline = HTML::Pipeline.new [
|
18
19
|
HTML::Pipeline::SyntaxHighlightFilter,
|
@@ -60,4 +61,13 @@ class VimwikiMarkdown::WikiBody
|
|
60
61
|
end
|
61
62
|
end
|
62
63
|
|
64
|
+
def remove_tags
|
65
|
+
@markdown_body.gsub!(/%template \S+/) do
|
66
|
+
""
|
67
|
+
end
|
68
|
+
@markdown_body.gsub!(/%title \S+/) do
|
69
|
+
""
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
63
73
|
end
|
@@ -3,17 +3,31 @@ require 'vimwiki_markdown/options'
|
|
3
3
|
|
4
4
|
module VimwikiMarkdown
|
5
5
|
describe Options do
|
6
|
-
|
6
|
+
let(:markdown_file_content) {wiki_template_title_markdown}
|
7
|
+
let(:options) { Options.new }
|
8
|
+
subject {options}
|
7
9
|
|
8
10
|
context "no options passed" do
|
9
11
|
before do
|
12
|
+
allow(File).to receive(:open).and_return(StringIO.new("# title \n ## subtitle"))
|
10
13
|
allow(Options).to receive(:arguments).and_return(Options::DEFAULTS)
|
11
14
|
end
|
12
15
|
|
13
16
|
its(:force) { should be(true) }
|
14
17
|
its(:syntax) { should eq('markdown') }
|
15
|
-
its(:output_fullpath) { should eq("#{subject.output_dir}#{subject.
|
18
|
+
its(:output_fullpath) { should eq("#{subject.output_dir}#{File.basename(subject.input_file, ".md")}.html") }
|
16
19
|
its(:template_filename) { should eq('~/vimwiki/templates/default.tpl') }
|
17
20
|
end
|
21
|
+
|
22
|
+
context "file with tags in it" do
|
23
|
+
before do
|
24
|
+
allow(File).to receive(:open).and_return(StringIO.new(markdown_file_content))
|
25
|
+
allow(Options).to receive(:arguments).and_return(Options::DEFAULTS)
|
26
|
+
end
|
27
|
+
|
28
|
+
its(:template_filename) { should eq('~/vimwiki/templates/alt_template.tpl') }
|
29
|
+
its(:title) { should eq('Super Cool Title')}
|
30
|
+
end
|
31
|
+
|
18
32
|
end
|
19
33
|
end
|
@@ -7,11 +7,13 @@ require 'rspec-html-matchers'
|
|
7
7
|
module VimwikiMarkdown
|
8
8
|
describe Template do
|
9
9
|
let(:options) { Options.new }
|
10
|
+
let(:markdown_file_content) {wiki_index_markdown}
|
10
11
|
|
11
12
|
context "template" do
|
12
13
|
|
13
14
|
subject { Template.new(options).to_s }
|
14
15
|
before do
|
16
|
+
allow(File).to receive(:open).and_return(StringIO.new(markdown_file_content))
|
15
17
|
allow(Options).to receive(:arguments).and_return(Options::DEFAULTS)
|
16
18
|
allow(File).to receive(:open).with(options.template_filename,"r").and_return(StringIO.new(wiki_template))
|
17
19
|
end
|
@@ -22,6 +24,7 @@ module VimwikiMarkdown
|
|
22
24
|
|
23
25
|
context "missing pygments" do
|
24
26
|
before do
|
27
|
+
allow(File).to receive(:open).and_return(StringIO.new(markdown_file_content))
|
25
28
|
allow(Options).to receive(:arguments).and_return(Options::DEFAULTS)
|
26
29
|
end
|
27
30
|
|
@@ -33,6 +36,7 @@ module VimwikiMarkdown
|
|
33
36
|
|
34
37
|
context "using %root_path%" do
|
35
38
|
before do
|
39
|
+
allow(File).to receive(:open).and_return(StringIO.new(markdown_file_content))
|
36
40
|
allow(Options).to receive(:arguments).and_return(Options::DEFAULTS)
|
37
41
|
end
|
38
42
|
|
@@ -38,6 +38,18 @@ module VimwikiMarkdown
|
|
38
38
|
expect(wiki_body.to_s).to match(/<a href="here.html">here<\/a>/)
|
39
39
|
expect(wiki_body.to_s).to match(/<a href="there.html">there<\/a>/)
|
40
40
|
end
|
41
|
+
|
42
|
+
it "must remove template tags" do
|
43
|
+
allow(wiki_body).to receive(:get_wiki_markdown_contents).and_return("%template test\n")
|
44
|
+
expect(wiki_body.to_s).not_to match(/%template/)
|
45
|
+
expect(wiki_body.to_s).not_to match(/test/)
|
46
|
+
end
|
47
|
+
|
48
|
+
it "must remove title tags" do
|
49
|
+
allow(wiki_body).to receive(:get_wiki_markdown_contents).and_return("%title test\n")
|
50
|
+
expect(wiki_body.to_s).not_to match(/%title/)
|
51
|
+
expect(wiki_body.to_s).not_to match(/test/)
|
52
|
+
end
|
41
53
|
end
|
42
54
|
|
43
55
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -110,6 +110,16 @@ def wiki_index_markdown
|
|
110
110
|
"
|
111
111
|
end
|
112
112
|
|
113
|
+
def wiki_template_title_markdown
|
114
|
+
"
|
115
|
+
%title super cool title\n
|
116
|
+
%template alt_template\n
|
117
|
+
## Todo\n
|
118
|
+
1. add template functionality\n
|
119
|
+
2. add title functionality\n
|
120
|
+
"
|
121
|
+
end
|
122
|
+
|
113
123
|
def wiki_template
|
114
124
|
<<-WIKITEMPLATE
|
115
125
|
<!DOCTYPE html>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimwiki_markdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick Davey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -245,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
version: '0'
|
246
246
|
requirements: []
|
247
247
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.6.12
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: Converts a github flavoured markdown vimwiki file into html.
|