gdagley-esv 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +35 -0
- data/Rakefile +49 -0
- data/VERSION +1 -0
- data/esv.gemspec +69 -0
- data/lib/esv.rb +56 -0
- data/lib/esv/bible.rb +55 -0
- data/lib/esv/reading_plan.rb +29 -0
- data/spec/esv/bible_spec.rb +32 -0
- data/spec/esv/reading_plan_spec.rb +34 -0
- data/spec/esv_spec.rb +4 -0
- data/spec/fixtures/passage_query.html +51 -0
- data/spec/fixtures/passage_query.xml +96 -0
- data/spec/fixtures/reading_plan_info.xml +19 -0
- data/spec/fixtures/reading_plan_query.html +96 -0
- data/spec/fixtures/reading_plan_query.xml +257 -0
- data/spec/spec_helper.rb +25 -0
- metadata +104 -0
data/.document
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Geoffrey Dagley
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
= esv
|
2
|
+
|
3
|
+
Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/
|
4
|
+
|
5
|
+
== SYNOPSIS:
|
6
|
+
|
7
|
+
b = ESV::Bible.new
|
8
|
+
|
9
|
+
Default response for most actions is HTML
|
10
|
+
b.passageQuery('John 1:1') # => "<div class=\"esv\"><h2>John 1:1 <object type=\"application/x-shockwave-flash\" data=\"http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001\" width=\"40\" height=\"12\" class=\"audio\"><param name=\"movie\" value=\"http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001\" /><param name=\"wmode\" value=\"transparent\" /></object></h2>\n<div class=\"esv-text\"><h3 id=\"p43001001.01-1\">The Word Became Flesh</h3>\n<p class=\"chapter-first\" id=\"p43001001.05-1\"><span class=\"chapter-num\" id=\"v43001001-1\">1:1 </span>In the beginning was the Word, and the Word was with God, and the Word was God. (<a href=\"http://www.esv.org\" class=\"copyright\">ESV</a>)</p>\n</div>\n</div>"
|
11
|
+
|
12
|
+
XML responses are converted to Hashes
|
13
|
+
b.passageQuery('John 1:1', 'output-format' => 'crossway-xml-1.0') # => {"crossway_bible"=>{"class"=>"passage-query", "passage"=>{"reference"=>"John 1:1", "surrounding_chapters"=>{"previous"=>"Luke 24", "current"=>"John 1", "next"=>"John 2"}, "content"=>{"verse_unit"=>"<markerclass=\"begin-verse\" mid=\"v43001001\"></marker><begin_chapternum=\"1\"></begin_chapter><heading>The Word Became Flesh</heading><begin_paragraphclass=\"chapter-first\"></begin_paragraph><verse_numbegin_chapter=\"1\">1</verse_num>In the beginning was the Word, and the Word was with God, and the Word was God.<end_paragraph></end_paragraph>"}}, "copyright"=>"The Holy Bible, English Standard Version copyright (c)2001 by Crossway Bibles, a division of Good News Publishers. Used by permission. All rights reserved. http://www.esv.org"}}
|
14
|
+
|
15
|
+
== REQUIREMENTS:
|
16
|
+
|
17
|
+
* httparty
|
18
|
+
|
19
|
+
== INSTALL:
|
20
|
+
|
21
|
+
* sudo gem install gdagley-esv
|
22
|
+
|
23
|
+
== Note on Patches/Pull Requests
|
24
|
+
|
25
|
+
* Fork the project.
|
26
|
+
* Make your feature addition or bug fix.
|
27
|
+
* Add tests for it. This is important so I don't break it in a
|
28
|
+
future version unintentionally.
|
29
|
+
* Commit, do not mess with rakefile, version, or history.
|
30
|
+
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
31
|
+
* Send me a pull request. Bonus points for topic branches.
|
32
|
+
|
33
|
+
== Copyright
|
34
|
+
|
35
|
+
Copyright (c) 2009 Geoffrey Dagley. See LICENSE for details.
|
data/Rakefile
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "esv"
|
8
|
+
gem.summary = %Q{Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/}
|
9
|
+
gem.email = "gdagley@gmail.com"
|
10
|
+
gem.homepage = "http://github.com/gdagley/esv"
|
11
|
+
gem.authors = ["Geoffrey Dagley"]
|
12
|
+
gem.add_dependency "httparty"
|
13
|
+
gem.add_development_dependency "rspec"
|
14
|
+
gem.add_development_dependency "fakeweb"
|
15
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
+
end
|
17
|
+
rescue LoadError
|
18
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
19
|
+
end
|
20
|
+
|
21
|
+
require 'spec/rake/spectask'
|
22
|
+
Spec::Rake::SpecTask.new(:spec) do |spec|
|
23
|
+
spec.libs << 'lib' << 'spec'
|
24
|
+
spec.spec_files = FileList['spec/**/*_spec.rb']
|
25
|
+
end
|
26
|
+
|
27
|
+
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
28
|
+
spec.libs << 'lib' << 'spec'
|
29
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
30
|
+
spec.rcov = true
|
31
|
+
end
|
32
|
+
|
33
|
+
task :spec => :check_dependencies
|
34
|
+
|
35
|
+
task :default => :spec
|
36
|
+
|
37
|
+
require 'rake/rdoctask'
|
38
|
+
Rake::RDocTask.new do |rdoc|
|
39
|
+
if File.exist?('VERSION')
|
40
|
+
version = File.read('VERSION')
|
41
|
+
else
|
42
|
+
version = ""
|
43
|
+
end
|
44
|
+
|
45
|
+
rdoc.rdoc_dir = 'rdoc'
|
46
|
+
rdoc.title = "esv #{version}"
|
47
|
+
rdoc.rdoc_files.include('README*')
|
48
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.2
|
data/esv.gemspec
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{esv}
|
8
|
+
s.version = "0.1.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Geoffrey Dagley"]
|
12
|
+
s.date = %q{2009-09-08}
|
13
|
+
s.email = %q{gdagley@gmail.com}
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"LICENSE",
|
16
|
+
"README.rdoc"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".document",
|
20
|
+
".gitignore",
|
21
|
+
"LICENSE",
|
22
|
+
"README.rdoc",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"esv.gemspec",
|
26
|
+
"lib/esv.rb",
|
27
|
+
"lib/esv/bible.rb",
|
28
|
+
"lib/esv/reading_plan.rb",
|
29
|
+
"spec/esv/bible_spec.rb",
|
30
|
+
"spec/esv/reading_plan_spec.rb",
|
31
|
+
"spec/esv_spec.rb",
|
32
|
+
"spec/fixtures/passage_query.html",
|
33
|
+
"spec/fixtures/passage_query.xml",
|
34
|
+
"spec/fixtures/reading_plan_info.xml",
|
35
|
+
"spec/fixtures/reading_plan_query.html",
|
36
|
+
"spec/fixtures/reading_plan_query.xml",
|
37
|
+
"spec/spec_helper.rb"
|
38
|
+
]
|
39
|
+
s.homepage = %q{http://github.com/gdagley/esv}
|
40
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
41
|
+
s.require_paths = ["lib"]
|
42
|
+
s.rubygems_version = %q{1.3.5}
|
43
|
+
s.summary = %q{Wrapper for English Standard Version (ESV) Bible Web Service. See ESV API docs http://www.esvapi.org/}
|
44
|
+
s.test_files = [
|
45
|
+
"spec/esv/bible_spec.rb",
|
46
|
+
"spec/esv/reading_plan_spec.rb",
|
47
|
+
"spec/esv_spec.rb",
|
48
|
+
"spec/spec_helper.rb"
|
49
|
+
]
|
50
|
+
|
51
|
+
if s.respond_to? :specification_version then
|
52
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
|
+
s.specification_version = 3
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<httparty>, [">= 0"])
|
57
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
58
|
+
s.add_development_dependency(%q<fakeweb>, [">= 0"])
|
59
|
+
else
|
60
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
61
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
62
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
63
|
+
end
|
64
|
+
else
|
65
|
+
s.add_dependency(%q<httparty>, [">= 0"])
|
66
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
67
|
+
s.add_dependency(%q<fakeweb>, [">= 0"])
|
68
|
+
end
|
69
|
+
end
|
data/lib/esv.rb
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
require 'esv/bible'
|
2
|
+
require 'esv/reading_plan'
|
3
|
+
|
4
|
+
module ESV
|
5
|
+
OUTPUT_FORMATS =
|
6
|
+
['html', 'crossway-xml-1.0', 'plain-text', 'mp3']
|
7
|
+
|
8
|
+
HTML_OPTIONS =
|
9
|
+
{
|
10
|
+
'include-passage-references' => true,
|
11
|
+
'include-first-verse-numbers' => true,
|
12
|
+
'include-verse-numbers' => true,
|
13
|
+
'include-footnotes' => true,
|
14
|
+
'include-footnote-links' => true,
|
15
|
+
'include-headings' => true,
|
16
|
+
'include-subheadings' => true,
|
17
|
+
'include-surrounding-chapters' => false,
|
18
|
+
'include-word-ids' => false,
|
19
|
+
'link-url' => 'http://www.gnpcb.org/esv/search/',
|
20
|
+
'include-audio-link' => true,
|
21
|
+
'audio-format' => 'flash',
|
22
|
+
'audio-version' => 'hw',
|
23
|
+
'include-short-copyright' => true,
|
24
|
+
'include-copyright' => false,
|
25
|
+
}
|
26
|
+
|
27
|
+
XML_OPTIONS =
|
28
|
+
{
|
29
|
+
'include-xml-declaration' => false,
|
30
|
+
'include-doctype' => true,
|
31
|
+
'include-quote-entities' => true,
|
32
|
+
'include-simple-entities' => false,
|
33
|
+
'include-cross-references' => false,
|
34
|
+
'include-line-breaks' => true,
|
35
|
+
'include-word-ids' => false,
|
36
|
+
'include-virtual-attributes' => false,
|
37
|
+
'base-element' => 'verse-unit',
|
38
|
+
}
|
39
|
+
|
40
|
+
TEXT_OPTIONS =
|
41
|
+
{
|
42
|
+
'include-passage-references' => true,
|
43
|
+
'include-first-verse-numbers' => true,
|
44
|
+
'include-verse-numbers' => true,
|
45
|
+
'include-footnotes' => true,
|
46
|
+
'include-short-copyright' => true,
|
47
|
+
'include-copyright' => false,
|
48
|
+
'include-passage-horizontal-lines' => true,
|
49
|
+
'include-heading-horizontal-lines' => true,
|
50
|
+
'include-headings' => true,
|
51
|
+
'include-subheadings' => true,
|
52
|
+
'include-selahs' => true,
|
53
|
+
'include-content-type' => true,
|
54
|
+
'line-length' => 74,
|
55
|
+
}
|
56
|
+
end
|
data/lib/esv/bible.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
module ESV
|
4
|
+
class Bible
|
5
|
+
include HTTParty
|
6
|
+
|
7
|
+
base_uri 'http://www.esvapi.org/v2/rest/'
|
8
|
+
|
9
|
+
# The ESV API requires a key that can be passed in as one of the options, :key => 'value'. By default, it is 'IP'
|
10
|
+
def initialize(default_options={})
|
11
|
+
@default_options = default_options
|
12
|
+
@default_options[:key] ||= 'IP'
|
13
|
+
end
|
14
|
+
|
15
|
+
# Lookup a passage
|
16
|
+
#
|
17
|
+
# See http://www.esvapi.org/api for more information and options
|
18
|
+
def passage_query(passage, options={})
|
19
|
+
options[:passage] = passage
|
20
|
+
self.class.get '/passageQuery', :query => @default_options.merge(options)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Look up a passage or show word-search results, depending on the query
|
24
|
+
#
|
25
|
+
# The output format is always HTML.
|
26
|
+
#
|
27
|
+
# See http://www.esvapi.org/api for more information and options
|
28
|
+
def query(q, options={})
|
29
|
+
options[:q] = q
|
30
|
+
self.class.get '/query', :query => @default_options.merge(options)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Parse and display information about your query, including identify whether it is a passage reference or a word search
|
34
|
+
#
|
35
|
+
# See http://www.esvapi.org/api for more information and options
|
36
|
+
def query_info(q)
|
37
|
+
options = {:q => q}
|
38
|
+
self.class.get '/queryInfo', :query => @default_options.merge(options)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Display a random verse from a preselected list, or specify verse(s)
|
42
|
+
#
|
43
|
+
# See http://www.esvapi.org/api for more information and options
|
44
|
+
def verse(options={})
|
45
|
+
self.class.get '/verse', :query => @default_options.merge(options)
|
46
|
+
end
|
47
|
+
|
48
|
+
# Display a verse that changes every day
|
49
|
+
#
|
50
|
+
# See http://www.esvapi.org/api for more information and options
|
51
|
+
def daily_verse(options={})
|
52
|
+
self.class.get '/dailyVerse', :query => @default_options.merge(options)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
module ESV
|
4
|
+
class ReadingPlan
|
5
|
+
include HTTParty
|
6
|
+
|
7
|
+
base_uri 'http://www.esvapi.org/v2/rest/'
|
8
|
+
|
9
|
+
# The ESV API requires a key that can be passed in as one of the options, :key => 'value'. By default, it is 'IP'
|
10
|
+
def initialize(default_options={})
|
11
|
+
@default_options = default_options
|
12
|
+
@default_options[:key] ||= 'IP'
|
13
|
+
end
|
14
|
+
|
15
|
+
# Retrieve passages from our Devotions section
|
16
|
+
#
|
17
|
+
# See http://www.esvapi.org/api for more information and options
|
18
|
+
def query(options={})
|
19
|
+
self.class.get '/readingPlanQuery', :query => @default_options.merge(options)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Parse and display information about the reading plan for a given date
|
23
|
+
#
|
24
|
+
# See http://www.esvapi.org/api for more information and options
|
25
|
+
def info(options={})
|
26
|
+
self.class.get '/readingPlanInfo', :query => @default_options.merge(options)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe ESV::Bible do
|
4
|
+
before do
|
5
|
+
@bible = ESV::Bible.new(:key => 'TEST')
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "passage_query" do
|
9
|
+
it "should retrieve the passage" do
|
10
|
+
stub_get("http://www.esvapi.org/v2/rest/passageQuery?passage=John%201&key=TEST", "passage_query.html")
|
11
|
+
@bible.passage_query('John 1').should include("<h2>John 1")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should retrieve the passage as XML" do
|
15
|
+
stub_get("http://www.esvapi.org/v2/rest/passageQuery?output-format=crossway-xml-1.0&key=TEST&passage=John%201", "passage_query.xml")
|
16
|
+
passage = @bible.passage_query('John 1', 'output-format' => 'crossway-xml-1.0')['crossway_bible']["passage"]
|
17
|
+
passage["reference"].should == "John 1"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "query" do
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "query_info" do
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "verse" do
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "daily_verse" do
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe ESV::ReadingPlan do
|
4
|
+
before do
|
5
|
+
@plan = ESV::ReadingPlan.new(:key => 'TEST')
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "query" do
|
9
|
+
it "should retrieve the daily reading" do
|
10
|
+
stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?key=TEST", "reading_plan_query.html")
|
11
|
+
@plan.query.should include("<h2>2 Samuel 2")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should retrieve the daily reading as XML" do
|
15
|
+
stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?output-format=crossway-xml-1.0&key=TEST", "reading_plan_query.xml")
|
16
|
+
reading = @plan.query('output-format' => 'crossway-xml-1.0')["crossway_bible"]
|
17
|
+
reading["passage"][0]["reference"].should == "2 Samuel 2"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should retrieve the daily reading for a specific date" do
|
21
|
+
stub_get("http://www.esvapi.org/v2/rest/readingPlanQuery?date=2009-10-01&key=TEST", "reading_plan_query.html")
|
22
|
+
@plan.query('date' => '2009-10-01').should include("<h2>2 Samuel 2")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "info" do
|
27
|
+
it "should retrieve XML info for reading plan" do
|
28
|
+
stub_get("http://www.esvapi.org/v2/rest/readingPlanInfo?key=TEST", "reading_plan_info.xml")
|
29
|
+
info = @plan.info['crossway_bible']
|
30
|
+
info["plan"].should == "one-year-tract"
|
31
|
+
info["date"].should == "20090908"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/spec/esv_spec.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Tue, 08 Sep 2009 14:59:46 GMT
|
3
|
+
Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.5 with Suhosin-Patch
|
4
|
+
Content-Location: passageQuery.php
|
5
|
+
Vary: negotiate
|
6
|
+
TCN: choice
|
7
|
+
X-Powered-By: PHP/5.2.4-2ubuntu5.5
|
8
|
+
Expires: Wed, 09 Sep 2009 14:59:46 +0000
|
9
|
+
Transfer-Encoding: chunked
|
10
|
+
Content-Type: text/html
|
11
|
+
|
12
|
+
<div class="esv"><h2>John 1 <object type="application/x-shockwave-flash" data="http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001-43001051" width="40" height="12" class="audio"><param name="movie" value="http://www.esvapi.org/assets/play.swf?myUrl=hw%2F43001001-43001051" /><param name="wmode" value="transparent" /></object></h2>
|
13
|
+
<div class="esv-text"><h3 id="p43001001.01-1">The Word Became Flesh</h3>
|
14
|
+
<p class="chapter-first" id="p43001001.05-1"><span class="chapter-num" id="v43001001-1">1:1 </span>In the beginning was the Word, and the Word was with God, and the Word was God. <span class="verse-num" id="v43001002-1">2 </span>He was in the beginning with God. <span class="verse-num" id="v43001003-1">3 </span>All things were made through him, and without him was not any thing made that was made. <span class="verse-num" id="v43001004-1">4 </span>In him was life,<span class="footnote"> <a href="#f1" id="b1" title="Or 'was not any thing made. That which has been made was life in him'">[1]</a></span> and the life was the light of men. <span class="verse-num" id="v43001005-1">5 </span>The light shines in the darkness, and the darkness has not overcome it.</p>
|
15
|
+
<p id="p43001006.01-1"><span class="verse-num" id="v43001006-1">6 </span>There was a man sent from God, whose name was John. <span class="verse-num" id="v43001007-1">7 </span>He came as a witness, to bear witness about the light, that all might believe through him. <span class="verse-num" id="v43001008-1">8 </span>He was not the light, but came to bear witness about the light.</p>
|
16
|
+
<p id="p43001009.01-1"><span class="verse-num" id="v43001009-1">9 </span>The true light, which enlightens everyone, was coming into the world. <span class="verse-num" id="v43001010-1">10 </span>He was in the world, and the world was made through him, yet the world did not know him. <span class="verse-num" id="v43001011-1">11 </span>He came to his own,<span class="footnote"> <a href="#f2" id="b2" title="Greek 'to his own things'; that is, to his own domain, or to his own people">[2]</a></span> and his own people<span class="footnote"> <a href="#f3" id="b3" title="'People' is implied in Greek">[3]</a></span> did not receive him. <span class="verse-num" id="v43001012-1">12 </span>But to all who did receive him, who believed in his name, he gave the right to become children of God, <span class="verse-num" id="v43001013-1">13 </span>who were born, not of blood nor of the will of the flesh nor of the will of man, but of God.</p>
|
17
|
+
<p id="p43001014.01-1"><span class="verse-num" id="v43001014-1">14 </span>And the Word became flesh and dwelt among us, and we have seen his glory, glory as of the only Son from the Father, full of grace and truth. <span class="verse-num" id="v43001015-1">15 </span>(John bore witness about him, and cried out, “This was he of whom I said, ‘He who comes after me ranks before me, because he was before me.’”) <span class="verse-num" id="v43001016-1">16 </span>And from his fullness we have all received, grace upon grace. <span class="verse-num" id="v43001017-1">17 </span>For the law was given through Moses; grace and truth came through Jesus Christ. <span class="verse-num" id="v43001018-1">18 </span>No one has ever seen God; the only God,<span class="footnote"> <a href="#f4" id="b4" title="Or 'the only One, who is God'; some manuscripts 'the only Son'">[4]</a></span> who is at the Father's side,<span class="footnote"> <a href="#f5" id="b5" title="Greek 'in the bosom of the Father'">[5]</a></span> he has made him known.</p>
|
18
|
+
<h3 id="p43001019.01-1">The Testimony of John the Baptist</h3>
|
19
|
+
<p id="p43001019.07-1"><span class="verse-num" id="v43001019-1">19 </span>And this is the testimony of John, when the Jews sent priests and Levites from Jerusalem to ask him, “Who are you?” <span class="verse-num" id="v43001020-1">20 </span>He confessed, and did not deny, but confessed, “I am not the Christ.” <span class="verse-num" id="v43001021-1">21 </span>And they asked him, “What then? Are you Elijah?” He said, “I am not.” “Are you the Prophet?” And he answered, “No.” <span class="verse-num" id="v43001022-1">22 </span>So they said to him, “Who are you? We need to give an answer to those who sent us. What do you say about yourself?” <span class="verse-num" id="v43001023-1">23 </span>He said, “I am the voice of one crying out in the wilderness, ‘Make straight<span class="footnote"> <a href="#f6" id="b6" title="Or 'crying out, 'In the wilderness make straight'">[6]</a></span> the way of the Lord,’ as the prophet Isaiah said.”</p>
|
20
|
+
<p id="p43001024.01-1"><span class="verse-num" id="v43001024-1">24 </span>(Now they had been sent from the Pharisees.) <span class="verse-num" id="v43001025-1">25 </span>They asked him, “Then why are you baptizing, if you are neither the Christ, nor Elijah, nor the Prophet?” <span class="verse-num" id="v43001026-1">26 </span>John answered them, “I baptize with water, but among you stands one you do not know, <span class="verse-num" id="v43001027-1">27 </span>even he who comes after me, the strap of whose sandal I am not worthy to untie.” <span class="verse-num" id="v43001028-1">28 </span>These things took place in Bethany across the Jordan, where John was baptizing.</p>
|
21
|
+
<h3 id="p43001029.01-1">Behold, the Lamb of God</h3>
|
22
|
+
<p id="p43001029.06-1"><span class="verse-num" id="v43001029-1">29 </span>The next day he saw Jesus coming toward him, and said, “Behold, the Lamb of God, who takes away the sin of the world! <span class="verse-num" id="v43001030-1">30 </span>This is he of whom I said, ‘After me comes a man who ranks before me, because he was before me.’ <span class="verse-num" id="v43001031-1">31 </span>I myself did not know him, but for this purpose I came baptizing with water, that he might be revealed to Israel.” <span class="verse-num" id="v43001032-1">32 </span>And John bore witness: “I saw the Spirit descend from heaven like a dove, and it remained on him. <span class="verse-num" id="v43001033-1">33 </span>I myself did not know him, but he who sent me to baptize with water said to me, ‘He on whom you see the Spirit descend and remain, this is he who baptizes with the Holy Spirit.’ <span class="verse-num" id="v43001034-1">34 </span>And I have seen and have borne witness that this is the Son of God.”</p>
|
23
|
+
<h3 id="p43001035.01-1">Jesus Calls the First Disciples</h3>
|
24
|
+
<p id="p43001035.06-1"><span class="verse-num" id="v43001035-1">35 </span>The next day again John was standing with two of his disciples, <span class="verse-num" id="v43001036-1">36 </span>and he looked at Jesus as he walked by and said, “Behold, the Lamb of God!” <span class="verse-num" id="v43001037-1">37 </span>The two disciples heard him say this, and they followed Jesus. <span class="verse-num" id="v43001038-1">38 </span>Jesus turned and saw them following and said to them, <span class="woc">“What are you seeking?”</span> And they said to him, “Rabbi” (which means Teacher), “where are you staying?” <span class="verse-num" id="v43001039-1">39 </span>He said to them, <span class="woc">“Come and you will see.”</span> So they came and saw where he was staying, and they stayed with him that day, for it was about the tenth hour.<span class="footnote"> <a href="#f7" id="b7" title="That is, about 4 P.M.">[7]</a></span> <span class="verse-num" id="v43001040-1">40 </span>One of the two who heard John speak and followed Jesus<span class="footnote"> <a href="#f8" id="b8" title="Greek 'him'">[8]</a></span> was Andrew, Simon Peter's brother. <span class="verse-num" id="v43001041-1">41 </span>He first found his own brother Simon and said to him, “We have found the Messiah” (which means Christ). <span class="verse-num" id="v43001042-1">42 </span>He brought him to Jesus. Jesus looked at him and said, <span class="woc">“So you are Simon the son of John? You shall be called Cephas”</span> (which means Peter<span class="footnote"> <a href="#f9" id="b9" title="'Cephas' and 'Peter' are from the word for 'rock' in Aramaic and Greek, respectively">[9]</a></span>).</p>
|
25
|
+
<h3 id="p43001043.01-1">Jesus Calls Philip and Nathanael</h3>
|
26
|
+
<p id="p43001043.06-1"><span class="verse-num" id="v43001043-1">43 </span>The next day Jesus decided to go to Galilee. He found Philip and said to him, <span class="woc">“Follow me.”</span> <span class="verse-num" id="v43001044-1">44 </span>Now Philip was from Bethsaida, the city of Andrew and Peter. <span class="verse-num" id="v43001045-1">45 </span>Philip found Nathanael and said to him, “We have found him of whom Moses in the Law and also the prophets wrote, Jesus of Nazareth, the son of Joseph.” <span class="verse-num" id="v43001046-1">46 </span>Nathanael said to him, “Can anything good come out of Nazareth?” Philip said to him, “Come and see.” <span class="verse-num" id="v43001047-1">47 </span>Jesus saw Nathanael coming toward him and said of him, <span class="woc">“Behold, an Israelite indeed, in whom there is no deceit!”</span> <span class="verse-num" id="v43001048-1">48 </span>Nathanael said to him, “How do you know me?” Jesus answered him, <span class="woc">“Before Philip called you, when you were under the fig tree, I saw you.”</span> <span class="verse-num" id="v43001049-1">49 </span>Nathanael answered him, “Rabbi, you are the Son of God! You are the King of Israel!” <span class="verse-num" id="v43001050-1">50 </span>Jesus answered him, <span class="woc">“Because I said to you, ‘I saw you under the fig tree,’ do you believe? You will see greater things than these.”</span> <span class="verse-num" id="v43001051-1">51 </span>And he said to him, <span class="woc">“Truly, truly, I say to you,<span class="footnote"> <a href="#f10" id="b10" title="The Greek for 'you' is plural; twice in this verse">[10]</a></span> you will see heaven opened, and the angels of God ascending and descending on the Son of Man.”</span> (<a href="http://www.esv.org" class="copyright">ESV</a>)</p>
|
27
|
+
</div>
|
28
|
+
<div class="footnotes">
|
29
|
+
<h3>Footnotes</h3>
|
30
|
+
<p><span class="footnote"><a href="#b1" id="f1">[1]</a></span> <span class="footnote-ref">1:4</span> Or <em>was not any thing made. That which has been made was life in him</em>
|
31
|
+
<br />
|
32
|
+
<span class="footnote"><a href="#b2" id="f2">[2]</a></span> <span class="footnote-ref">1:11</span> Greek <em>to his own things</em>; that is, to his own domain, or to his own people
|
33
|
+
<br />
|
34
|
+
<span class="footnote"><a href="#b3" id="f3">[3]</a></span> <span class="footnote-ref">1:11</span> <em>People</em> is implied in Greek
|
35
|
+
<br />
|
36
|
+
<span class="footnote"><a href="#b4" id="f4">[4]</a></span> <span class="footnote-ref">1:18</span> Or <em>the only One, who is God</em>; some manuscripts <em>the only Son</em>
|
37
|
+
<br />
|
38
|
+
<span class="footnote"><a href="#b5" id="f5">[5]</a></span> <span class="footnote-ref">1:18</span> Greek <em>in the bosom of the Father</em>
|
39
|
+
<br />
|
40
|
+
<span class="footnote"><a href="#b6" id="f6">[6]</a></span> <span class="footnote-ref">1:23</span> Or <em>crying out, ‘In the wilderness make straight</em>
|
41
|
+
<br />
|
42
|
+
<span class="footnote"><a href="#b7" id="f7">[7]</a></span> <span class="footnote-ref">1:39</span> That is, about <span class="small-caps">4 p.m.</span>
|
43
|
+
<br />
|
44
|
+
<span class="footnote"><a href="#b8" id="f8">[8]</a></span> <span class="footnote-ref">1:40</span> Greek <em>him</em>
|
45
|
+
<br />
|
46
|
+
<span class="footnote"><a href="#b9" id="f9">[9]</a></span> <span class="footnote-ref">1:42</span> <em>Cephas</em> and <em>Peter</em> are from the word for <em>rock</em> in Aramaic and Greek, respectively
|
47
|
+
<br />
|
48
|
+
<span class="footnote"><a href="#b10" id="f10">[10]</a></span> <span class="footnote-ref">1:51</span> The Greek for <em>you</em> is plural; twice in this verse
|
49
|
+
</p>
|
50
|
+
</div>
|
51
|
+
</div>
|