🏡 index : github.com/captn3m0/muse-dl.git

author Nemo <me@captnemo.in> 2020-07-01 18:27:39.0 +05:30:00
committer GitHub <noreply@github.com> 2020-07-01 18:27:39.0 +05:30:00
commit
a4f5c03912aaea9070b71eef71f86d5ca69556c9 [patch]
tree
f7fa424eadf86714762666ab3cb55641932c251f
parent
a23bd52ffa8307bb33420b744e16d9317a920283
parent
a05a1253db7cae57146a34ff451700f6275189cf
download
a4f5c03912aaea9070b71eef71f86d5ca69556c9.tar.gz

Merge pull request #8 from captn3m0/journal-support

Adds Journal Support

Diff

 Makefile                           |    5 ++++-
 shard.lock                         |   16 ++++++++++------
 shard.yml                          |    7 ++++++-
 spec/fetch_spec.cr                 |    5 +++++
 spec/issue_spec.cr                 |   85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 spec/journal_spec.cr               |   28 ++++++++++++++++++++++++++++
 spec/util_spec.cr                  |    9 +++++++++
 src/article.cr                     |   19 +++++++++++++++++++
 src/fetch.cr                       |   62 +++++++++++++++++++++++++++++++++++++++++++++++---------------
 src/infoparser.cr                  |   18 +++++++++++++++++-
 src/issue.cr                       |   97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/journal.cr                     |   42 ++++++++++++++++++++++++++++++++++++++++--
 src/muse-dl.cr                     |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/parser.cr                      |   12 +++++++-----
 src/pdftk.cr                       |   90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/thing.cr                       |    7 +++++++
 src/util.cr                        |    2 +-
 spec/fixtures/chapter-2379787.html |  359 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 spec/fixtures/issue-35852.html     | 1263 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 spec/fixtures/issue-41793.html     | 1603 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 spec/fixtures/journal-159.html     | 1522 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/errors/missing_chapter.cr      |    4 ----
 src/errors/missing_file.cr         |    4 ++++
 23 files changed, 5296 insertions(+), 64 deletions(-)

diff --git a/Makefile b/Makefile
index 98a984e..5dcf3dd 100644
--- a/Makefile
+++ a/Makefile
@@ -7,4 +7,7 @@
	# Then extract the image | extract the layer.tar file (we only have one layer) | extract the muse-dl-static file
	docker image save muse-dl-static | tar xf - --wildcards "*/layer.tar" -O | tar xf - "muse-dl-static"
	# And move it to the bin/ directory
	mv -f muse-dl-static bin/
	mv -f muse-dl-static bin/

test:
	crystal spec
diff --git a/shard.lock b/shard.lock
index 9984f5f..80ce5b8 100644
--- a/shard.lock
+++ a/shard.lock
@@ -1,14 +1,18 @@
version: 1.0
version: 2.0
shards:
  crest:
    github: mamantoha/crest
    version: 0.24.1
    git: https://github.com/mamantoha/crest.git
    version: 0.25.1

  http-client-digest_auth:
    github: mamantoha/http-client-digest_auth
    version: 0.3.0
    git: https://github.com/mamantoha/http-client-digest_auth.git
    version: 0.4.0

  myhtml:
    github: kostya/myhtml
    git: https://github.com/kostya/myhtml.git
    version: 1.5.1

  webmock:
    git: https://github.com/manastech/webmock.cr.git
    version: 0.13.0+git.commit.bb3eab30f6c7d1fdc0a7ff14cd136d68e860d1a7

diff --git a/shard.yml b/shard.yml
index 37050c5..4e42cbc 100644
--- a/shard.yml
+++ a/shard.yml
@@ -15,4 +15,9 @@
  myhtml:
    github: kostya/myhtml
  crest:
    github: mamantoha/crest
    github: mamantoha/crest

development_dependencies:
  webmock:
    github: manastech/webmock.cr
    branch: master
diff --git a/spec/fetch_spec.cr b/spec/fetch_spec.cr
index 6e97dfd..abe1a72 100644
--- a/spec/fetch_spec.cr
+++ a/spec/fetch_spec.cr
@@ -1,7 +1,12 @@
require "./spec_helper"
require "webmock"
# require "errors/muse_corrupt_pdf.cr"

describe Muse::Dl::Book do
  headers = {"Content-Type" => "text/html"}
  WebMock.stub(:get, "https://muse.jhu.edu/chapter/2379787/pdf")
    .to_return(body_io: File.new("spec/fixtures/chapter-2379787.html"), headers: headers)

  it "should notice the unable to construct chapter PDF error" do
    f = "/tmp/chapter-2379787.pdf"
    File.delete(f) if File.exists? f
diff --git a/spec/issue_spec.cr b/spec/issue_spec.cr
new file mode 100644
index 0000000..5a42f69 100644
--- /dev/null
+++ a/spec/issue_spec.cr
@@ -1,0 +1,85 @@
require "../src/issue"
require "./spec_helper"
require "webmock"

describe Muse::Dl::Issue do
  WebMock.stub(:get, "https://muse.jhu.edu/issue/41793")
    .to_return(body: File.new("spec/fixtures/issue-41793.html").gets_to_end)

  issue = Muse::Dl::Issue.new "41793"
  issue.parse

  it "should initialize correctly" do
    issue.id.should eq "41793"
    issue.url.should eq "https://muse.jhu.edu/issue/41793"
  end

  it "should parse info correctly" do
    issue.info["ISSN"].should eq "1530-7131"
    issue.info["Print ISSN"].should eq "1531-2542"
    issue.info["Launched on MUSE"].should eq "2020-02-05"
    issue.info["Open Access"].should eq "No"
    issue.title.should eq "Volume 20, Number 1, January 2020"
  end

  it "should parse title correctly" do
    issue.volume.should eq "20"
    issue.number.should eq "1"
    issue.date.should eq "January 2020"
  end

  it "should parser summary" do
    issue.summary.should eq <<-EOT

    Focusing on important research about the role of academic libraries and librarianship, portal also features commentary on issues in technology and publishing. Written for all those interested in the role of libraries within the academy, portal includes peer-reviewed articles addressing subjects such as library administration, information technology, and information policy. In its inaugural year, portal earned recognition as the runner-up for best new journal, awarded by the Council of Editors of Learned Journals (CELJ). An article in  portal, "Master's and Doctoral Thesis Citations: Analysis and Trends of a Longitudinal Study," won the Jesse H. Shera Award for Distinguished Published Research from the Library Research Round Table of the American Library Association.
    EOT
  end

  it "should parse publisher" do
    issue.publisher.should eq "Johns Hopkins University Press"
  end
  it "should parse the journal title" do
    issue.journal_title.should eq "portal: Libraries and the Academy"
  end

  it "should parse non-numbered issues" do
    WebMock.stub(:get, "https://muse.jhu.edu/issue/35852")
      .to_return(body: File.new("spec/fixtures/issue-35852.html").gets_to_end)
    issue = Muse::Dl::Issue.new "35852"
    issue.parse

    issue.volume.should eq "1"
    issue.number.should eq "2"
    issue.date.should eq "2016"

    issue.info["ISSN"].should eq "2474-9419"
    issue.info["Print ISSN"].should eq "2474-9427"
    issue.info["Launched on MUSE"].should eq "2017-02-21"
    issue.info["Open Access"].should eq "Yes"
    issue.title.should eq "Volume 1, Issue 2, 2016"
    issue.journal_title.should eq "Constitutional Studies"

    expected_pages = [
      [1, 22],
      [23, 40],
      [41, 58],
      [59, 80],
      [81, 95],
      [97, 116],
    ]

    expected_titles = [
      "The Limits of Veneration: Public Support for a New Constitutional Convention",
      "Secession and Nullification as a Global Trend",
      "Challenging Constitutionalism in Post-Apartheid South Africa",
      "Democracy by Lawsuit: Or, Can Litigation Alleviate the European Union’s “Democratic Deficit?”",
      "Private Enforcement of Constitutional Guarantees in the Ku Klux Act of 1871",
      "Sober Second Thoughts: Evaluating the History of Horizontal Judicial Review by the U.S. Supreme Court",
    ]

    issue.articles.each_with_index do |a, i|
      a.start_page.should eq expected_pages[i][0]
      a.end_page.should eq expected_pages[i][1]
      a.title.should eq expected_titles[i]
    end
  end
end
diff --git a/spec/journal_spec.cr b/spec/journal_spec.cr
new file mode 100644
index 0000000..7e0e5ec 100644
--- /dev/null
+++ a/spec/journal_spec.cr
@@ -1,0 +1,28 @@
require "./spec_helper"

describe Muse::Dl::Journal do
  html = File.new("spec/fixtures/journal-159.html").gets_to_end
  j = Muse::Dl::Journal.new html

  it "it should parse the infobox for 159" do
    j.info["ISSN"].should eq "1530-7131"
    j.info["Print ISSN"].should eq "1531-2542"
    j.info["Coverage Statement"].should eq "Vol. 1 (2001) through current issue"
    j.info["Open Access"].should eq "No"
  end

  it "should parser summary" do
    j.summary.should eq <<-EOT

    Focusing on important research about the role of academic libraries and librarianship, portal also features commentary on issues in technology and publishing. Written for all those interested in the role of libraries within the academy, portal includes peer-reviewed articles addressing subjects such as library administration, information technology, and information policy. In its inaugural year, portal earned recognition as the runner-up for best new journal, awarded by the Council of Editors of Learned Journals (CELJ). An article in  portal, "Master's and Doctoral Thesis Citations: Analysis and Trends of a Longitudinal Study," won the Jesse H. Shera Award for Distinguished Published Research from the Library Research Round Table of the American Library Association.
    EOT
  end

  it "should parse publisher" do
    j.publisher.should eq "Johns Hopkins University Press"
  end

  it "should return issues" do
    j.issues[0].id.should eq "41793"
    j.issues[-1].id.should eq "1578"
  end
end
diff --git a/spec/util_spec.cr b/spec/util_spec.cr
new file mode 100644
index 0000000..c808941 100644
--- /dev/null
+++ a/spec/util_spec.cr
@@ -1,0 +1,9 @@
require "../src/util"
require "./spec_helper"

describe Muse::Dl::Util do
  it "should sanitize filenames properly" do
    fn = Muse::Dl::Util.slug_filename("Hello world - \" :A$3, a story; a poem|chapter")
    fn.should eq "Hello world - - -A-3, a story- a poem-chapter"
  end
end
diff --git a/src/article.cr b/src/article.cr
new file mode 100644
index 0000000..bf6ac1c 100644
--- /dev/null
+++ a/src/article.cr
@@ -1,0 +1,19 @@
require "./infoparser.cr"
require "./issue.cr"

module Muse::Dl
  class Article
    getter id : String, :start_page, :end_page, :title
    setter title : String | Nil, start_page : Int32 | Nil, end_page : Int32 | Nil

    def initialize(id : String)
      @id = id
      @url = "https://muse.jhu.edu/article/#{id}"
    end

    # TODO: Fix this
    def open_access
      return false
    end
  end
end
diff --git a/src/fetch.cr b/src/fetch.cr
index 004f9e0..213bdc5 100644
--- a/src/fetch.cr
+++ a/src/fetch.cr
@@ -14,6 +14,10 @@
      "Connection"      => "keep-alive",
    }

    def self.article_file_name(id : String, tmp_path : String)
      "#{tmp_path}/article-#{id}.pdf"
    end

    def self.chapter_file_name(id : String, tmp_path : String)
      "#{tmp_path}/chapter-#{id}.pdf"
    end
@@ -23,24 +27,25 @@
      File.delete(fns) if File.exists?(fns)
    end

    def self.save_chapter(tmp_path : String, chapter_id : String, chapter_title : String, cookie : String | Nil = nil, add_bookmark = true, strip_first_page = true)
      final_pdf_file = chapter_file_name chapter_id, tmp_path
      tmp_pdf_file = "#{final_pdf_file}.tmp"
    def self.cleanup_articles(tmp_path : String, id : String)
      fns = article_file_name(id, tmp_path)
      File.delete(fns) if File.exists?(fns)
    end

      if File.exists? final_pdf_file
        puts "#{chapter_id} already downloaded"
    def self.save_url(url : String, referer : String, file_name : String, tmp_path : String, cookie : String | Nil = nil, bookmark_title : String | Nil = nil, strip_first_page = true)
      tmp_pdf_file = "#{file_name}.tmp"
      if File.exists? file_name
        puts "#{file_name} already downloaded"
        return
      end

      # TODO: Remove this hardcoding, and make this more generic by generating it within the Book class
      url = "https://muse.jhu.edu/chapter/#{chapter_id}/pdf"
      uri = URI.parse(url)
      http_client = HTTP::Client.new(uri)
      # Raise a IO::TimeoutError after 60 seconds.
      http_client.read_timeout = DOWNLOAD_TIMEOUT_SECS

      headers = HEADERS.merge({
        "Referer" => "https://muse.jhu.edu/verify?url=%2Fchapter%2F#{chapter_id}%2Fpdf",
        "Referer" => referer,
      })

      if cookie
@@ -52,7 +57,7 @@
      begin
        response = request.execute
      rescue ex : IO::TimeoutError
        raise Muse::Dl::Errors::DownloadError.new("Error downloading chapter. Download took longer than #{DOWNLOAD_TIMEOUT_SECS} seconds.")
        raise Muse::Dl::Errors::DownloadError.new("Error downloading #{url}. Download took longer than #{DOWNLOAD_TIMEOUT_SECS} seconds.")
      end

      # TODO: Add validation for the downloaded file (should be PDF)
@@ -63,7 +68,6 @@
      content_type = response.headers["Content-Type"]
      if content_type.is_a? String
        if /html/.match content_type
          puts response
          response.body.each_line do |line|
            # https://muse.jhu.edu/chapter/2383438/pdf
            # https://muse.jhu.edu/book/67393
@@ -77,6 +81,7 @@
          end
        end
      end

      File.open(tmp_pdf_file, "w") do |file|
        file << response.body
        if file.size == 0
@@ -88,18 +93,41 @@

      pdftk.strip_first_page tmp_pdf_file if strip_first_page

      if add_bookmark
      if bookmark_title
        # Run pdftk and add the bookmark to the file
        pdftk.add_bookmark tmp_pdf_file, chapter_title.strip
        pdftk.add_bookmark tmp_pdf_file, bookmark_title
      end

      # Now we can move the file to the proper PDF filename
      File.rename tmp_pdf_file, final_pdf_file
      File.rename tmp_pdf_file, file_name
    end

    def self.save_chapter(tmp_path : String, chapter_id : String, chapter_title : String, cookie : String | Nil = nil, add_bookmark = true, strip_first_page = true)
      final_pdf_file = chapter_file_name chapter_id, tmp_path

      if File.exists? final_pdf_file
        puts "#{chapter_id} already downloaded"
        return
      end

      # TODO: Remove this hardcoding, and make this more generic by generating it within the Book class
      url = "https://muse.jhu.edu/chapter/#{chapter_id}/pdf"
      referer = "https://muse.jhu.edu/verify?url=%2Fchapter%2F#{chapter_id}%2Fpdf"

      save_url(url, referer, final_pdf_file, tmp_path, cookie, chapter_title, strip_first_page)

      puts "Downloaded #{chapter_id}"
    end

    def self.save_article(tmp_path : String, article_id : String, cookie : String | Nil = nil, article_title = nil, strip_first_page = true)
      file_name = article_file_name article_id, tmp_path
      url = "https://muse.jhu.edu/article/#{article_id}/pdf"
      referer = "https://muse.jhu.edu/article/#{article_id}"
      save_url(url, referer, file_name, tmp_path, cookie, article_title, strip_first_page)
    end

    def self.get_info(url : String) : Muse::Dl::Thing | Nil
      match = /https:\/\/muse.jhu.edu\/(book|journal)\/(\d+)/.match url
    def self.get_info(url : String)
      match = /https:\/\/muse.jhu.edu\/(book|journal|issue|article)\/(\d+)/.match url
      if match
        begin
          response = Crest.get(url).to_s
@@ -108,6 +136,10 @@
            return Muse::Dl::Book.new response
          when "journal"
            return Muse::Dl::Journal.new response
          when "issue"
            return Muse::Dl::Issue.new match[2], response
          when "article"
            return Muse::Dl::Article.new match[2]
          end
        rescue ex : Crest::NotFound
          raise Muse::Dl::Errors::InvalidLink.new("Error - could not download url: #{url}")
diff --git a/src/infoparser.cr b/src/infoparser.cr
index c28252a..7e331db 100644
--- a/src/infoparser.cr
+++ a/src/infoparser.cr
@@ -34,6 +34,18 @@
      myhtml.css("#book_about_info .title").map(&.inner_text).to_a[0].strip
    end

    def self.issue_title(myhtml : Myhtml::Parser)
      begin
        myhtml.css(".card_text .title").map(&.inner_text).to_a[0].strip
      rescue
        nil
      end
    end

    def self.journal_title(myhtml : Myhtml::Parser)
      myhtml.css("#journal_about_info .title").map(&.inner_text).to_a[0].strip
    end

    def self.author(myhtml : Myhtml::Parser)
      myhtml.css("#book_about_info .author").map(&.inner_text).to_a[0].strip.gsub("<BR>", ", ").gsub("\n", " ")
    end
@@ -48,11 +60,15 @@

    def self.publisher(myhtml : Myhtml::Parser)
      myhtml.css("#book_about_info .pub a").map(&.inner_text).to_a[0].strip
    end

    def self.journal_publisher(myhtml : Myhtml::Parser)
      myhtml.css(".card_publisher a").map(&.inner_text).to_a[0].strip
    end

    def self.summary(myhtml : Myhtml::Parser)
      begin
        return myhtml.css("#book_about_info .card_summary").map(&.inner_text).to_a[0].strip
        return myhtml.css(".card_summary").map(&.inner_text).to_a[0].strip
      rescue e : Exception
        STDERR.puts "Could not fetch summary"
        return "NA"
diff --git a/src/issue.cr b/src/issue.cr
new file mode 100644
index 0000000..73a83fb 100644
--- /dev/null
+++ a/src/issue.cr
@@ -1,0 +1,97 @@
"./thing.cr"
require "./fetch.cr"
require "./article.cr"

module Muse::Dl
  class Issue
    getter id : String,
      title : String | Nil,
      articles : Array(Muse::Dl::Article),
      url : String,
      summary : String | Nil,
      publisher : String | Nil,
      info : Hash(String, String),
      volume : String | Nil,
      number : String | Nil,
      date : String | Nil,
      journal_title : String | Nil

    setter :journal_title

    def initialize(id : String, response : String | Nil = nil)
      @id = id
      @url = "https://muse.jhu.edu/issue/#{id}"
      @articles = [] of Muse::Dl::Article
      parse(response) if response
      @info = Hash(String, String).new
    end

    def open_access
      if @info.has_key? "Open Access"
        return @info["Open Access"] == "Yes"
      end
      false
    end

    def parse
      html = Crest.get(@url).to_s
      parse(html)
    end

    def parse(html : String)
      h = Myhtml::Parser.new html
      @info = InfoParser.infobox(h)
      @title = InfoParser.issue_title(h)
      @summary = InfoParser.summary(h)
      @publisher = InfoParser.journal_publisher(h)
      parse_title
      parse_contents(h)
    end

    def parse_title
      t = @title
      unless t.nil?
        @volume = /Volume (\d+)/.match(t).try &.[1]
        @number = /Number (\d+)/.match(t).try &.[1]
        @number = /Issue (\d+)/.match(t).try &.[1] unless @number
        @date = /((January|February|March|April|May|June|July|August|September|October|November|December|Sring|Winter|Fall|Summer) (\d+))/.match(t).try &.[1]
        @date = /(\d{4})/.match(t).try &.[1] unless @date
      end
    end

    def parse_contents(myhtml : Myhtml::Parser)
      unless @journal_title
        journal_title_a = myhtml.css("#journal_banner_title a").first
        if journal_title_a
          @journal_title = journal_title_a.inner_text
        end
      end
      myhtml.css(".articles_list_text ol").each do |ol|
        link = ol.css("li.title a").first
        title = link.inner_text

        pages = ol.css("li.pg")
        if pages.size > 0
          p = pages.first.try &.inner_text
          matches = /(\d+)-(\d+)/.match p
          if matches
            start_page = matches[1].to_i
            end_page = matches[2].to_i
          end
        end

        ol.css("a").each do |l|
          url = l.attribute_by("href").to_s
          matches = /\/article\/(\d+)\/pdf/.match url
          if matches
            a = Muse::Dl::Article.new matches[1]
            a.title = title
            a.start_page = start_page if start_page
            a.end_page = end_page if end_page
            @articles.push a
          end
        end
      end
    end
  end
end
diff --git a/src/journal.cr b/src/journal.cr
index 1f3323a..d431824 100644
--- a/src/journal.cr
+++ a/src/journal.cr
@@ -1,6 +1,44 @@
require "./thing.cr"
require "./infoparser.cr"
require "./issue.cr"

module Muse::Dl
  class Journal < Muse::Dl::Thing
  class Journal
    getter :info, :summary, :publisher, :issues, :title
    @info = Hash(String, String).new
    @summary : String
    @publisher : String
    @issues = [] of Muse::Dl::Issue
    @title : String

    private getter :h

    def initialize(html)
      @h = Myhtml::Parser.new html
      @info = InfoParser.infobox(h)
      @summary = InfoParser.summary(h)
      @publisher = InfoParser.journal_publisher(h)
      @title = InfoParser.journal_title(h)
      parse_volumes(h)
    end

    def open_access
      if @info.has_key? "Open Access"
        return @info["Open Access"] == "Yes"
      end
      false
    end

    def parse_volumes(myhtml : Myhtml::Parser)
      myhtml.css("#available_issues_list_text a").each do |a|
        link = a.attribute_by("href").to_s

        matches = /\/issue\/(\d+)/.match link
        if matches
          issue = Muse::Dl::Issue.new matches[1]
          issue.journal_title = @title
          @issues.push issue
        end
      end
    end
  end
end
diff --git a/src/muse-dl.cr b/src/muse-dl.cr
index 9b71f65..93ccced 100644
--- a/src/muse-dl.cr
+++ a/src/muse-dl.cr
@@ -1,9 +1,10 @@
require "./parser.cr"
require "./pdftk.cr"
require "./fetch.cr"
require "./book.cr"
require "./journal.cr"
require "./util.cr"
require "file_utils"

module Muse::Dl
  VERSION = "1.1.2"
@@ -11,9 +12,15 @@
  class Main
    def self.dl(parser : Parser)
      url = parser.url
      puts "Downloading #{url}"
      thing = Fetch.get_info(url) if url
      return unless thing

      if (thing.open_access) && (parser.skip_oa)
        STDERR.puts "Skipping #{url}, available under Open Access"
        return
      end

      if thing.is_a? Muse::Dl::Book
        unless thing.formats.includes? :pdf
          STDERR.puts "Book not available in PDF format, skipping: #{url}"
@@ -30,34 +37,92 @@
        temp_stitched_file = nil
        pdf_builder = Pdftk.new(parser.tmp)

        unless parser.input_pdf
          # Save each chapter
          thing.chapters.each do |chapter|
            begin
              Fetch.save_chapter(parser.tmp, chapter[0], chapter[1], parser.cookie, parser.bookmarks, parser.strip_first)
            rescue e : Muse::Dl::Errors::MuseCorruptPDF
              STDERR.puts "Got a 'Unable to construct chapter PDF' error from MUSE, skipping: #{url}"
              return
            end
        # Save each chapter
        thing.chapters.each do |chapter|
          begin
            Fetch.save_chapter(parser.tmp, chapter[0], chapter[1], parser.cookie, parser.bookmarks, parser.strip_first)
          rescue e : Muse::Dl::Errors::MuseCorruptPDF
            STDERR.puts "Got a 'Unable to construct chapter PDF' error from MUSE, skipping: #{url}"
            return
          end
          chapter_ids = thing.chapters.map { |c| c[0] }

          # Stitch the PDFs together
          temp_stitched_file = pdf_builder.stitch chapter_ids
          pdf_builder.add_metadata(temp_stitched_file, parser.output, thing)
        else
          x = parser.input_pdf
          pdf_builder.add_metadata(File.open(x), parser.output, thing) if x
        end
        chapter_ids = thing.chapters.map { |c| c[0] }

        # Stitch the PDFs together
        temp_stitched_file = pdf_builder.stitch chapter_ids
        pdf_builder.add_metadata(temp_stitched_file, parser.output, thing)

        temp_stitched_file.delete if temp_stitched_file
        puts "--dont-strip-first-page was on. Please validate PDF file for any errors."
        puts "--dont-strip-first-page was on. Please validate PDF file for any errors." unless parser.strip_first
        puts "DL: #{url}. Saved final output to #{parser.output}"

        # Cleanup the chapter files
        if parser.cleanup
          thing.chapters.each do |c|
            Fetch.cleanup(parser.tmp, c[0])
          end
        end
      elsif thing.is_a? Muse::Dl::Article
        # No bookmarks are needed since this is just a single article PDF
        begin
          Fetch.save_article(parser.tmp, thing.id, parser.cookie, nil, parser.strip_first)
        rescue e : Muse::Dl::Errors::MuseCorruptPDF
          STDERR.puts "Got a 'Unable to construct chapter PDF' error from MUSE, skipping: #{url}"
          return
        end

        # TODO: Move this code elsewhere
        source = Fetch.article_file_name(thing.id, parser.tmp)
        destination = "article-#{thing.id}.pdf"
        # Needed because of https://github.com/crystal-lang/crystal/issues/7777
        FileUtils.cp source, destination
        FileUtils.rm source if parser.cleanup
      elsif thing.is_a? Muse::Dl::Issue
        # Will have no effect if parser has a custom title
        parser.force_set_output Util.slug_filename "#{thing.journal_title} - #{thing.title}.pdf"

        # If file exists and we can't clobber
        if File.exists?(parser.output) && parser.clobber == false
          STDERR.puts "Skipping #{url}, File already exists: #{parser.output}"
          return
        end
        temp_stitched_file = nil
        pdf_builder = Pdftk.new(parser.tmp)

        thing.articles.each do |article|
          begin
            Fetch.save_article(parser.tmp, article.id, parser.cookie, article.title, parser.strip_first)
          rescue e : Muse::Dl::Errors::MuseCorruptPDF
            STDERR.puts "Got a 'Unable to construct chapter PDF' error from MUSE, skipping: #{url}"
            return
          end
        end
        article_ids = thing.articles.map { |a| a.id }

        # Stitch the PDFs together
        temp_stitched_file = pdf_builder.stitch_articles article_ids
        pdf_builder.add_metadata(temp_stitched_file, parser.output, thing)

        # temp_stitched_file.delete if temp_stitched_file
        puts "--dont-strip-first-page was on. Please validate PDF file for any errors." unless parser.strip_first
        puts "DL: #{url}. Saved final output to #{parser.output}"

        # Cleanup the issue files
        if parser.cleanup
          thing.articles.each do |a|
            Fetch.cleanup_articles(parser.tmp, a.id)
          end
        end
      elsif thing.is_a? Muse::Dl::Journal
        thing.issues.each do |issue|
          begin
            # Update the issue
            issue.parse
            parser.url = issue.url
            Main.dl parser
          rescue e
            puts e.message
            puts "Faced an exception with previous issue, continuing"
          end
        end
      end
diff --git a/src/parser.cr b/src/parser.cr
index 658b23b..e462445 100644
--- a/src/parser.cr
+++ a/src/parser.cr
@@ -10,15 +10,15 @@
    @strip_first = true
    @output = DEFAULT_FILE_NAME
    @url : String | Nil
    @input_pdf : String | Nil
    @clobber = false
    @input_list : String | Nil
    @cookie : String | Nil
    @h : Bool | Nil
    @skip_oa = false

    DEFAULT_FILE_NAME = "tempfilename.pdf"

    getter :bookmarks, :tmp, :cleanup, :output, :url, :input_pdf, :clobber, :input_list, :cookie, :strip_first
    getter :bookmarks, :tmp, :cleanup, :output, :url, :clobber, :input_list, :cookie, :strip_first, :skip_oa
    setter :url

    # Update the output filename unless we have a custom one passed
@@ -26,6 +26,10 @@
      @output = output_file unless @output != DEFAULT_FILE_NAME
    end

    def force_set_output(output_file : String)
      @output = output_file
    end

    def reset_output_file
      @output = DEFAULT_FILE_NAME
    end
@@ -41,7 +45,6 @@

    def initialize(arg : Array(String) = [] of String)
      @tmp = Dir.tempdir
      @input_pdf = nil

      parser = OptionParser.new
      parser.banner = <<-EOT

@@ -56,10 +59,10 @@
      parser.on(long_flag = "--tmp-dir PATH", description = "Temporary Directory to use") { |path| @tmp = path }
      parser.on(long_flag = "--output FILE", description = "Output Filename") { |file| @output = file }
      parser.on(long_flag = "--no-bookmarks", description = "Don't add bookmarks in the PDF") { @bookmarks = false }
      parser.on(long_flag = "--input-pdf INPUT", description = "Input Stitched PDF. Will not download anything") { |input| @input_pdf = input }
      parser.on(long_flag = "--clobber", description = "Overwrite the output file, if it already exists. Not compatible with input-pdf") { @clobber = true }
      parser.on(long_flag = "--dont-strip-first-page", description = "Disables first page from being stripped. Use carefully") { @strip_first = false }
      parser.on(long_flag = "--cookie COOKIE", description = "Cookie-header") { |cookie| @cookie = cookie }
      parser.on(long_flag = "--skip-open-access", description = "Don't download open access content") { @skip_oa = true }
      parser.on("-h", "--help", "Show this help") { @h = true; puts parser }

      parser.unknown_args do |args|
@@ -70,7 +73,6 @@
        end
        if File.exists? args[0]
          @input_list = args[0]
          @input_pdf = nil
        else
          @url = args[0]
        end
diff --git a/src/pdftk.cr b/src/pdftk.cr
index 961f439..41ebcf0 100644
--- a/src/pdftk.cr
+++ a/src/pdftk.cr
@@ -70,7 +70,6 @@

    def add_metadata(input_file : File, output_file : String, book : Book)
      # First we have to dump the current metadata
      metadata_text_file = File.tempfile("muse-dl-metadata-tmp", ".txt")
      keywords = "Publisher:#{book.publisher}, Published:#{book.date}"

      # Known Info keys, if they are present
@@ -79,47 +78,95 @@
          keywords += ", #{label}:#{book.info[label]}"
        end
      end

      metadata_text = gen_metadata(book.title, keywords, book.summary.gsub(/\n\s+/, " "), book.author)
      write_metadata(input_file, output_file, metadata_text)
    end

      text = <<-EOT

    def gen_metadata(title : String, keywords : String, subject : String, author : String | Nil = nil)
      metadata = <<-EOT

      InfoBegin
      InfoKey: Creator
      InfoValue: Project MUSE (https://muse.jhu.edu/)
      InfoValue:
      InfoBegin
      InfoKey: Producer
      InfoValue: Muse-DL/#{Muse::Dl::VERSION}
      InfoValue:
      InfoBegin
      InfoKey: Title
      InfoValue: #{book.title}
      InfoValue: #{title}
      InfoBegin
      InfoKey: Keywords
      InfoValue: #{keywords}
      InfoBegin
      InfoKey: Author
      InfoValue: #{book.author}
      InfoBegin
      InfoKey: Subject
      InfoValue: #{book.summary.gsub(/\n\s+/, " ")}
      InfoValue: #{subject}
      InfoBegin
      InfoKey: ModDate
      InfoValue:
      InfoBegin
      InfoKey: CreationDate
      InfoValue:

      EOT

      unless author.nil?
        metadata += <<-EOT

        InfoBegin
        InfoKey: Author
        InfoValue: #{author}
        EOT
      end

      return metadata
    end

    def write_metadata(input_file : File, output_file : String, text)
      metadata_text_file = File.tempfile("muse-dl-metadata-tmp", ".txt")
      File.write(metadata_text_file.path, text)

      is_success = execute [input_file.path, "update_info_utf8", metadata_text_file.path, "output", output_file]
      if !is_success
        raise Muse::Dl::Errors::PDFOperationError.new("Error adding metadata to book.")
      end
      metadata_text_file.delete
    end

    def add_metadata(input_file : File, output_file : String, issue : Issue)
      # First we have to dump the current metadata
      metadata_text_file = File.tempfile("muse-dl-metadata-tmp", ".txt")
      keywords = "Journal:#{issue.journal_title}, Published:#{issue.date},Volume:#{issue.volume},Number:#{issue.number}"
      ["ISSN", "Print ISSN", "DOI", "Language", "Open Access"].each do |label|
        if issue.info.has_key? label
          keywords += ", #{label}:#{issue.info[label]}"
        end
      end

      # TODO: Move this to Issue class

      s = issue.summary
      unless s.nil?
        summary = s.gsub(/\n\s+/, " ")
      else
        summary = "NA"
      end

      t = issue.title

      unless t.nil?
        title = t
      else
        title = "NA"
      end
      # TODO: Add support for all authors in the PDF
      metadata = gen_metadata(title, keywords, summary)
      write_metadata(input_file, output_file, metadata)
    end

    def stitch(chapter_ids : Array(String))
      output_file = File.tempfile("muse-dl-stitched-tmp", ".pdf")
      # Do some sanity checks on each Chapter PDF
      chapter_ids.each do |id|
        raise Muse::Dl::Errors::MissingChapter.new unless File.exists? Fetch.chapter_file_name(id, @tmp_file_path)
        raise Muse::Dl::Errors::MissingFile.new unless File.exists? Fetch.chapter_file_name(id, @tmp_file_path)
        raise Muse::Dl::Errors::CorruptFile.new unless File.size(Fetch.chapter_file_name(id, @tmp_file_path)) > 0
      end

@@ -132,6 +179,29 @@
      # TODO: Validate final file here
      if !is_success
        raise Muse::Dl::Errors::PDFOperationError.new("Error stitching chapters together.")
      end

      return output_file
    end

    # TODO: Merge with stitch
    def stitch_articles(article_ids : Array(String))
      output_file = File.tempfile("muse-dl-stitched-tmp", ".pdf")
      # Do some sanity checks on each Chapter PDF
      article_ids.each do |id|
        raise Muse::Dl::Errors::MissingFile.new unless File.exists? Fetch.article_file_name(id, @tmp_file_path)
        raise Muse::Dl::Errors::CorruptFile.new unless File.size(Fetch.article_file_name(id, @tmp_file_path)) > 0
      end

      # Now let's stitch them together
      article_files = article_ids.map { |id| Fetch.article_file_name(id, @tmp_file_path) }
      args = article_files + ["cat", "output", output_file.path]
      is_success = execute args

      # TODO: Validate final file here
      if !is_success
        puts args
        raise Muse::Dl::Errors::PDFOperationError.new("Error stitching articles together.")
      end

      return output_file
diff --git a/src/thing.cr b/src/thing.cr
index 96a105a..2b0e3fd 100644
--- a/src/thing.cr
+++ a/src/thing.cr
@@ -19,6 +19,13 @@

    private getter :h

    def open_access
      if @info.has_key? "Open Access"
        return @info["Open Access"] == "Yes"
      end
      false
    end

    def initialize(html : String)
      @h = Myhtml::Parser.new html
      @info = InfoParser.infobox(h)
diff --git a/src/util.cr b/src/util.cr
index 5ed414a..0ddd1ae 100644
--- a/src/util.cr
+++ a/src/util.cr
@@ -1,8 +1,8 @@
module Muse::Dl
  class Util
    # Generates a safe filename
    def self.slug_filename(input : String)
      input.strip.tr("\u{202E}%$|:;/\t\r\n\\", "-")
      input.strip.tr("\u{202E}%$|:;/\"\t\r\n\\", "-")
    end
  end
end
diff --git a/spec/fixtures/chapter-2379787.html b/spec/fixtures/chapter-2379787.html
new file mode 100644
index 0000000..2e5e3c2 100644
--- /dev/null
+++ a/spec/fixtures/chapter-2379787.html
@@ -1,0 +1,359 @@
<style>
.page404 {
	display: table;
	width: 100%;
	padding: 60px 4em;
	min-height: 350px;
}
.page404 .int {
	display: table-cell;
	vertical-align: middle;
	text-align: left; 
}
.page404 h4 {
	margin-bottom: 10px;
	font-weight: 700;
}
.page404 .logo {
	display: table-cell;
	width: 23%;
	vertical-align: middle;
	padding-right: 30px;
}
.page404 blockquote {
	border: none;
	padding-left: 0;
}
</style>


<!DOCTYPE html>
<html lang="en">
	<head>
		<!-- Global site tag (gtag.js) - Google Analytics -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-58347753-2"></script>
		<script>
		  window.dataLayer = window.dataLayer || [];
		  function gtag(){dataLayer.push(arguments);}
		  gtag('js', new Date());		
		  gtag('config', 'UA-58347753-2');
		</script>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<meta property="og:image" content="/images/muselogo_dark.jpg" />

		
		
		<title>Project MUSE</title>
		<link rel="search" type="application/opensearchdescription+xml" title="Search Project MUSE from your browser's Searchbar" href="/plugins/muse-opensearch.xml" />
		
		
		<link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
		<link href="/css/jquery.qtip2.css" rel="stylesheet" type="text/css" />
<!-- 		foundation 6.4.1 custom float/typ/vis 250rem max width 30col float grid -->
		<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700,700i" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="/css/foundation.min.css"/>
		<link rel="stylesheet" type="text/css" href="/css/style_home2.css?031820"/>
		
		
		
		
		

		<script type="text/javascript" src="/js/jquery3.js"></script>		
		<script type="text/javascript" src="/js/pre.js"></script>
		<script type="text/javascript" src="/js/core/head.js?new"></script>
		
		<script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4ecb5479089cb81a"></script>

		
		
		
		<title>Article</title>
	</head>
	<body>
		<a id="skip" href="#skip_target">[Skip to Content]</a>
		<span id="top"></span>
		<div id="header" role="banner" aria-label="header">
			<div class="row wrap" id="institution_banner">
				<div class="content">
					<div id="institution_wrap" class="columns small-15 medium-text-left">
						<div id="institution" class="img_text_col">
							<div class="img_contain_left"><img src="/images/institution.png" alt="institution icon" /></div>
							<div class="text_contain_left"><span class="small"><a href='/account' class='color_white login_status'>Institutional Login</a></span></div>
						</div>
					</div>
					<div id="person_wrap" class="columns small-15">
						<div id="person" class="img_text_col">
							<div class="img_contain_right"><img src="/images/person.png" alt="account icon" /></div>
							<div class="text_contain_right"><span class="small"><a href="/account/" class="color_white login_status" onclick="gtag('event', 'click', {'event_category': 'Account link', 'event_label': 'account name link - header'});">LOG IN</a></span></div>
						</div>
					</div>
				</div>
			</div>
			
			
			
			<div class="row wrap" id="search_banner">
				<div class="content">
					<div class="medium-4 small-4 columns" id="header_logo_wrap">
						<div id="header_logo">
							<a href="/"><img src="/images/muselogo.png" alt="Project MUSE" class="show-for-large"/>
							<img src="/images/muselogo_notext.png" alt="Project MUSE" class="hide-for-large"/></a>							
						</div>
					</div>
					<div class="medium-21 small-22 columns" id="search_bar_wrap">				
						<div class="row"> 
							<div id="browse_button_wrap">
								<a id="browse_button" href="/browse" onclick="gtag('event', 'click', {'event_category': 'Browse link', 'event_label': 'browse button - header'});"><span class="small">browse</span></a>
							</div>
							<div id="or_text_wrap" class="show-for-medium">
								<div id="or_text">
									<span class="small">or</span> 
								</div>
							</div>
							<div id="search_input_wrap" class="small-30">
								<div id="search_input">
  								
  								<noscript>
										<form method="post" action="/search/">
										<input name="no_js_header_query"/>
										<input type="hidden" name="action" value="search"/>
										<input type="hidden" name="t" value="header"/>
										<a id="search_button">
										
										<input type="image" src="/images/search_white.png" alt="Search icon"/>
										
                    </a>
										</form>
									</noscript>
								
									<script>document.write('<input name="search_input_header" id="search_input_header" aria-label="search input"/>');</script>									
									
									<script>document.write('<a id="search_button"><img src="/images/search_white.png" alt="Search icon"/></a>');</script>
									
									
								</div>
							</div>
						</div>				
					</div>
				
					<div class="medium-5 small-4 columns" id="menu_wrap">
						<div id="menu" class="menu-btn">
	<div class="nav-toggle">
		<div class="nav-toggle-btn">
			<a href="#" class="menu-icon-wrap">
				<span class="icon"></span>
				<span class="small show-for-large">menu</span>
			</a>
		</div>

		<div class="nav-mobile">
			<a href="/search">Advanced Search</a>
			<a href="/browse">Browse</a>
			<script>
				document.write('<div class="accordion">');
			</script>
			<noscript>
				<div class="accordion noscript">
			</noscript>
				<a href="#" class="acc_trig open"><span>MyMUSE Account</span></a>
				<div class="acc_block">
					<a href="/account">Log In / Sign Up</a>
					<a href="/account/change">Change My Account</a>
					<a href="/account/user_settings">User Settings</a>
					<a href="/account/">Access via Institution</a>
					<a href="/account/saved_items">MyMUSE Library</a>
					<a href="/account/search_history">Search History</a>
					<a href="/account/view_history">View History</a>
					<a href="/account/purchase_history">Purchase History</a>
					<a href="/account/alerts">MyMUSE Alerts</a>
																
				</div>
			</div>									
			
			<div class="nav-mobile-footer">
				<!--<a class="modal_trigger">Contact Support</a>-->
				<a href="/contact">Contact Support</a>
			</div>
		</div>
	</div>
</div>
		
 
					</div>
				</div>
			</div>
			
			
			
		</div>



<div class="page404" id="main">
	<div class="logo">
		<img src="/images/muselogo_notext.png" alt="MUSE logo">
	</div>
	<div class="int">
		<html><head><title>Error</title></head><body>Unable to construct chapter PDF</body></html>

	</div>
</div>


		<div id="footer_block" role="banner" aria-label="footer">
			<div class="content">
				<div class="wrap row" id="about_wrap">
					<div id="about">
						<h3>Project MUSE Mission</h3>
						<p>Project MUSE promotes the creation and dissemination of essential humanities and social science resources through collaboration with libraries, publishers, and scholars worldwide. Forged from a partnership between a university press and a library, Project MUSE is a trusted part of the academic and scholarly community it serves.</p>
					</div>
					<div id="about_logo" class="columns medium-10 show-for-large">
						<img src="/images/muselogo_notext.png" alt="MUSE logo"/>
					</div>
				</div>
			</div>
			
			<div class="footer_main">
				<div class="footer_item_color wrap">
					<div class="footer_item_left">
						<div class="group">
							<div class="footer_item_about cont_sub">
								<h5 class="small">about</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/discovery-partners/">Discovery Partners</a></li>
									<li><a href="https://about.muse.jhu.edu/about/advisory-board/">Advisory Board</a></li>
									<li><a href="https://about.muse.jhu.edu/about/journal-subscribers/">Journal Subscribers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/book-customers">Book Customers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/at-conferences/">Conferences</a></li>
								</ul>
							</div>
							<div class="footer_item_res cont_sub">
								<h5 class="small">resources</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/resources/news/">News & Announcements</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/promotional-materials">Promotional Material</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/alerts">Get Alerts</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/muse-presentations">Presentations</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_what cont_sub">
								<h5 class="small">what's on muse</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/muse">Open Access</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/journals">Journals</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/books">Books</a></li>
								</ul>
							</div>
							<div class="footer_item_info cont_sub">
								<h5 class="small">information for</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/librarians">Librarians</a></li>
									<li><a href="https://about.muse.jhu.edu/individuals">Individuals</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="footer_item_right">
						<div class="group">
							<div class="footer_item_social cont_sub">
								<h5 class="small">Contact</h5>
								<ul>
									<li class="clear"><a href="/contact">Contact Us</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/help-overview">Help</a></li>
								</ul>
								<ul>
									<li>
										<ol class="social_icons">
											<li class="list_h"><a href="https://www.facebook.com/ProjectMUSE"><img src="/images/footer_icon_fb.png" alt="Facebook" /></a></li>
											<li class="list_h"><a href="https://www.linkedin.com/company/projectmuse/"><img src="/images/footer_icon_linkedin.png" alt="Linkedin" /></a></li>
											<li class="list_h"><a href="https://twitter.com/ProjectMUSE"><img src="/images/footer_icon_twitter.png" alt="Twitter" /></a></li>
										</ol>
									</li>
								</ul>
							</div>
							<div class="footer_item_policy cont_sub">
								<h5 class="small">Policy & Terms</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/about/accessibility/">Accessibility</a></li>
									<li><a href="/privacy_policy">Privacy Policy</a></li>
									<li><a href="/terms_use">Terms of Use</a></li>	
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_addr cont_sub">
								<p class="address"><span>2715 North Charles Street<br/>Baltimore, Maryland, USA 21218</span></p>
								<p class="phone"><span><a href="tel:1-410-516-6989">+1 (410) 516-6989</a></span><br>
								<span><a href="mailto:muse@press.jhu.edu">muse@press.jhu.edu</a></span></p>
								<p class="footer_text_sm copy color_oxfordblue hide-for-small"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>
							</div>
							<div class="footer_item_logo cont_sub">
								<p class="show-for-medium"><span class="semiboldit footer_text_sm">Now and always,<br/>The Trusted Content Your Research Requires.</span></p>
								<p><span><a href="https://muse.jhu.edu">
								
								<img class="show-for-medium" src="/images/muselogoblack.png" alt="Project MUSE logo" />
								
								<img class="hide-for-medium" src="/images/muselogo.png" alt="Project MUSE logo" /></a></span></p>
								<p class="hide-for-medium"><span class="semiboldit footer_text_sm">Now and always, The Trusted Content Your Research Requires.</span></p>
								<p class="hide-for-small"><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="clear"></div>
				</div>
			</div>
			<div class="footer_item_sub wrap hide-for-medium">
				<p><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>		
				<p class="footer_text_sm copy color_oxfordblue"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>			
			</div>		
		</div>
		
		
		
		
		<div id="btn_top">
			<a href="#top"><span>Back To Top</span></a>
		</div>
		
		
		
		  <input type="hidden" name="cookie_acknowledgement_type"  id="cookie_acknowledgement_type" value="cookie_acknowledgement">
		
		
		
			<div id="cookies_msg">
				<p>This website uses cookies to ensure you get the best experience on our website. Without cookies your experience may not be seamless.</p>
				<script>document.writeln('<a href="javascript://" class="btn_accept" id="accept_cookie_msg">Accept</a>');</script>
				<noscript>	
						
								<form method="post" action="/account/set_attribute_no_ajax/cookie_acknowledgement/1">
						
						<input type="submit" class="btn_accept" value="accept">
						</form>
				</noscript>
			</div>
		
		
		<script type="text/javascript" src="/js/lightbox.js"></script>
		<script type="text/javascript" src="/js/jquery.qtip2.min.js"></script>
		<script type="text/javascript" src="/js/post.js"></script>
		
		<script type="text/javascript" src="/js/footnotes.js"></script>
		
		
		<script type="text/javascript" src="/js/references.js"></script>
		
	</body>
</html>

diff --git a/spec/fixtures/issue-35852.html b/spec/fixtures/issue-35852.html
new file mode 100644
index 0000000..7e50f60 100644
--- /dev/null
+++ a/spec/fixtures/issue-35852.html
@@ -1,0 +1,1263 @@
<!DOCTYPE html>
<html lang="en">
	<head>
		<!-- Global site tag (gtag.js) - Google Analytics -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-58347753-2"></script>
		<script>
		  window.dataLayer = window.dataLayer || [];
		  function gtag(){dataLayer.push(arguments);}
		  gtag('js', new Date());		
		  gtag('config', 'UA-58347753-2');
		</script>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<meta property="og:image" content="/issue/35852/og_image.jpg" />
		
		
		
		
		<title>Project MUSE - Constitutional Studies-Volume 1, Issue 2, 2016</title>
		<link rel="search" type="application/opensearchdescription+xml" title="Search Project MUSE from your browser's Searchbar" href="/plugins/muse-opensearch.xml" />
		
		
		<link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
		<link href="/css/jquery.qtip2.css" rel="stylesheet" type="text/css" />
<!-- 		foundation 6.4.1 custom float/typ/vis 250rem max width 30col float grid -->
		<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700,700i" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="/css/foundation.min.css"/>
		<link rel="stylesheet" type="text/css" href="/css/style_home2.css?031820"/>
		
		
		
		
		

		<script type="text/javascript" src="/js/jquery3.js"></script>		
		<script type="text/javascript" src="/js/pre.js"></script>
		<script type="text/javascript" src="/js/core/head.js?new"></script>
		
		<script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4ecb5479089cb81a"></script>

		
		
		
		<title>Article</title>
	</head>
	<body>
		<a id="skip" href="#skip_target">[Skip to Content]</a>
		<span id="top"></span>
		<div id="header" role="banner" aria-label="header">
			<div class="row wrap" id="institution_banner">
				<div class="content">
					<div id="institution_wrap" class="columns small-15 medium-text-left">
						<div id="institution" class="img_text_col">
							<div class="img_contain_left"><img src="/images/institution.png" alt="institution icon" /></div>
							<div class="text_contain_left"><span class="small"><a href='/account' class='color_white login_status'>Institutional Login</a></span></div>
						</div>
					</div>
					<div id="person_wrap" class="columns small-15">
						<div id="person" class="img_text_col">
							<div class="img_contain_right"><img src="/images/person.png" alt="account icon" /></div>
							<div class="text_contain_right"><span class="small"><a href="/account/" class="color_white login_status" onclick="gtag('event', 'click', {'event_category': 'Account link', 'event_label': 'account name link - header'});"><span class="login_statement_unauthenticated">LOG IN</span></a></span></div>
						</div>
					</div>
				</div>
			</div>
			
			
			
			<div class="row wrap" id="search_banner">
				<div class="content">
					<div class="medium-4 small-4 columns" id="header_logo_wrap">
						<div id="header_logo">
							<a href="/"><img src="/images/muselogo.png" alt="Project MUSE" class="show-for-large"/>
							<img src="/images/muselogo_notext.png" alt="Project MUSE" class="hide-for-large"/></a>							
						</div>
					</div>
					<div class="medium-21 small-22 columns" id="search_bar_wrap">				
						<div class="row"> 
							<div id="browse_button_wrap">
								<a id="browse_button" href="/browse" onclick="gtag('event', 'click', {'event_category': 'Browse link', 'event_label': 'browse button - header'});"><span class="small">browse</span></a>
							</div>
							<div id="or_text_wrap" class="show-for-medium">
								<div id="or_text">
									<span class="small">or</span> 
								</div>
							</div>
							<div id="search_input_wrap" class="small-30">
								<div id="search_input">
  								
  								<noscript>
										<form method="post" action="/search/">
										<input name="no_js_header_query"/>
										<input type="hidden" name="action" value="search"/>
										<input type="hidden" name="t" value="header"/>
										<a id="search_button">
										
										<input type="image" src="/images/search_white.png" alt="Search icon"/>
										
                    </a>
										</form>
									</noscript>
								
									<script>document.write('<input name="search_input_header" id="search_input_header" aria-label="search input"/>');</script>									
									
									<script>document.write('<a id="search_button"><img src="/images/search_white.png" alt="Search icon"/></a>');</script>
									
									
								</div>
							</div>
						</div>				
					</div>
				
					<div class="medium-5 small-4 columns" id="menu_wrap">
						<div id="menu" class="menu-btn">
	<div class="nav-toggle">
		<div class="nav-toggle-btn">
			<a href="#" class="menu-icon-wrap">
				<span class="icon"></span>
				<span class="small show-for-large">menu</span>
			</a>
		</div>

		<div class="nav-mobile">
			<a href="/search">Advanced Search</a>
			<a href="/browse">Browse</a>
			<script>
				document.write('<div class="accordion">');
			</script>
			<noscript>
				<div class="accordion noscript">
			</noscript>
				<a href="#" class="acc_trig open"><span>MyMUSE Account</span></a>
				<div class="acc_block">
					<a href="/account">Log In / Sign Up</a>
					<a href="/account/change">Change My Account</a>
					<a href="/account/user_settings">User Settings</a>
					<a href="/account/">Access via Institution</a>
					<a href="/account/saved_items">MyMUSE Library</a>
					<a href="/account/search_history">Search History</a>
					<a href="/account/view_history">View History</a>
					<a href="/account/purchase_history">Purchase History</a>
					<a href="/account/alerts">MyMUSE Alerts</a>
																
				</div>
			</div>									
			
			<div class="nav-mobile-footer">
				<!--<a class="modal_trigger">Contact Support</a>-->
				<a href="/contact">Contact Support</a>
			</div>
		</div>
	</div>
</div>
		
 
					</div>
				</div>
			</div>
			
			
			
		</div>

<script type="text/javascript">
  var next_iid = 0;
</script>
<script src="/js/jquery.bullseye.js"></script>
<script src="/js/serval/issue.js"></script>
  
<script type="text/javascript">
  $(document).ready(function() {
    var window_w = $(window).width();
    var img_w = "";
    var img_h = "";
    var opt_w = img_w;
    var opt_h = img_h;    
    var ratio = 1;
    if(img_w >= window_w) { 
      opt_w = window_w - 60; 
      ratio = opt_w/img_w;
    }    
    opt_h = ratio*img_h;
    $('#issue_cover_thumb').qtip({
      content: {
        text: "<div class='qtip-cover'><p><a href='/issue/35852/image/front_cover.jpg'>View Full Resolution</a></p><img height='"+opt_h+"' width='"+opt_w+"' src='/issue/35852/image/front_cover.jpg' /><div class='qtip-caption'><p><b>Front Cover</b>:  Bronze statue of John Marshall by American sculptor William Wetmore Story. (Image courtesy of Shutterstock.com.)</p></div> </div>",
        title: {
          text: 'Cover for Volume 1, Issue 2, 2016',
          button: 'Close'
        }, 
      },
      show: 'click',
      hide: false,
      position: {
        my: 'top left',
        at: 'top left',
        target: $('.content')
      },
      style: {
        classes: 'ui-tooltip-dark ui-tooltip-rounded ui-tooltip-shadow qtip-journalcover'
      },
      hide: 'unfocus'      
    });
  });
</script>
  
<script>
  $(document).ready(function() {
    $("#login_alert").click(function(){
       if (confirm("You must be logged into a MyMUSE account in order to create an alert for this journal.\n\nContinue to login?")){
	  $("#login_alert_form").submit();
       }
    });
  });
</script>
<div id="main">
	<div id="journal_about_wrap" class="about_wrap">
		<div id="journal_banner_wrap" class="banner_wrap">
			<div class="content" style="background-color:rgb(153,153,153);background:linear-gradient(to right, rgb(0,0,0),rgb(153,153,153) 70%); filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#000000', endColorstr='#999999');">
				<div id="journal_banner_title_wrap" class="wrap left banner_title_wrap">
					<div id="journal_banner_title" class="banner_title">
						<h2><a href="/journal/714">Constitutional Studies</a></h2>
					</div>
				</div>
				<div id="journal_banner_search_wrap" class="show-for-medium wrap banner_search_wrap">
					<div id="journal_banner_search" role="search" aria-label="search inside this journal">
						<div>
							<!-- nojs variant -->
							<noscript>
							  <form method="post" action="/search/" aria-label="search within this journal text input" title="search within this journal text input">
								<input type="text" name="no_js_header_query" aria-label="search within this journal text input" placeholder="Search Within Journal"/>
								<input type="hidden" name="action" value="search" />
								<input type="hidden" name="t" value="search_journal_header" />
								<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="714" />
								<a id="search_within_journal_button">
								  
									<input type="image" alt="a magnifying glass search icon" src="/images/search_blue.png" aria-label="submit search"/>
								  
								</a>
							  </form>
							</noscript>  
							<!-- js variant -->
							<script>
							  // hook for js, journal limiter
							  document.write('<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="714" />');
							  // text input
							  document.write('<input type="text" name="search_within_journal_input" id="search_within_journal_input" title="search within journal" aria-label="search within journal" placeholder="Search Within Journal"/>');
							</script>
							
							<script>
							  // light mode button
							  document.write('<a id="search_within_journal_button"><img src="/images/search_blue.png" alt="a magnifying glass search icon"/></a>');
							</script>
							
						</div>
					</div>
				</div>
				<div class="clear"></div>
			</div>	
		</div>
		<div id="journal_about" class="wrap about">
		
		
		  
		    <form id="login_alert_form" method="POST" action="/account/">					
		    <input type="hidden" name="return_on_login" value="/issue/35852">
		    <a id="login_alert" class="btn_add_alert">+ MUSE Alert</a>
		    </form>
		  
		
		
		
		<script>
			var html = '<div id="share_block">'+
			'<div id="share_block_text">'+
			'<div class="social">'+
			'<ul class="addthis_toolbox addthis_default_style rightnav_links_share" addthis:url="https://muse.jhu.edu/issue/35852" addthis:title="Project MUSE - Constitutional Studies: Volume 1, Issue 2, 2016">'+
			'<li><a class="addthis_button_citeulike addthis_24x24_style"></a>'+
			'<a class="addthis_button_facebook addthis_24x24_style"></a>'+
			'<a class="addthis_button_delicious addthis_24x24_style"></a>'+
			'<a class="addthis_button_twitter addthis_24x24_style" tw:screen_name="ProjectMUSE"></a>'+
			'<a class="addthis_button_google addthis_24x24_style"></a>'+
			'<a href="http://www.addthis.com/bookmark.php?v=250&amp;pubid=xa-4ecac55a1fd58a05" tabindex="-1" class="addthis_button_compact addthis_24x24_style"></a></li>'+
			''+
			'</div>'+
			'</div>'+
			'</div>';
			document.write(html);
		</script>
			<div class="title_wrap">
				<h2>In this Issue</h2>
			</div>
		
			<div id="journal_about_info_wrap" class="about_info_wrap">
				<div id="journal_about_info" class="cards_wrap about_info" role="complementary" aria-label="journal information">
					<div class="card">
						
						<div class="card_image">
							<img id="issue_cover_thumb" src="/issue/35852/image/front_cover.jpg?format=180" alt="issue cover image"/>
							
							
							<div style="text-align: center; padding-top: 10px; font-size: 15px;">
								<a href="#info_wrap">Additional Information</a>
							</div>
						</div>
						
						<div class="card_text ">
							<ul>
							<li class="title"><span><a href="/journal/714">Volume 1, Issue 2, 2016</a></span></li>
							
							
								<li class="type"><span class="issue">Issue</span></li>
								<li>
								
								<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/issue/35852">

	

	<span class="link_text">
	View
	</span>
	</a>
</li>






	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="issue:35852"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/issue:35852/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/issue/035852" style="display:none" tabindex="-1">contents</a>
</div>

                                                                                                                                
								</li>
								
								
								
								
								<!--
								
								-->
								
								
								
								
							</ul>
						</div>
						
						
						<div class="card_summary_wrap">
							<div class="card_summary">
								<p><i>Constitutional Studies</i> publishes work from a variety of disciplines that addresses the theory and practice of constitutional government. The journal seeks work of the highest quality that expands our understanding of constitutional democratic institutions and the bases for their legitimacy, practices of constitutional self-government, formal and informal constitutional systems, approaches to constitutional jurisprudence, and related subjects.</p>
							</div>
							<div class="card_publisher_image">
								
									
									<a href="/search?action=browse&limit=publisher_id:19"><img src="/publisher/19/image/colophon.jpg" alt="publisher colophon"/></a>
									
								
							</div>							
							<div class="card_publisher">
								
								<h4 class="small">published by</h4>
								<span><a href="/search?action=browse&limit=publisher_id:19">University of Wisconsin Press</a></span>
								
							</div>
							<div class="card_current">
								
								<h4 class="small">viewing issue</h4>
								<span>Volume 1, Issue 2, 2016</span>
								
							</div>

							
						</div>
					</div>
				</div>
				
			
				<div id="journal_about_content_select" class="row about_content_select">
					
<!-- 					<div class="columns large-20 full"> -->
					<div class="columns small-30 full">
						<div class="toc_header_wrap">
							<div class="option" id="toc_header">
								<h2>Table of Contents</h2>
							</div>
							
								<div id="toc_format_wrap" class="option">
								  <a class="toc_format_button" href="/issue/35852/print">View Formatted Version</a>
								</div>
								
						</div>
						
						<div id="articles_list_wrap" class="alternate_content_render">
							<div class="articles_list_text toc " role="main" aria-label="articles in this issue">
								
							  <a id="skip_target"></a>

								<div class="cards_wrap vertical_list">
		<!-- 
									<div class="title_wrap partial">
										<h2>Articles</h2>
									</div>
		 -->


									

									<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648783">The Limits of Veneration: Public Support for a New Constitutional Convention</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22William D. Blake%22">William D. Blake</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Sanford V. Levinson%22">Sanford V. Levinson</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 1-22</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648783">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648783/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648783"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648783/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648783" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648783 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648784">Secession and Nullification as a Global Trend</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Ran Hirschl%22">Ran Hirschl</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 23-40</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648784">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648784/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648784"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648784/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648784" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648784 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648785">Challenging Constitutionalism in Post-Apartheid South Africa</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Heinz Klug%22">Heinz Klug</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 41-58</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648785">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648785/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648785"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648785/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648785" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648785 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648786">Democracy by Lawsuit: Or, Can Litigation Alleviate the European Union’s “Democratic Deficit?”</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Tommaso Pavone%22">Tommaso Pavone</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 59-80</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648786">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648786/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648786"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648786/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648786" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648786 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648787">Private Enforcement of Constitutional Guarantees in the Ku Klux Act of 1871</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Paul J. Gardner%22">Paul J. Gardner</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 81-95</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648787">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648787/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648787"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648787/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648787" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648787 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/648788">Sober Second Thoughts: Evaluating the History of Horizontal Judicial Review by the U.S. Supreme Court</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Keith E. Whittington%22">Keith E. Whittington</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 97-116</li>
						
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/open_access.png" alt="open access"/>
</span>

<ul id="action_btns">



<li>
<a href="/article/648788">

	<img src="/images/html_icon.png" class="icon" alt="View HTML">

	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/648788/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:648788"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:648788/non_js">Save</a></span>
		</noscript>
	
</li>

</ul>
  <a href="/article/0648788" style="display:none" tabindex="-1">contents</a>
</div>

			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 648788 -->


							
								</div>
							</div>
							
						</div>
					</div>
					
					
					
<!-- rightnav here -->
				
				
									
				</div>





<!-- 
<div style="background-color: orange; width: 100%; padding: 25px;">
 
  <div>PREV: <a href="/article/35402">Volume 1, Issue 1, 2016</a></div>
 
 
</div>
 -->


			</div>
		</div>
		<div id="previous_next_interface" class="row wrap">
			<div class="columns small-30 large-15 full">
			
				<div class="title_wrap">
					<h2>Previous Issue</h2>
				</div>
				<p><a href="/issue/35402">Volume 1, Issue 1, 2016</a></p>
			
			</div>
			<div class="columns small-30 large-15 full">
			
			</div>	
		</div>
		
		<div id="info_wrap" class="row wrap">
	<div class="column full">
		<div class="title_wrap details">
			<h2>Additional Information</h2>
		</div>
		<div class="details_tbl">		
							
			<div class="details_row">
				<div class="cell label">
					ISSN
				</div>
				<div class="cell">
					2474-9419
				</div>
			</div>
			
			
			<div class="details_row">
				<div class="cell label">
					Print ISSN
				</div>
				<div class="cell">
					2474-9427
				</div>
			</div>
			
			
			
			
			
			
									
			
			<div class="details_row">
				<div class="cell label">
					Launched on MUSE
				</div>
				<div class="cell">
					2017-02-21
				</div>
			</div>
			
			
			
			
			<div class="details_row">
				<div class="cell label">
					Open Access
				</div>
				<div class="cell">
					
					Yes
					
				</div>
			</div>
			
			
			
				
			
			
		</div>
	</div>
	<div class="column full">
		
		
		<div class="title_wrap">
			<h2>Copyright</h2>
		</div>
		<div class="copyright">
			<p>© the Board of Regents of the University of Wisconsin System</p>
		</div>
		

		
		
		<div class="supp">
			

			
			<div class="title_wrap">
				<h2>Additional Issue Materials</h2>
			</div>			
			<div class="edboard_wrap">
			<ul class="edboards ">
			
				<li>
				<a href="/issue/35852/doc/editorial.html#toc_header">
				Editorial Board
				
				
				</a></li>
			
			</ul>
			</div>
			
		</div>
		

	</div>
</div>

		

		
	</div>	
</div>

		<div id="footer_block" role="banner" aria-label="footer">
			<div class="content">
				<div class="wrap row" id="about_wrap">
					<div id="about">
						<h3>Project MUSE Mission</h3>
						<p>Project MUSE promotes the creation and dissemination of essential humanities and social science resources through collaboration with libraries, publishers, and scholars worldwide. Forged from a partnership between a university press and a library, Project MUSE is a trusted part of the academic and scholarly community it serves.</p>
					</div>
					<div id="about_logo" class="columns medium-10 show-for-large">
						<img src="/images/muselogo_notext.png" alt="MUSE logo"/>
					</div>
				</div>
			</div>
			
			<div class="footer_main">
				<div class="footer_item_color wrap">
					<div class="footer_item_left">
						<div class="group">
							<div class="footer_item_about cont_sub">
								<h5 class="small">about</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/about/story" target="_blank">MUSE Story</a></li>
									<li><a href="https://about.muse.jhu.edu/publishers" target="_blank">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/discovery-partners/" target="_blank">Discovery Partners</a></li>
									<li><a href="https://about.muse.jhu.edu/about/advisory-board/" target="_blank">Advisory Board</a></li>
									<li><a href="https://about.muse.jhu.edu/about/journal-subscribers/" target="_blank">Journal Subscribers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/book-customers" target="_blank">Book Customers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/at-conferences/" target="_blank">Conferences</a></li>
								</ul>
							</div>
							<div class="footer_item_what cont_sub">
								<h5 class="small">what's on muse</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/muse" target="_blank">Open Access</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/journals" target="_blank">Journals</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/books" target="_blank">Books</a></li>
									<li><a href="https://about.muse.jhu.edu/muse/eliot-prose/" target="_blank">T.S. Eliot Prose</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
						  <div class="footer_item_res cont_sub">
								<h5 class="small">resources</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/resources/news/" target="_blank">News & Announcements</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/promotional-materials" target="_blank">Promotional Material</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/alerts" target="_blank">Get Alerts</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/muse-presentations" target="_blank">Presentations</a></li>
								</ul>
							</div>
							<div class="footer_item_info cont_sub">
								<h5 class="small">information for</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers" target="_blank">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/librarians" target="_blank">Librarians</a></li>
									<li><a href="https://about.muse.jhu.edu/individuals" target="_blank">Individuals</a></li>
								  <li><a href="https://about.muse.jhu.edu/instructors" target="_blank">Instructors</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="footer_item_right">
						<div class="group">
							<div class="footer_item_social cont_sub">
								<h5 class="small">Contact</h5>
								<ul>
									<li class="clear"><a href="/contact">Contact Us</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/help-overview" target="_blank">Help</a></li>
								</ul>
								<ul>
									<li>
										<ol class="social_icons">
											<li class="list_h"><a href="https://www.facebook.com/ProjectMUSE" target="_blank"><img src="/images/footer_icon_fb.png" alt="Facebook" /></a></li>
											<li class="list_h"><a href="https://www.linkedin.com/company/projectmuse/" target="_blank"><img src="/images/footer_icon_linkedin.png" alt="Linkedin" /></a></li>
											<li class="list_h"><a href="https://twitter.com/ProjectMUSE" target="_blank"><img src="/images/footer_icon_twitter.png" alt="Twitter" /></a></li>
										</ol>
									</li>
								</ul>
							</div>
							<div class="footer_item_policy cont_sub">
								<h5 class="small">Policy & Terms</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/about/accessibility/" target="_blank">Accessibility</a></li>
									<li><a href="/privacy_policy">Privacy Policy</a></li>
									<li><a href="/terms_use">Terms of Use</a></li>	
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_addr cont_sub">
								<p class="address"><span>2715 North Charles Street<br/>Baltimore, Maryland, USA 21218</span></p>
								<p class="phone"><span><a href="tel:1-410-516-6989">+1 (410) 516-6989</a></span><br>
								<span><a href="mailto:muse@press.jhu.edu">muse@press.jhu.edu</a></span></p>
								<p class="footer_text_sm copy color_oxfordblue hide-for-small"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>
							</div>
							<div class="footer_item_logo cont_sub">
								<p class="show-for-medium"><span class="semiboldit footer_text_sm">Now and always,<br/>The Trusted Content Your Research Requires.</span></p>
								<p><span><a href="https://muse.jhu.edu">
								
								<img class="show-for-medium" src="/images/muselogoblack.png" alt="Project MUSE logo" />
								
								<img class="hide-for-medium" src="/images/muselogo.png" alt="Project MUSE logo" /></a></span></p>
								<p class="hide-for-medium"><span class="semiboldit footer_text_sm">Now and always, The Trusted Content Your Research Requires.</span></p>
								<p class="hide-for-small"><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="clear"></div>
				</div>
			</div>
			<div class="footer_item_sub wrap hide-for-medium">
				<p><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>		
				<p class="footer_text_sm copy color_oxfordblue"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>			
			</div>		
		</div>
		
		
		
		
		<div id="btn_top">
			<a href="#top"><span>Back To Top</span></a>
		</div>
		
		
		
		  <input type="hidden" name="cookie_acknowledgement_type"  id="cookie_acknowledgement_type" value="cookie_acknowledgement">
		
		
		
			<div id="cookies_msg">
				<p>This website uses cookies to ensure you get the best experience on our website. Without cookies your experience may not be seamless.</p>
				<script>document.writeln('<a href="javascript://" class="btn_accept" id="accept_cookie_msg">Accept</a>');</script>
				<noscript>	
						
								<form method="post" action="/account/set_attribute_no_ajax/cookie_acknowledgement/1">
						
						<input type="submit" class="btn_accept" value="accept">
						</form>
				</noscript>
			</div>
		
		
		<script type="text/javascript" src="/js/lightbox.js"></script>
		<script type="text/javascript" src="/js/jquery.qtip2.min.js"></script>
		<script type="text/javascript" src="/js/post.js"></script>
		
		<script type="text/javascript" src="/js/footnotes.js"></script>
		
		
		<script type="text/javascript" src="/js/references.js"></script>
		
		
	</body>
</html>
diff --git a/spec/fixtures/issue-41793.html b/spec/fixtures/issue-41793.html
new file mode 100644
index 0000000..753844a 100644
--- /dev/null
+++ a/spec/fixtures/issue-41793.html
@@ -1,0 +1,1603 @@
<!DOCTYPE html>
<html lang="en">
	<head>
		<!-- Global site tag (gtag.js) - Google Analytics -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-58347753-2"></script>
		<script>
		  window.dataLayer = window.dataLayer || [];
		  function gtag(){dataLayer.push(arguments);}
		  gtag('js', new Date());		
		  gtag('config', 'UA-58347753-2');
		</script>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<meta property="og:image" content="/issue/41793/og_image.jpg" />
		

		
		
		<title>Project MUSE - portal: Libraries and the Academy-Volume 20, Number 1, January 2020</title>
		<link rel="search" type="application/opensearchdescription+xml" title="Search Project MUSE from your browser's Searchbar" href="/plugins/muse-opensearch.xml" />
		
		
		<link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
		<link href="/css/jquery.qtip2.css" rel="stylesheet" type="text/css" />
<!-- 		foundation 6.4.1 custom float/typ/vis 250rem max width 30col float grid -->
		<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700,700i" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="/css/foundation.min.css"/>
		<link rel="stylesheet" type="text/css" href="/css/style_home2.css?031820"/>
		
		
		
		
		

		<script type="text/javascript" src="/js/jquery3.js"></script>		
		<script type="text/javascript" src="/js/pre.js"></script>
		<script type="text/javascript" src="/js/core/head.js?new"></script>
		
		<script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4ecb5479089cb81a"></script>

		
		
		
		<title>Article</title>
	</head>
	<body>
		<a id="skip" href="#skip_target">[Skip to Content]</a>
		<span id="top"></span>
		<div id="header" role="banner" aria-label="header">
			<div class="row wrap" id="institution_banner">
				<div class="content">
					<div id="institution_wrap" class="columns small-15 medium-text-left">
						<div id="institution" class="img_text_col">
							<div class="img_contain_left"><img src="/images/institution.png" alt="institution icon" /></div>
							<div class="text_contain_left"><span class="small"><a href='/account' class='color_white login_status'>Institutional Login</a></span></div>
						</div>
					</div>
					<div id="person_wrap" class="columns small-15">
						<div id="person" class="img_text_col">
							<div class="img_contain_right"><img src="/images/person.png" alt="account icon" /></div>
							<div class="text_contain_right"><span class="small"><a href="/account/" class="color_white login_status" onclick="gtag('event', 'click', {'event_category': 'Account link', 'event_label': 'account name link - header'});">LOG IN</a></span></div>
						</div>
					</div>
				</div>
			</div>
			
			
			
			<div class="row wrap" id="search_banner">
				<div class="content">
					<div class="medium-4 small-4 columns" id="header_logo_wrap">
						<div id="header_logo">
							<a href="/"><img src="/images/muselogo.png" alt="Project MUSE" class="show-for-large"/>
							<img src="/images/muselogo_notext.png" alt="Project MUSE" class="hide-for-large"/></a>							
						</div>
					</div>
					<div class="medium-21 small-22 columns" id="search_bar_wrap">				
						<div class="row"> 
							<div id="browse_button_wrap">
								<a id="browse_button" href="/browse" onclick="gtag('event', 'click', {'event_category': 'Browse link', 'event_label': 'browse button - header'});"><span class="small">browse</span></a>
							</div>
							<div id="or_text_wrap" class="show-for-medium">
								<div id="or_text">
									<span class="small">or</span> 
								</div>
							</div>
							<div id="search_input_wrap" class="small-30">
								<div id="search_input">
  								
  								<noscript>
										<form method="post" action="/search/">
										<input name="no_js_header_query"/>
										<input type="hidden" name="action" value="search"/>
										<input type="hidden" name="t" value="header"/>
										<a id="search_button">
										
										<input type="image" src="/images/search_white.png" alt="Search icon"/>
										
                    </a>
										</form>
									</noscript>
								
									<script>document.write('<input name="search_input_header" id="search_input_header" aria-label="search input"/>');</script>									
									
									<script>document.write('<a id="search_button"><img src="/images/search_white.png" alt="Search icon"/></a>');</script>
									
									
								</div>
							</div>
						</div>				
					</div>
				
					<div class="medium-5 small-4 columns" id="menu_wrap">
						<div id="menu" class="menu-btn">
	<div class="nav-toggle">
		<div class="nav-toggle-btn">
			<a href="#" class="menu-icon-wrap">
				<span class="icon"></span>
				<span class="small show-for-large">menu</span>
			</a>
		</div>

		<div class="nav-mobile">
			<a href="/search">Advanced Search</a>
			<a href="/browse">Browse</a>
			<script>
				document.write('<div class="accordion">');
			</script>
			<noscript>
				<div class="accordion noscript">
			</noscript>
				<a href="#" class="acc_trig open"><span>MyMUSE Account</span></a>
				<div class="acc_block">
					<a href="/account">Log In / Sign Up</a>
					<a href="/account/change">Change My Account</a>
					<a href="/account/user_settings">User Settings</a>
					<a href="/account/">Access via Institution</a>
					<a href="/account/saved_items">MyMUSE Library</a>
					<a href="/account/search_history">Search History</a>
					<a href="/account/view_history">View History</a>
					<a href="/account/purchase_history">Purchase History</a>
					<a href="/account/alerts">MyMUSE Alerts</a>
																
				</div>
			</div>									
			
			<div class="nav-mobile-footer">
				<!--<a class="modal_trigger">Contact Support</a>-->
				<a href="/contact">Contact Support</a>
			</div>
		</div>
	</div>
</div>
		
 
					</div>
				</div>
			</div>
			
			
			
		</div>

<script type="text/javascript">
  var next_iid = 0;
</script>
<script src="/js/jquery.bullseye.js"></script>
<script src="/js/serval/issue.js"></script>
  
<script type="text/javascript">
  $(document).ready(function() {
    var window_w = $(window).width();
    var img_w = "";
    var img_h = "";
    var opt_w = img_w;
    var opt_h = img_h;    
    var ratio = 1;
    if(img_w >= window_w) { 
      opt_w = window_w - 60; 
      ratio = opt_w/img_w;
    }    
    opt_h = ratio*img_h;
    $('#issue_cover_thumb').qtip({
      content: {
        text: "<div class='qtip-cover'><p><a href='/issue/41793/image/front_cover.jpg'>View Full Resolution</a></p><img height='"+opt_h+"' width='"+opt_w+"' src='/issue/41793/image/front_cover.jpg' /> </div>",
        title: {
          text: 'Cover for Volume 20, Number 1, January 2020',
          button: 'Close'
        }, 
      },
      show: 'click',
      hide: false,
      position: {
        my: 'top left',
        at: 'top left',
        target: $('.content')
      },
      style: {
        classes: 'ui-tooltip-dark ui-tooltip-rounded ui-tooltip-shadow qtip-journalcover'
      },
      hide: 'unfocus'      
    });
  });
</script>
  
<script>
  $(document).ready(function() {
    $("#login_alert").click(function(){
       if (confirm("You must be logged into a MyMUSE account in order to create an alert for this journal.\n\nContinue to login?")){
	  $("#login_alert_form").submit();
       }
    });
  });
</script>
<div id="main">
	<div id="journal_about_wrap" class="about_wrap">
		<div id="journal_banner_wrap" class="banner_wrap">
			<div class="content" style="background-color:rgb(102,153,153);background:linear-gradient(to right, rgb(0,0,0),rgb(102,153,153) 70%); filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#000000', endColorstr='#669999');">
				<div id="journal_banner_title_wrap" class="wrap left banner_title_wrap">
					<div id="journal_banner_title" class="banner_title">
						<h2><a href="/journal/159">portal: Libraries and the Academy</a></h2>
					</div>
				</div>
				<div id="journal_banner_search_wrap" class="show-for-medium wrap banner_search_wrap">
					<div id="journal_banner_search" role="search" aria-label="search inside this journal">
						<div>
							<!-- nojs variant -->
							<noscript>
							  <form method="post" action="/search/" aria-label="search within this journal text input" title="search within this journal text input">
								<input type="text" name="no_js_header_query" aria-label="search within this journal text input" placeholder="Search Within Journal"/>
								<input type="hidden" name="action" value="search" />
								<input type="hidden" name="t" value="search_journal_header" />
								<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="159" />
								<a id="search_within_journal_button">
								  
									<input type="image" alt="a magnifying glass search icon" src="/images/search_blue.png" aria-label="submit search"/>
								  
								</a>
							  </form>
							</noscript>  
							<!-- js variant -->
							<script>
							  // hook for js, journal limiter
							  document.write('<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="159" />');
							  // text input
							  document.write('<input type="text" name="search_within_journal_input" id="search_within_journal_input" title="search within journal" aria-label="search within journal" placeholder="Search Within Journal"/>');
							</script>
							
							<script>
							  // light mode button
							  document.write('<a id="search_within_journal_button"><img src="/images/search_blue.png" alt="a magnifying glass search icon"/></a>');
							</script>
							
						</div>
					</div>
				</div>
				<div class="clear"></div>
			</div>	
		</div>
		<div id="journal_about" class="wrap about">
		
		
		  
		    <form id="login_alert_form" method="POST" action="/account/">					
		    <input type="hidden" name="return_on_login" value="/issue/41793">
		    <a id="login_alert" class="btn_add_alert">+ MUSE Alert</a>
		    </form>
		  
		
		
		
		<script>
			var html = '<div id="share_block">'+
			'<div id="share_block_text">'+
			'<div class="social">'+
			'<ul class="addthis_toolbox addthis_default_style rightnav_links_share" addthis:url="https://muse.jhu.edu/issue/41793" addthis:title="Project MUSE - portal: Libraries and the Academy: Volume 20, Number 1, January 2020">'+
			'<li><a class="addthis_button_citeulike addthis_24x24_style"></a>'+
			'<a class="addthis_button_facebook addthis_24x24_style"></a>'+
			'<a class="addthis_button_delicious addthis_24x24_style"></a>'+
			'<a class="addthis_button_twitter addthis_24x24_style" tw:screen_name="ProjectMUSE"></a>'+
			'<a class="addthis_button_google addthis_24x24_style"></a>'+
			'<a href="http://www.addthis.com/bookmark.php?v=250&amp;pubid=xa-4ecac55a1fd58a05" tabindex="-1" class="addthis_button_compact addthis_24x24_style"></a></li>'+
			''+
			'</div>'+
			'</div>'+
			'</div>';
			document.write(html);
		</script>
			<div class="title_wrap">
				<h2>In this Issue</h2>
			</div>
		
			<div id="journal_about_info_wrap" class="about_info_wrap">
				<div id="journal_about_info" class="cards_wrap about_info" role="complementary" aria-label="journal information">
					<div class="card">
						
						<div class="card_image">
							<img id="issue_cover_thumb" src="/issue/41793/image/front_cover.jpg?format=180" alt="issue cover image"/>
							
							
							<div style="text-align: center; padding-top: 10px; font-size: 15px;">
								<a href="#info_wrap">Additional Information</a>
							</div>
						</div>
						
						<div class="card_text ">
							<ul>
							<li class="title"><span><a href="/journal/159">Volume 20, Number 1, January 2020</a></span></li>
							
							
								<li class="type"><span class="issue">Issue</span></li>
								<li>
								
								<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/issue/41793">
  
	<span class="link_text">
	View
	</span>
	</a>
</li>






	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="issue:41793"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/issue:41793/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
                                                                                                                                
								</li>
								
								
								
								
								<!--
								
								-->
								
								
								
								
							</ul>
						</div>
						
						
						<div class="card_summary_wrap">
							<div class="card_summary">
								<p>Focusing on important research about the role of academic libraries and librarianship, <i>portal</i> also features commentary on issues in technology and publishing. Written for all those interested in the role of libraries within the academy, <i>portal</i> includes peer-reviewed articles addressing subjects such as library administration, information technology, and information policy. In its inaugural year, <i>portal</i> earned recognition as the runner-up for best new journal, awarded by the Council of Editors of Learned Journals (CELJ). An article in  <i>portal</i>, "Master's and Doctoral Thesis Citations: Analysis and Trends of a Longitudinal Study," won the Jesse H. Shera Award for Distinguished Published Research from the Library Research Round Table of the American Library Association.</p>
							</div>
							<div class="card_publisher_image">
								
									
									<a href="/search?action=browse&limit=publisher_id:1"><img src="/publisher/1/image/colophon.jpg" alt="publisher colophon"/></a>
									
								
							</div>							
							<div class="card_publisher">
								
								<h4 class="small">published by</h4>
								<span><a href="/search?action=browse&limit=publisher_id:1">Johns Hopkins University Press</a></span>
								
							</div>
							<div class="card_current">
								
								<h4 class="small">viewing issue</h4>
								<span>Volume 20, Number 1, January 2020</span>
								
							</div>

							
						</div>
					</div>
				</div>
				
			
				<div id="journal_about_content_select" class="row about_content_select">
					
<!-- 					<div class="columns large-20 full"> -->
					<div class="columns small-30 full">
						<div class="toc_header_wrap">
							<div class="option" id="toc_header">
								<h2>Table of Contents</h2>
							</div>
							
								<div id="toc_format_wrap" class="option">
								  <a class="toc_format_button" href="/issue/41793/print">View Formatted Version</a>
								</div>
								
						</div>
						
						<div id="articles_list_wrap" class="alternate_content_render">
							<div class="articles_list_text toc " role="main" aria-label="articles in this issue">
								
							  <a id="skip_target"></a>

								<div class="cards_wrap vertical_list">
		<!-- 
									<div class="title_wrap partial">
										<h2>Articles</h2>
									</div>
		 -->


									

									<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747551">Coming of Age: <i>portal</i> at 20</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Marianne Ryan%22">Marianne Ryan</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 1-5</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0000">10.1353/pla.2020.0000</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747551">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747551/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747551"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747551/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747551 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747552">Techniques to Imagine, Fund, and Build the Academic Library of Your Dreams</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Janette S. Blackburn%22">Janette S. Blackburn</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 7-14</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0001">10.1353/pla.2020.0001</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747552">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747552/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747552"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747552/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747552 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747553">The International Open Access Movement and Its Status in Pakistan</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Arslan Sheikh%22">Arslan Sheikh</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 15-31</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0002">10.1353/pla.2020.0002</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747553">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747553/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747553"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747553/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747553 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747554">Big Data and Academic Libraries: The Quest for Informed Decision-Making</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Tiffini A. Travis%22">Tiffini A. Travis</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Christian Ramirez%22">Christian Ramirez</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 33-47</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0003">10.1353/pla.2020.0003</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747554">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747554/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747554"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747554/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747554 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747555">From Service Role to Partnership: Faculty Voices on Collaboration with Librarians</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Maria A. Perez-Stable%22">Maria A. Perez-Stable</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Judith M. Arnold%22">Judith M. Arnold</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22LuMarie F. Guth%22">LuMarie F. Guth</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Patricia Fravel Vander Meer%22">Patricia Fravel Vander Meer</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 49-72</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0004">10.1353/pla.2020.0004</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747555">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747555/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747555"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747555/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747555 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747556">Attitudes of North American Academics toward Open Access Scholarly Journals</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Elizabeth D. Dalton%22">Elizabeth D. Dalton</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Carol Tenopir%22">Carol Tenopir</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Bo-Christer Björk%22">Bo-Christer Björk</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 73-100</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0005">10.1353/pla.2020.0005</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747556">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747556/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747556"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747556/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747556 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747557">A Multi-Method Information Literacy Assessment Program: Foundation and Early Results</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22William H. Walters%22">William H. Walters</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Sarah E. Sheehan%22">Sarah E. Sheehan</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Amy E. Handfield%22">Amy E. Handfield</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Bernadette M. LĂłpez-Fitzsimmons%22">Bernadette M. LĂłpez-Fitzsimmons</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Susanne Markgren%22">Susanne Markgren</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Laurin Paradise%22">Laurin Paradise</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 101-135</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0006">10.1353/pla.2020.0006</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747557">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747557/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747557"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747557/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747557 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747558">The Problem with Grit: Dismantling Deficit Thinking in Library Instruction</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Eamon Tewell%22">Eamon Tewell</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 137-159</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0007">10.1353/pla.2020.0007</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747558">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747558/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747558"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747558/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747558 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747559">Apprenticing Researchers: Exploring Upper-Division Students' Information Literacy Competencies</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Sara L. Davidson Squibb%22">Sara L. Davidson Squibb</a>, </span>
			 
			 <a href="/search?action=search&&query=author:%22Anne Zanzucchi%22">Anne Zanzucchi</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 161-185</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0008">10.1353/pla.2020.0008</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747559">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747559/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747559"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747559/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747559 -->

<div class="card row small-30 no_image">
	<div class="card_text">
		<ol>
			
			<li class="title"><span>
				<a href="/article/747560">E-Book Information Behaviors and Formats among Graduate Students in Information Sciences</a>
				
      </span></li>
			
			
			<li class="author"><span>
			 
			 <a href="/search?action=search&&query=author:%22Daniel G. Tracy%22">Daniel G. Tracy</a></span>
			 
			</li> 
			

			
			<li class="pg">pp. 187-220</li>
			<li class="doi">DOI: <a href="https://doi.org/10.1353/pla.2020.0009">10.1353/pla.2020.0009</a></li>			
			<li class="interact">
			<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">



<li>
	<a href="/article/747560">
  <img src="/images/html_icon.png" class="icon" alt="View HTML">
	<span class="link_text">
	View
	</span>
	</a>
</li>




<li>
  <a href="/article/747560/pdf">
  <img src="/images/pdf.png" alt="Download PDF" class="icon">
  <span class="link_text">
	  
    Download
  	
  </span>
	</a>
</li>



	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="article:747560"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/article:747560/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
			
			
			</li>
			
			
		</ol>
	</div>
</div>

<!-- article 747560 -->


							
								</div>
							</div>
							
						</div>
					</div>
					
					
					
<!-- rightnav here -->
				
				
									
				</div>





<!-- 
<div style="background-color: orange; width: 100%; padding: 25px;">
 
  <div>PREV: <a href="/article/41038">Volume 19, Number 4, October 2019</a></div>
 
 
</div>
 -->


			</div>
		</div>
		<div id="previous_next_interface" class="row wrap">
			<div class="columns small-30 large-15 full">
			
				<div class="title_wrap">
					<h2>Previous Issue</h2>
				</div>
				<p><a href="/issue/41038">Volume 19, Number 4, October 2019</a></p>
			
			</div>
			<div class="columns small-30 large-15 full">
			
			</div>	
		</div>
		
		<div id="info_wrap" class="row wrap">
	<div class="column full">
		<div class="title_wrap details">
			<h2>Additional Information</h2>
		</div>
		<div class="details_tbl">		
							
			<div class="details_row">
				<div class="cell label">
					ISSN
				</div>
				<div class="cell">
					1530-7131
				</div>
			</div>
			
			
			<div class="details_row">
				<div class="cell label">
					Print ISSN
				</div>
				<div class="cell">
					1531-2542
				</div>
			</div>
			
			
			
			
			
			
									
			
			<div class="details_row">
				<div class="cell label">
					Launched on MUSE
				</div>
				<div class="cell">
					2020-02-05
				</div>
			</div>
			
			
			
			
			<div class="details_row">
				<div class="cell label">
					Open Access
				</div>
				<div class="cell">
					
					No
					
				</div>
			</div>
			
			
			
				
			
			
		</div>
	</div>
	<div class="column full">
		
		
		<div class="title_wrap">
			<h2>Copyright</h2>
		</div>
		<div class="copyright">
			<p>Copyright © The Johns Hopkins University Press.</p>
		</div>
		

		
		
		<div class="supp">
			

			
			<div class="title_wrap">
				<h2>Additional Issue Materials</h2>
			</div>			
			<div class="edboard_wrap">
			<ul class="edboards ">
			
				<li>
				<a href="/issue/41793/doc/editorial.html#toc_header">
				Editorial Board
				
				
				</a></li>
			
			</ul>
			</div>
			
		</div>
		

	</div>
</div>

		

		
	</div>	
</div>

		<div id="footer_block" role="banner" aria-label="footer">
			<div class="content">
				<div class="wrap row" id="about_wrap">
					<div id="about">
						<h3>Project MUSE Mission</h3>
						<p>Project MUSE promotes the creation and dissemination of essential humanities and social science resources through collaboration with libraries, publishers, and scholars worldwide. Forged from a partnership between a university press and a library, Project MUSE is a trusted part of the academic and scholarly community it serves.</p>
					</div>
					<div id="about_logo" class="columns medium-10 show-for-large">
						<img src="/images/muselogo_notext.png" alt="MUSE logo"/>
					</div>
				</div>
			</div>
			
			<div class="footer_main">
				<div class="footer_item_color wrap">
					<div class="footer_item_left">
						<div class="group">
							<div class="footer_item_about cont_sub">
								<h5 class="small">about</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/discovery-partners/">Discovery Partners</a></li>
									<li><a href="https://about.muse.jhu.edu/about/advisory-board/">Advisory Board</a></li>
									<li><a href="https://about.muse.jhu.edu/about/journal-subscribers/">Journal Subscribers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/book-customers">Book Customers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/at-conferences/">Conferences</a></li>
								</ul>
							</div>
							<div class="footer_item_res cont_sub">
								<h5 class="small">resources</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/resources/news/">News & Announcements</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/promotional-materials">Promotional Material</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/alerts">Get Alerts</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/muse-presentations">Presentations</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_what cont_sub">
								<h5 class="small">what's on muse</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/muse">Open Access</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/journals">Journals</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/books">Books</a></li>
								</ul>
							</div>
							<div class="footer_item_info cont_sub">
								<h5 class="small">information for</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/librarians">Librarians</a></li>
									<li><a href="https://about.muse.jhu.edu/individuals">Individuals</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="footer_item_right">
						<div class="group">
							<div class="footer_item_social cont_sub">
								<h5 class="small">Contact</h5>
								<ul>
									<li class="clear"><a href="/contact">Contact Us</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/help-overview">Help</a></li>
								</ul>
								<ul>
									<li>
										<ol class="social_icons">
											<li class="list_h"><a href="https://www.facebook.com/ProjectMUSE"><img src="/images/footer_icon_fb.png" alt="Facebook" /></a></li>
											<li class="list_h"><a href="https://www.linkedin.com/company/projectmuse/"><img src="/images/footer_icon_linkedin.png" alt="Linkedin" /></a></li>
											<li class="list_h"><a href="https://twitter.com/ProjectMUSE"><img src="/images/footer_icon_twitter.png" alt="Twitter" /></a></li>
										</ol>
									</li>
								</ul>
							</div>
							<div class="footer_item_policy cont_sub">
								<h5 class="small">Policy & Terms</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/about/accessibility/">Accessibility</a></li>
									<li><a href="/privacy_policy">Privacy Policy</a></li>
									<li><a href="/terms_use">Terms of Use</a></li>	
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_addr cont_sub">
								<p class="address"><span>2715 North Charles Street<br/>Baltimore, Maryland, USA 21218</span></p>
								<p class="phone"><span><a href="tel:1-410-516-6989">+1 (410) 516-6989</a></span><br>
								<span><a href="mailto:muse@press.jhu.edu">muse@press.jhu.edu</a></span></p>
								<p class="footer_text_sm copy color_oxfordblue hide-for-small"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>
							</div>
							<div class="footer_item_logo cont_sub">
								<p class="show-for-medium"><span class="semiboldit footer_text_sm">Now and always,<br/>The Trusted Content Your Research Requires.</span></p>
								<p><span><a href="https://muse.jhu.edu">
								
								<img class="show-for-medium" src="/images/muselogoblack.png" alt="Project MUSE logo" />
								
								<img class="hide-for-medium" src="/images/muselogo.png" alt="Project MUSE logo" /></a></span></p>
								<p class="hide-for-medium"><span class="semiboldit footer_text_sm">Now and always, The Trusted Content Your Research Requires.</span></p>
								<p class="hide-for-small"><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="clear"></div>
				</div>
			</div>
			<div class="footer_item_sub wrap hide-for-medium">
				<p><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>		
				<p class="footer_text_sm copy color_oxfordblue"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>			
			</div>		
		</div>
		
		
		
		
		<div id="btn_top">
			<a href="#top"><span>Back To Top</span></a>
		</div>
		
		
		
		  <input type="hidden" name="cookie_acknowledgement_type"  id="cookie_acknowledgement_type" value="cookie_acknowledgement">
		
		
		
			<div id="cookies_msg">
				<p>This website uses cookies to ensure you get the best experience on our website. Without cookies your experience may not be seamless.</p>
				<script>document.writeln('<a href="javascript://" class="btn_accept" id="accept_cookie_msg">Accept</a>');</script>
				<noscript>	
						
								<form method="post" action="/account/set_attribute_no_ajax/cookie_acknowledgement/1">
						
						<input type="submit" class="btn_accept" value="accept">
						</form>
				</noscript>
			</div>
		
		
		<script type="text/javascript" src="/js/lightbox.js"></script>
		<script type="text/javascript" src="/js/jquery.qtip2.min.js"></script>
		<script type="text/javascript" src="/js/post.js"></script>
		
		<script type="text/javascript" src="/js/footnotes.js"></script>
		
		
		<script type="text/javascript" src="/js/references.js"></script>
		
	</body>
</html>
diff --git a/spec/fixtures/journal-159.html b/spec/fixtures/journal-159.html
new file mode 100644
index 0000000..e46aded 100644
--- /dev/null
+++ a/spec/fixtures/journal-159.html
@@ -1,0 +1,1522 @@
<!DOCTYPE html>
<html lang="en">
	<head>
		<!-- Global site tag (gtag.js) - Google Analytics -->
		<script async src="https://www.googletagmanager.com/gtag/js?id=UA-58347753-2"></script>
		<script>
		  window.dataLayer = window.dataLayer || [];
		  function gtag(){dataLayer.push(arguments);}
		  gtag('js', new Date());		
		  gtag('config', 'UA-58347753-2');
		</script>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0">

		<meta property="og:image" content="/journal/159/og_image.jpg" />
		

		
		
		<title>Project MUSE - portal: Libraries and the Academy</title>
		<link rel="search" type="application/opensearchdescription+xml" title="Search Project MUSE from your browser's Searchbar" href="/plugins/muse-opensearch.xml" />
		
		
		<link rel="stylesheet" type="text/css" href="/css/normalize.css"/>
		<link href="/css/jquery.qtip2.css" rel="stylesheet" type="text/css" />
<!-- 		foundation 6.4.1 custom float/typ/vis 250rem max width 30col float grid -->
		<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,600,600i,700,700i" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="/css/foundation.min.css"/>
		<link rel="stylesheet" type="text/css" href="/css/style_home2.css?031820"/>
		
		
		
		
		

		<script type="text/javascript" src="/js/jquery3.js"></script>		
		<script type="text/javascript" src="/js/pre.js"></script>
		<script type="text/javascript" src="/js/core/head.js?new"></script>
		
		<script type="text/javascript" src="https://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4ecb5479089cb81a"></script>

		
		
		
		<title>Article</title>
	</head>
	<body>
		<a id="skip" href="#skip_target">[Skip to Content]</a>
		<span id="top"></span>
		<div id="header" role="banner" aria-label="header">
			<div class="row wrap" id="institution_banner">
				<div class="content">
					<div id="institution_wrap" class="columns small-15 medium-text-left">
						<div id="institution" class="img_text_col">
							<div class="img_contain_left"><img src="/images/institution.png" alt="institution icon" /></div>
							<div class="text_contain_left"><span class="small"><a href='/account' class='color_white login_status'>Institutional Login</a></span></div>
						</div>
					</div>
					<div id="person_wrap" class="columns small-15">
						<div id="person" class="img_text_col">
							<div class="img_contain_right"><img src="/images/person.png" alt="account icon" /></div>
							<div class="text_contain_right"><span class="small"><a href="/account/" class="color_white login_status" onclick="gtag('event', 'click', {'event_category': 'Account link', 'event_label': 'account name link - header'});">LOG IN</a></span></div>
						</div>
					</div>
				</div>
			</div>
			
			
			
			<div class="row wrap" id="search_banner">
				<div class="content">
					<div class="medium-4 small-4 columns" id="header_logo_wrap">
						<div id="header_logo">
							<a href="/"><img src="/images/muselogo.png" alt="Project MUSE" class="show-for-large"/>
							<img src="/images/muselogo_notext.png" alt="Project MUSE" class="hide-for-large"/></a>							
						</div>
					</div>
					<div class="medium-21 small-22 columns" id="search_bar_wrap">				
						<div class="row"> 
							<div id="browse_button_wrap">
								<a id="browse_button" href="/browse" onclick="gtag('event', 'click', {'event_category': 'Browse link', 'event_label': 'browse button - header'});"><span class="small">browse</span></a>
							</div>
							<div id="or_text_wrap" class="show-for-medium">
								<div id="or_text">
									<span class="small">or</span> 
								</div>
							</div>
							<div id="search_input_wrap" class="small-30">
								<div id="search_input">
  								
  								<noscript>
										<form method="post" action="/search/">
										<input name="no_js_header_query"/>
										<input type="hidden" name="action" value="search"/>
										<input type="hidden" name="t" value="header"/>
										<a id="search_button">
										
										<input type="image" src="/images/search_white.png" alt="Search icon"/>
										
                    </a>
										</form>
									</noscript>
								
									<script>document.write('<input name="search_input_header" id="search_input_header" aria-label="search input"/>');</script>									
									
									<script>document.write('<a id="search_button"><img src="/images/search_white.png" alt="Search icon"/></a>');</script>
									
									
								</div>
							</div>
						</div>				
					</div>
				
					<div class="medium-5 small-4 columns" id="menu_wrap">
						<div id="menu" class="menu-btn">
	<div class="nav-toggle">
		<div class="nav-toggle-btn">
			<a href="#" class="menu-icon-wrap">
				<span class="icon"></span>
				<span class="small show-for-large">menu</span>
			</a>
		</div>

		<div class="nav-mobile">
			<a href="/search">Advanced Search</a>
			<a href="/browse">Browse</a>
			<script>
				document.write('<div class="accordion">');
			</script>
			<noscript>
				<div class="accordion noscript">
			</noscript>
				<a href="#" class="acc_trig open"><span>MyMUSE Account</span></a>
				<div class="acc_block">
					<a href="/account">Log In / Sign Up</a>
					<a href="/account/change">Change My Account</a>
					<a href="/account/user_settings">User Settings</a>
					<a href="/account/">Access via Institution</a>
					<a href="/account/saved_items">MyMUSE Library</a>
					<a href="/account/search_history">Search History</a>
					<a href="/account/view_history">View History</a>
					<a href="/account/purchase_history">Purchase History</a>
					<a href="/account/alerts">MyMUSE Alerts</a>
																
				</div>
			</div>									
			
			<div class="nav-mobile-footer">
				<!--<a class="modal_trigger">Contact Support</a>-->
				<a href="/contact">Contact Support</a>
			</div>
		</div>
	</div>
</div>
		
 
					</div>
				</div>
			</div>
			
			
			
		</div>

  
<script type="text/javascript">
  $(document).ready(function() {
    var window_w = $(window).width();
    var img_w = "";
    var img_h = "";
    var opt_w = img_w;
    var opt_h = img_h;    
    var ratio = 1;
    if(img_w >= window_w) { 
      opt_w = window_w - 60; 
      ratio = opt_w/img_w;
    }    
    opt_h = ratio*img_h;
    $('#journal_cover_thumb').qtip({
      content: {
        text: "<div class='qtip-cover'><p><a href='/journal/159/image/front_cover.jpg'>View Full Resolution</a></p><img height='"+opt_h+"' width='"+opt_w+"' src='/journal/159/image/front_cover.jpg' /> </div>",
        title: {
          text: 'Cover for portal: Libraries and the Academy',
          button: 'Close'
        }, 
      },
      show: 'click',
      hide: false,
      position: {
        my: 'top left',
        at: 'top left',
        target: $('.content')
      },
      style: {
        classes: 'ui-tooltip-dark ui-tooltip-rounded ui-tooltip-shadow qtip-journalcover'
      },
      hide: 'unfocus'      
    });
    
  
  
  });
  
</script>
 
<script>
  $(document).ready(function() {
    $("#login_alert").click(function(){
       if (confirm("You must be logged into a MyMUSE account in order to create an alert for this journal.\n\nContinue to login?")){
	  $("#login_alert_form").submit();
       }
    });
  });
</script>

<div id="main">
	<div id="journal_about_wrap" class="about_wrap">
		<div id="journal_banner_wrap" class="banner_wrap">
			<div class="content row"  style="background-color:rgb(102,153,153);background:linear-gradient(to right, rgb(0,0,0),rgb(102,153,153) 70%); filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#000000', endColorstr='#669999');">
	
				<div id="journal_banner_title_wrap" class="wrap left banner_title_wrap">
					<div id="journal_banner_title" class="banner_title">
						<h2>portal: Libraries and the Academy</h2>
					</div>
				</div>
				<div id="journal_banner_search_wrap" class="show-for-medium wrap banner_search_wrap">
					<div id="journal_banner_search" role="search" aria-label="search inside this journal">
						<div>
							<!-- nojs variant -->
							<noscript>
							  <form method="post" action="/search/" aria-label="search within this journal text input" title="search within this journal text input">
								<input type="text" name="no_js_header_query" aria-label="search within this journal text input" placeholder="Search Within Journal"/>
								<input type="hidden" name="action" value="search" />
								<input type="hidden" name="t" value="search_journal_header" />
								<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="159" />
								<a id="search_within_journal_button">
								  
									<input type="image" alt="a magnifying glass search icon" src="/images/search_blue.png" aria-label="submit search"/>
								  
								</a>
							  </form>
							</noscript>
  
							<!-- js variant -->
							<script>
							  // hook for js, journal limiter
							  document.write('<input type="hidden" name="search_within_journal_id" id="search_within_journal_id" value="159" />');
							  // text input
							  document.write('<input type="text" name="search_within_journal_input" id="search_within_journal_input" title="search within journal" aria-label="search within journal" placeholder="Search Within Journal"/>');
							</script>
							
							<script>
							  // light mode button
							  document.write('<a id="search_within_journal_button"><img src="/images/search_blue.png" alt="a magnifying glass search icon"/></a>');
							</script>
							
						</div>
					</div>
				</div>
		
		
			</div>	
		</div>
		
		<div id="journal_about" class="wrap about">
		
		  
		    <form id="login_alert_form" method="POST" action="/account/">					
		    <input type="hidden" name="return_on_login" value="/journal/159">
		    <a id="login_alert" class="btn_add_alert">+ MUSE Alert</a>
		    </form>
		  
		
			<script>
				var html = '<div id="share_block">'+
				'<div id="share_block_text">'+
				'<div class="social">'+
				'<ul class="addthis_toolbox addthis_default_style rightnav_links_share" addthis:url="https://muse.jhu.edu/journal/159" addthis:title="Project MUSE - portal: Libraries and the Academy">'+
				'<li><a class="addthis_button_citeulike addthis_24x24_style"></a>'+
				'<a class="addthis_button_facebook addthis_24x24_style"></a>'+
				'<a class="addthis_button_delicious addthis_24x24_style"></a>'+
				'<a class="addthis_button_twitter addthis_24x24_style" tw:screen_name="ProjectMUSE"></a>'+
				'<a class="addthis_button_google addthis_24x24_style"></a>'+
				'<a href="http://www.addthis.com/bookmark.php?v=250&amp;pubid=xa-4ecac55a1fd58a05" tabindex="-1" class="addthis_button_compact addthis_24x24_style"></a></li>'+
				'</div>'+
				'</div>'+
				'</div>';
				document.write(html);
			</script>

			<div class="title_wrap">
				<h2>About this Journal</h2>
			</div>
		
			<div id="journal_about_info_wrap" class="about_info_wrap">
				<div id="journal_about_info" class="cards_wrap about_info" role="complementary" aria-label="journal information">
					<div class="card">
						
						<div class="card_image">
							<img src="/journal/159/image/front_cover.jpg?format=180" id="journal_cover_thumb" alt="journal cover image"/>
							<div style="text-align: center; padding-top: 10px; font-size: 15px;">
								<a href="#info_wrap">Additional Information</a>
							</div>
						</div>
						
						
						
                                                

                                              
                                                
                                                
						<div class="card_text promo_1">
							<ul>
								<li class="title"><span>portal: Libraries and the Academy</span></li>
								<li class="type"><span class="journal">Journal</span></li>
								<li><span>
								
								<div id="content_action">

<span id="content_access_icon">
<img src="/images/access/free_access.png" alt="free access"/>
</span>

<ul id="action_btns">






	

<li>
	
		<script>
			document.write('<span class="save_content link_text" id="journal:159"><a tabindex="0">Save</a></span>');
		</script>	
		<noscript>
			<span class="link_text"><a class="save_content" href="/account/save/journal:159/non_js">Save</a></span>
		</noscript>
	
</li>


</ul>

</div>
								</br>
																
								</span></li>
								                               
                                                                
							  
								
						
                                                                
                                                                
								
								<li class="promo hide-for-small">
								<div class="promo_right">
								
								
								  
								
									
								  
									 
									  <a href="https://muse.jhu.edu/search?action=browse&limit=subscription:n&limit=publisher_id:1&limit=format:journal&min=1&max=20" target="_new">
									  <img src="http://www.journalsconcierge.com/MUSE_advertising/FreeMuse.gif" alt="Free Muse"/>
									  </a>
									
								
									
								  
									
								
								
								  
							    
							  
							 </div>
							 </li>
							 
							</ul>
						</div>
						
						<div class="promo promo_1 show-for-small">
						<div class="promo_right">
						
						
						   
						   
							 
							 
							  
							   <a href="https://muse.jhu.edu/search?action=browse&limit=subscription:n&limit=publisher_id:1&limit=format:journal&min=1&max=20" target="_new">
							   <img src="http://www.journalsconcierge.com/MUSE_advertising/FreeMuse.gif" alt="Free Muse"/>
							   </a>
							 
						   
							
							 
							 
						   
						   
						   

						   
						</div>
						</div>
						
						<div class="card_summary_wrap">
							<div class="card_summary"><p>Focusing on important research about the role of academic libraries and librarianship, <i>portal</i> also features commentary on issues in technology and publishing. Written for all those interested in the role of libraries within the academy, <i>portal</i> includes peer-reviewed articles addressing subjects such as library administration, information technology, and information policy. In its inaugural year, <i>portal</i> earned recognition as the runner-up for best new journal, awarded by the Council of Editors of Learned Journals (CELJ). An article in  <i>portal</i>, "Master's and Doctoral Thesis Citations: Analysis and Trends of a Longitudinal Study," won the Jesse H. Shera Award for Distinguished Published Research from the Library Research Round Table of the American Library Association.</p></div>
							
							<div class="card_publisher_image">
								
								<a href="/search?action=browse&limit=publisher_id:1"><img src="/publisher/1/image/colophon.jpg" alt="publisher colophon"/></a>
								
							</div>
							
							
							<div class="card_publisher">
								<h4 class="small">published by</h4>
								<span><a href="/search?action=browse&limit=publisher_id:1">Johns Hopkins University Press</a></span>
							</div>
							
							
							<div class="card_current">
								<h4 class="small">Available Issues</h4>
								
								<span>Vol. 1 (2001) through current issue</span>
							</div>
							
						
						
						</div>								
					</div>
				</div>
				
							<a id="skip_target"></a>
				<div id="journal_about_content_select" class="row about_content_select">
<!-- 					<div class="columns large-20 toc_contain full"> -->
					<div class="columns small-30 toc_contain full">
						<div class="toc_header_wrap">
							<div class="option" id="toc_header">
								<h2>Table of Contents</h2>
							</div>
						</div>


<!-- issue list -->

						<div id="available_issues_list_wrap">
							<div id="available_issues_list_text" class="results columns small-30 medium-30 large-30">
					
							
							
							   
							   <h3>Volume 20, 2020</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/41793">Volume 20, Number 1, January 2020</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 19, 2019</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/41038">Volume 19, Number 4, October 2019</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/40636">Volume 19, Number 3, July 2019</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/40167">Volume 19, Number 2, April 2019</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/39832">Volume 19, Number 1, January 2019</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 18, 2018</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/39145">Volume 18, Number 4, October 2018</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/38757">Volume 18, Number 3, July 2018</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/38273">Volume 18, Number 2, April 2018</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/37790">Volume 18, Number 1, January 2018</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 17, 2017</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/37112">Volume 17, Number 4, October 2017</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/36615">Volume 17, Number 3, July 2017</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/36089">Volume 17, Number 2, April 2017</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/35630">Volume 17, Number 1, January 2017</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 16, 2016</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/35031">Volume 16, Number 4, October 2016</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/33776">Volume 16, Number 3, July 2016</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/33346">Volume 16, Number 2, April 2016</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/33091">Volume 16, Number 1, January 2016</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 15, 2015</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/32535">Volume 15, Number 4, October 2015</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/32174">Volume 15, Number 3, July 2015</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/31728">Volume 15, Number 2, April 2015</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/31341">Volume 15, Number 1, January 2015</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 14, 2014</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/30801">Volume 14, Number 4, October 2014</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/30352">Volume 14, Number 3, July 2014</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/29664">Volume 14, Number 2, April 2014</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/29209">Volume 14, Number 1, January 2014</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 13, 2013</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/28358">Volume 13, Number 4, October 2013</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/27936">Volume 13, Number 3, July 2013</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/27285">Volume 13, Number 2, April 2013</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/27046">Volume 13, Number 1, January 2013</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 12, 2012</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/26199">Volume 12, Number 4, October 2012</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/25852">Volume 12, Number 3, July 2012</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/25438">Volume 12, Number 2, April 2012</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/24755">Volume 12, Number 1, January 2012</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 11, 2011</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/24149">Volume 11, Number 4, October 2011</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/23705">Volume 11, Number 3, July 2011</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/22456">Volume 11, Number 2, April 2011</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/21764">Volume 11, Number 1, January 2011</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 10, 2010</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/21148">Volume 10, Number 4, October 2010</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/20706">Volume 10, Number 3, July 2010</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/19746">Volume 10, Number 2, April 2010</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/19524">Volume 10, Number 1, January 2010</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 9, 2009</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/16536">Volume 9, Number 4, October 2009</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/14499">Volume 9, Number 3, July 2009</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/14105">Volume 9, Number 2, April 2009</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/13678">Volume 9, Number 1, January 2009</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 8, 2008</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/13286">Volume 8, Number 4, October 2008</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/12854">Volume 8, Number 3, July 2008</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/12676">Volume 8, Number 2, April 2008</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/12140">Volume 8, Number 1, January 2008</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 7, 2007</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/11964">Volume 7, Number 4, October 2007</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/11705">Volume 7, Number 3, July 2007</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/11447">Volume 7, Number 2, April 2007</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/11217">Volume 7, Number 1, January 2007</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 6, 2006</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/10943">Volume 6, Number 4, October 2006</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/10772">Volume 6, Number 3, July 2006</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/10600">Volume 6, Number 2, April 2006</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/10376">Volume 6, Number 1, January 2006</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 5, 2005</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/10145">Volume 5, Number 4, October 2005</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/9928">Volume 5, Number 3, July 2005</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/9731">Volume 5, Number 2, April 2005</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/9540">Volume 5, Number 1, January 2005</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 4, 2004</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/9293">Volume 4, Number 4, October 2004</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/9138">Volume 4, Number 3, July 2004</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/8932">Volume 4, Number 2, April 2004</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/6232">Volume 4, Number 1, January 2004</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 3, 2003</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/6125">Volume 3, Number 4, October 2003</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/2805">Volume 3, Number 3, July 2003</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/2641">Volume 3, Number 2, April 2003</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/2382">Volume 3, Number 1, January 2003</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 2, 2002</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/2252">Volume 2, Number 4, October 2002</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1584">Volume 2, Number 3, July 2002</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1583">Volume 2, Number 2, April 2002</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1582">Volume 2, Number 1, January 2002</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
							   <h3>Volume 1, 2001</h3>
							 <ol>
							 
						   
								 <li class="volume">
									 <span><a href="/issue/1581">Volume 1, Number 4, October 2001</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1580">Volume 1, Number 3, July 2001</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1579">Volume 1, Number 2, April 2001</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							
							   
								 <li class="volume">
									 <span><a href="/issue/1578">Volume 1, Number 1, January 2001</a></span>
									 <span class="access"><img alt="Free Access" src="/images/free_access.gif"></span>								 
								 </li>
							 
							 </ol>
							 
							
							</div>
							
						</div>
<!-- /issue list -->

					</div>

<!-- 					rightnav here -->
					
				
				
				</div>		
		</div>
	</div>
	
	<div id="info_wrap" class="row wrap">
	<div class="column full">
		<div class="title_wrap details">
			<h2>Additional Information</h2>
		</div>
		<div class="details_tbl">		
							
			<div class="details_row">
				<div class="cell label">
					ISSN
				</div>
				<div class="cell">
					1530-7131
				</div>
			</div>
			
			
			<div class="details_row">
				<div class="cell label">
					Print ISSN
				</div>
				<div class="cell">
					1531-2542
				</div>
			</div>
			
			
			
			
			
			
									
			
			
			<div class="details_row">
				<div class="cell label">
					Coverage Statement
				</div>
				<div class="cell">
					Vol. 1 (2001) through current issue
				</div>
			</div>
			
			
			
			<div class="details_row">
				<div class="cell label">
					Open Access
				</div>
				<div class="cell">
					
					No
					
				</div>
			</div>
			
			
			
				
			
			
		</div>
	</div>
	<div class="column full">
		
		

		
		
		<div class="title_wrap">
			<h2>Additional Materials</h2>
		</div>
		
		<div class="supp">
			
			<ul>
			
				<li>
				<a href="http://www.press.jhu.edu/journals/portal_libraries_and_the_academy/indexing.html#toc_header" target="_blank">Indexing/Abstracting
				 <img src="/images/link_blue.png" alt="external link">
				</a></li>
			
				<li>
				<a href="http://www.press.jhu.edu/journals/portal_libraries_and_the_academy/rate_card.html#toc_header" target="_blank">Advertising Information
				 <img src="/images/link_blue.png" alt="external link">
				</a></li>
			
				<li>
				<a href="http://www.press.jhu.edu/journals/portal_libraries_and_the_academy/guidelines.html#toc_header" target="_blank">Submission Guidelines
				 <img src="/images/link_blue.png" alt="external link">
				</a></li>
			
			</ul>
			

			
			<div class="title_wrap">
				<h2>Additional Issue Materials</h2>
			</div>			
			<div class="edboard_wrap">
			<ul class="edboards active">
			
				<li>
				<a href="/issue/42156/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 20, Number 2, April 2020
				
				</a></li>
			
				<li>
				<a href="/issue/41793/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 20, Number 1, January 2020
				
				</a></li>
			
				<li>
				<a href="/issue/41038/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 19, Number 4, October 2019
				
				</a></li>
			
				<li>
				<a href="/issue/40636/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 19, Number 3, July 2019
				
				</a></li>
			
				<li>
				<a href="/issue/40167/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 19, Number 2, April 2019
				
				</a></li>
			
				<li>
				<a href="/issue/39832/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 19, Number 1, January 2019
				
				</a></li>
			
				<li>
				<a href="/issue/39145/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 18, Number 4, October 2018
				
				</a></li>
			
				<li>
				<a href="/issue/38757/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 18, Number 3, July 2018
				
				</a></li>
			
				<li>
				<a href="/issue/38273/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 18, Number 2, April 2018
				
				</a></li>
			
				<li>
				<a href="/issue/37790/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 18, Number 1, January 2018
				
				</a></li>
			
				<li>
				<a href="/issue/37112/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 17, Number 4, October 2017
				
				</a></li>
			
				<li>
				<a href="/issue/36615/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 17, Number 3, July 2017
				
				</a></li>
			
				<li>
				<a href="/issue/36089/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 17, Number 2, April 2017
				
				</a></li>
			
				<li>
				<a href="/issue/35630/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 17, Number 1, January 2017
				
				</a></li>
			
				<li>
				<a href="/issue/35031/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 16, Number 4, October 2016
				
				</a></li>
			
				<li>
				<a href="/issue/33776/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 16, Number 3, July 2016
				
				</a></li>
			
				<li>
				<a href="/issue/33346/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 16, Number 2, April 2016
				
				</a></li>
			
				<li>
				<a href="/issue/33091/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 16, Number 1, January 2016
				
				</a></li>
			
				<li>
				<a href="/issue/32535/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 15, Number 4, October 2015
				
				</a></li>
			
				<li>
				<a href="/issue/32174/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 15, Number 3, July 2015
				
				</a></li>
			
				<li>
				<a href="/issue/31728/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 15, Number 2, April 2015
				
				</a></li>
			
				<li>
				<a href="/issue/31341/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 15, Number 1, January 2015
				
				</a></li>
			
				<li>
				<a href="/issue/30801/doc/editorial.html#toc_header">
				Editorial Board
				 -- Volume 14, Number 4, October 2014
				
				</a></li>
			
			</ul>
			</div>
			
		</div>
		

	</div>
</div>


</div>

		<div id="footer_block" role="banner" aria-label="footer">
			<div class="content">
				<div class="wrap row" id="about_wrap">
					<div id="about">
						<h3>Project MUSE Mission</h3>
						<p>Project MUSE promotes the creation and dissemination of essential humanities and social science resources through collaboration with libraries, publishers, and scholars worldwide. Forged from a partnership between a university press and a library, Project MUSE is a trusted part of the academic and scholarly community it serves.</p>
					</div>
					<div id="about_logo" class="columns medium-10 show-for-large">
						<img src="/images/muselogo_notext.png" alt="MUSE logo"/>
					</div>
				</div>
			</div>
			
			<div class="footer_main">
				<div class="footer_item_color wrap">
					<div class="footer_item_left">
						<div class="group">
							<div class="footer_item_about cont_sub">
								<h5 class="small">about</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/discovery-partners/">Discovery Partners</a></li>
									<li><a href="https://about.muse.jhu.edu/about/advisory-board/">Advisory Board</a></li>
									<li><a href="https://about.muse.jhu.edu/about/journal-subscribers/">Journal Subscribers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/book-customers">Book Customers</a></li>
									<li><a href="https://about.muse.jhu.edu/about/at-conferences/">Conferences</a></li>
								</ul>
							</div>
							<div class="footer_item_res cont_sub">
								<h5 class="small">resources</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/resources/news/">News & Announcements</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/promotional-materials">Promotional Material</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/alerts">Get Alerts</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/muse-presentations">Presentations</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_what cont_sub">
								<h5 class="small">what's on muse</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/muse">Open Access</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/journals">Journals</a></li>
									<li><a href="https://about.muse.jhu.edu/pub/books">Books</a></li>
								</ul>
							</div>
							<div class="footer_item_info cont_sub">
								<h5 class="small">information for</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/publishers">Publishers</a></li>
									<li><a href="https://about.muse.jhu.edu/librarians">Librarians</a></li>
									<li><a href="https://about.muse.jhu.edu/individuals">Individuals</a></li>
								</ul>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="footer_item_right">
						<div class="group">
							<div class="footer_item_social cont_sub">
								<h5 class="small">Contact</h5>
								<ul>
									<li class="clear"><a href="/contact">Contact Us</a></li>
									<li><a href="https://about.muse.jhu.edu/resources/help-overview">Help</a></li>
								</ul>
								<ul>
									<li>
										<ol class="social_icons">
											<li class="list_h"><a href="https://www.facebook.com/ProjectMUSE"><img src="/images/footer_icon_fb.png" alt="Facebook" /></a></li>
											<li class="list_h"><a href="https://www.linkedin.com/company/projectmuse/"><img src="/images/footer_icon_linkedin.png" alt="Linkedin" /></a></li>
											<li class="list_h"><a href="https://twitter.com/ProjectMUSE"><img src="/images/footer_icon_twitter.png" alt="Twitter" /></a></li>
										</ol>
									</li>
								</ul>
							</div>
							<div class="footer_item_policy cont_sub">
								<h5 class="small">Policy & Terms</h5>
								<ul>
									<li><a href="https://about.muse.jhu.edu/about/accessibility/">Accessibility</a></li>
									<li><a href="/privacy_policy">Privacy Policy</a></li>
									<li><a href="/terms_use">Terms of Use</a></li>	
								</ul>
							</div>
							<div class="clear"></div>
						</div>
						<div class="group">
							<div class="footer_item_addr cont_sub">
								<p class="address"><span>2715 North Charles Street<br/>Baltimore, Maryland, USA 21218</span></p>
								<p class="phone"><span><a href="tel:1-410-516-6989">+1 (410) 516-6989</a></span><br>
								<span><a href="mailto:muse@press.jhu.edu">muse@press.jhu.edu</a></span></p>
								<p class="footer_text_sm copy color_oxfordblue hide-for-small"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>
							</div>
							<div class="footer_item_logo cont_sub">
								<p class="show-for-medium"><span class="semiboldit footer_text_sm">Now and always,<br/>The Trusted Content Your Research Requires.</span></p>
								<p><span><a href="https://muse.jhu.edu">
								
								<img class="show-for-medium" src="/images/muselogoblack.png" alt="Project MUSE logo" />
								
								<img class="hide-for-medium" src="/images/muselogo.png" alt="Project MUSE logo" /></a></span></p>
								<p class="hide-for-medium"><span class="semiboldit footer_text_sm">Now and always, The Trusted Content Your Research Requires.</span></p>
								<p class="hide-for-small"><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>
							</div>
							<div class="clear"></div>
						</div>
					</div>
					<div class="clear"></div>
				</div>
			</div>
			<div class="footer_item_sub wrap hide-for-medium">
				<p><span class="footer_text_sm">Built on the Johns Hopkins University Campus</span></p>		
				<p class="footer_text_sm copy color_oxfordblue"><span>&copy;2020 Project MUSE. Produced by Johns Hopkins University Press in collaboration with The Sheridan Libraries.</span></p>			
			</div>		
		</div>
		
		
		
		
		<div id="btn_top">
			<a href="#top"><span>Back To Top</span></a>
		</div>
		
		
		
		  <input type="hidden" name="cookie_acknowledgement_type"  id="cookie_acknowledgement_type" value="cookie_acknowledgement">
		
		
		
			<div id="cookies_msg">
				<p>This website uses cookies to ensure you get the best experience on our website. Without cookies your experience may not be seamless.</p>
				<script>document.writeln('<a href="javascript://" class="btn_accept" id="accept_cookie_msg">Accept</a>');</script>
				<noscript>	
						
								<form method="post" action="/account/set_attribute_no_ajax/cookie_acknowledgement/1">
						
						<input type="submit" class="btn_accept" value="accept">
						</form>
				</noscript>
			</div>
		
		
		<script type="text/javascript" src="/js/lightbox.js"></script>
		<script type="text/javascript" src="/js/jquery.qtip2.min.js"></script>
		<script type="text/javascript" src="/js/post.js"></script>
		
		<script type="text/javascript" src="/js/footnotes.js"></script>
		
		
		<script type="text/javascript" src="/js/references.js"></script>
		
	</body>
</html>
diff --git a/src/errors/missing_chapter.cr b/src/errors/missing_chapter.cr
deleted file mode 100644
index b33487f..0000000 100644
--- a/src/errors/missing_chapter.cr
+++ /dev/null
@@ -1,4 +1,0 @@
module Muse::Dl::Errors
  class MissingChapter < Exception
  end
end
diff --git a/src/errors/missing_file.cr b/src/errors/missing_file.cr
new file mode 100644
index 0000000..f11f6fd 100644
--- /dev/null
+++ a/src/errors/missing_file.cr
@@ -1,0 +1,4 @@
module Muse::Dl::Errors
  class MissingFile < Exception
  end
end