bibtowiki 0.0.1
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/lib/bibtowiki.rb +59 -0
- metadata +58 -0
data/lib/bibtowiki.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'bibtex'
|
2
|
+
require 'active_support'
|
3
|
+
module BibTeX
|
4
|
+
class Entry
|
5
|
+
def to_wikipedia(with_reftag=true)
|
6
|
+
props = ActiveSupport::OrderedHash.new
|
7
|
+
|
8
|
+
# authors
|
9
|
+
if authors != nil
|
10
|
+
if authors.size == 1
|
11
|
+
# conditional is because some authors might not have first names
|
12
|
+
# ('Teller' in Penn & Teller, maybe)
|
13
|
+
props[:first] = authors[0].first if authors[0].first != nil
|
14
|
+
props[:last] = authors[0].last
|
15
|
+
elsif authors.size > 1
|
16
|
+
author_count = 0
|
17
|
+
authors[0..([authors.size, 8].min - 1)].each do |author|
|
18
|
+
author_count += 1
|
19
|
+
props[("first" + author_count.to_s).to_sym] = author.first if author.first != nil
|
20
|
+
props[("last" + author_count.to_s).to_sym] = author.last
|
21
|
+
end
|
22
|
+
#if authors.size >= 9
|
23
|
+
# props[:others] = authors[8..-1].map {|i| i[:first] + " " + i[:last] }.join(", ")
|
24
|
+
#end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# common keys
|
29
|
+
emdash = 2014.chr('UTF-8')
|
30
|
+
props[:title] = fields[:title].to_s if fields.has_key?(:title)
|
31
|
+
props[:year] = fields[:year].to_s if fields.has_key?(:year)
|
32
|
+
props[:pages] = fields[:pages].to_s.sub("---", emdash).sub("--", emdash) if fields.has_key?(:pages)
|
33
|
+
props[:journal] = fields[:journal].to_s if fields.has_key?(:journal)
|
34
|
+
props[:volume] = fields[:volume].to_s if fields.has_key?(:volume)
|
35
|
+
props[:number] = fields[:number].to_s if fields.has_key?(:number)
|
36
|
+
|
37
|
+
out = ""
|
38
|
+
if with_reftag == true
|
39
|
+
if key != nil
|
40
|
+
out += "<ref name=\"" + key.to_s + "\">"
|
41
|
+
else
|
42
|
+
out += "<ref>"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
if type.to_s == "article"
|
46
|
+
out += "{{Cite article|"
|
47
|
+
elsif type.to_s == "book" || type.to_s == "booklet"
|
48
|
+
out += "{{Cite book|"
|
49
|
+
else
|
50
|
+
out += "{{Citation|"
|
51
|
+
end
|
52
|
+
out += props.to_a.map {|arr| arr.join("=") }.join("|")
|
53
|
+
out += "}}"
|
54
|
+
out += "</ref>" if with_reftag == true
|
55
|
+
|
56
|
+
return out
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
metadata
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bibtowiki
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tom Morris
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-11-04 00:00:00.000000000 +00:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: bibtex-ruby
|
17
|
+
requirement: &2168678540 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.1.2
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2168678540
|
26
|
+
description: Creates Wikipedia cirtations from BibTeX.
|
27
|
+
email: tom@tommorris.org
|
28
|
+
executables: []
|
29
|
+
extensions: []
|
30
|
+
extra_rdoc_files: []
|
31
|
+
files:
|
32
|
+
- lib/bibtowiki.rb
|
33
|
+
has_rdoc: true
|
34
|
+
homepage: http://github.com/tommorris/bibtowiki
|
35
|
+
licenses: []
|
36
|
+
post_install_message:
|
37
|
+
rdoc_options: []
|
38
|
+
require_paths:
|
39
|
+
- lib
|
40
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
48
|
+
requirements:
|
49
|
+
- - ! '>='
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '0'
|
52
|
+
requirements: []
|
53
|
+
rubyforge_project:
|
54
|
+
rubygems_version: 1.6.2
|
55
|
+
signing_key:
|
56
|
+
specification_version: 3
|
57
|
+
summary: BibTeX to Wikipedia.
|
58
|
+
test_files: []
|