https://github.com/projectblacklight/blacklight-marc
MARC enhancements for Blacklight
https://github.com/projectblacklight/blacklight-marc
Last synced: 10 months ago
JSON representation
MARC enhancements for Blacklight
- Host: GitHub
- URL: https://github.com/projectblacklight/blacklight-marc
- Owner: projectblacklight
- License: other
- Created: 2013-09-16T18:30:29.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2024-03-20T13:30:22.000Z (about 2 years ago)
- Last Synced: 2024-03-25T22:23:44.425Z (about 2 years ago)
- Language: Ruby
- Homepage:
- Size: 3.3 MB
- Stars: 19
- Watchers: 21
- Forks: 25
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# Blacklight::Marc
MARC-specific enhancements for [Blacklight](https://github.com/projectblacklight/blacklight)
## Features
* Rake task `solr:marc:index` to import .mrc files using Traject and app/models/marc_indexer
* "Librarian View" at `catalog/:id/librarian_view`
* Export records to refworks and endnote
* Blacklight::Solr::Document mixins for exporting and transforming MARC data from a stored Solr field
## Installation
Add this line to your application's Gemfile:
gem 'blacklight-marc'
And then execute:
$ bundle
After running the blacklight generator, run the blacklight_marc generator:
$ rails generate blacklight:marc:install
## How does it work?
This generator injects an include into CatalogController (parent class of BookmarksController):
```ruby
include Blacklight::Marc::Catalog
```
and the following code is generated into SolrDocument:
```ruby
use_extension( Blacklight::Marc::DocumentExtension) do |document|
document.key?( :marc_display )
end
```
This means, the extension will be applied on the instance if the backing hash
has a field called `marc_display`.
## Indexing
The generator will create a model called MarcIndexer. This model can be customized by modifying
the field configurations in its initializer as a Traject 2 indexer; new indexing behaviors can
be added to it via mixins or inline methods. Two example mixins are provided:
```ruby
MarcIndexer
# you would add one or both of the mixins below
include Blacklight::Marc::Indexer::Formats
include Blacklight::Marc::Indexer::Dewey
def initialize
# and define fields as normal with the mixed-in methods
to_field 'format', get_format
to_field 'dewey100', dewey_facets(base: :hundreds)
to_field 'dewey010', dewey_facets(base: :tens)
to_field 'dewey_text', dewey_text
end
end
```
## Documentation, Information and Support
* [Project Homepage](http://projectblacklight.org)
* [Developer Documentation](https://github.com/projectblacklight/blacklight/wiki)
* [Quickstart Guide](https://github.com/projectblacklight/blacklight/wiki/Quickstart)
## Contributing
1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request