Skip to content
Snippets Groups Projects
Unverified Commit c1fdc8f1 authored by Bruno Bruno's avatar Bruno Bruno Committed by GitHub
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
Showing with 541 additions and 0 deletions
name: 🐞 Bug
description: File a bug/issue
title: '<title>'
labels: [bug]
body:
- type: textarea
attributes:
label: Current Behavior
description: A description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Link to a repository with steps to reproduce the behavior.
placeholder: |
As you can see in this code example/repository
1. Using this component...
2. With these properties...
3. Click '...'
4. See error...
validations:
required: false
- type: markdown
attributes:
value: |
Bug Reports with a link to a repository or specific example can be answered far quicker, so please consider including as much information as possible!
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
blank_issues_enabled: true
contact_links:
- name: CollectionBuilder Documentation
url: https://collectionbuilder.github.io/cb-docs/
about: Learn more about CollectionBuilder and how to use it.
- name: CollectionBuilder Discussions
url: https://github.com/orgs/CollectionBuilder/discussions
about: Ask questions, provide feedback, post ideas, and share with the CollectionBuilder community. This is the best place to get help!
- name: CollectionBuilder Community
url: https://collectionbuilder.github.io/community/
about: Join the CollectionBuilder community and contribute to the project.
name: 📗 Report Docs Issue
description: See a typo? Outdated or incorrect information? Let us know!
title: '<title>'
labels: [documentation]
body:
- type: markdown
attributes:
value: Sometimes something slips through the cracks, and the documentation is not quite right. Thanks for letting us know!
- type: input
id: link
attributes:
label: Link to the Page
- type: textarea
id: quote
attributes:
label: Describe the Issue
- type: dropdown
id: participate
attributes:
label: Are you able to create a Pull Request with the fix?
options:
- 'Yes'
- 'No'
name: 🛠️ Request New Feature
description: Let us know what we should add.
labels: ['feature request']
body:
- type: textarea
id: description
attributes:
label: Describe what feature you'd like. Pseudo-code, mockups, or screenshots of similar solutions are encouraged!
- type: dropdown
id: category
attributes:
label: What type of pull request would this be?
options:
- 'New Feature'
- 'Enhancement'
- 'Guide'
- 'Docs'
- 'Other'
- type: textarea
id: references
attributes:
label: Any links to similar examples or other references we should review?
# Pull request
## Proposed changes
<!-- Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue. -->
## Types of changes
<!-- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
- [ ] New feature (non-breaking change which adds functionality).
- [ ] Enhancement (non-breaking change which enhances functionality)
- [ ] Bug Fix (non-breaking change which fixes an issue).
- [ ] Breaking change (fix or feature that would cause existing functionality to change).
## Checklist
<!-- Go over all the following points, and put an `x` in all the boxes that apply. If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
- [ ] I have read the **[CONTRIBUTING](./CONTRIBUTING.md)** document.
- [ ] My change requires a change to the documentation.
- [ ] I have updated the documentation accordingly.
# Ignore metadata generated by Jekyll
_site/
.sass-cache/
.jekyll-cache/
.jekyll-metadata
# Ignore folders generated by Bundler
.bundle/
vendor/
# Ignore mac files
.DS_Store
# temporarily ignore gemfile.lock
Gemfile.lock
# Ignore objects directory to avoid committing binary files (other than demo files)
# if you would like to commit your objects to github, delete the line below!
objects/
\ No newline at end of file
404.html 0 → 100644
---
title: Page Not Found
layout: page
permalink: /404.html
# this creates a 404 page automatically handled by GitHub Pages
# the cow is from the linux program "cowsay"
---
<h1>404?</h1>
<p>Sorry, but the page you were trying to view does not exist.</p>
<pre><code>
____________
< Sorry, 404 >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
</code></pre>
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
title: "CollectionBuilder-CSV"
type: software
authors:
- family-names: Williamson
given-names: Evan Peter
orcid: https://orcid.org/0000-0002-7990-9924
- family-names: Becker
given-names: Devin
orcid: https://orcid.org/0000-0002-0974-9064
- family-names: Wikle
given-names: Olivia
orcid: https://orcid.org/0000-0001-8122-4169
repository-code: 'https://github.com/CollectionBuilder/collectionbuilder-csv'
url: 'https://collectionbuilder.github.io/'
license: MIT
version: 1+
date-released: '2021-04-25'
abstract: >-
CollectionBuilder is an open source tool for
creating digital collection and exhibit websites
that are driven by metadata and powered by modern
static web technology.
license: MIT
# Code of Conduct
## Our Pledge
A primary goal of the CollectionBuilder community is to be inclusive to the largest number of contributors, with the most varied and diverse backgrounds possible. As community participants, we pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We invite all those who participate in the CollectionBuilder project and community to help us create safe and positive experiences for everyone.
## Scope
This code of conduct outlines our expectations for everyone who participates in our community, as well as the consequences for unacceptable behavior.
We expect all community participants (community organizers; project maintainers; contributors, paid or otherwise; sponsors; and others) to abide by this Code of Conduct, which applies in all community venues, online and in-person; in one-on-one or group communications pertaining to community business; and within project spaces and in public spaces when an individual is representing the project or its community.
Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
Representation of a project may be further defined and clarified by community organizers.
Participants are also expected to uphold the [GitHub Community Guidelines](https://help.github.com/en/articles/github-community-guidelines) for all behavior and content on the platform.
## Expected Behavior
The following behaviors are expected of all community participants:
- Using inclusive, respectful, and welcoming language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
## Unacceptable Behavior
The following behaviors are unacceptable within our community:
- Violence, threats of violence, or violent language directed against another person
- Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language
- Trolling, insulting/derogatory comments, and personal or political attacks
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Posting or displaying sexually explicit or violent material
- Publishing or threatening to publish others' private information, such as a physical or electronic address, without explicit permission ("doxing")
- Public or private harassment
- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Community organizers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
## Consequences for Unacceptable Behavior
Unacceptable behavior from any community member, including sponsors and those with decision-making authority, will not be tolerated.
Anyone asked to stop unacceptable behavior is expected to comply immediately.
Community organizers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban (temporarily or permanently) any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful without warning (and without refund in the case of a paid event).
## Reporting Guidelines
If you are subject to or witness unacceptable behavior, or have any other concerns, please notify community organizers as soon as possible at collectionbuilder.team@gmail.com which is maintained by evanwill, dcnb, owikle, and juliastone0729.
If these are not appropriate contacts, please consider [reporting directly to GitHub](https://github.com/contact/report-abuse) or an administrative contact in the project's home at [University of Idaho Library](https://www.lib.uidaho.edu/about/directory.html).
All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.
Community organizers are obligated to uphold confidentiality with regard to the reporter of an incident.
Additionally, any abuse, harassment, and other harmful behavior taking place on GitHub can be reported directly:
https://github.com/contact/report-abuse
## Contact info
- email: collectionbuilder.team@gmail.com
- [CollectionBuilder GitHub organization](https://github.com/CollectionBuilder)
- [CollectionBuilder home page](https://collectionbuilder.github.io/)
## Attribution
This Code of Conduct is adapted from two sources:
1. The [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html. For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq.
2. The Citizen Code of Conduct, Revision 2.3 2017, which is distributed by [Stumptown Syndicate](http://stumptownsyndicate.org/) under a [Creative Commons Attribution-ShareAlike license](http://creativecommons.org/licenses/by-sa/3.0/). Portions of text from the Citizen Code of Conduct are derived from the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Geek Feminism Anti-Harassment Policy](http://geekfeminism.wikia.com/wiki/Conference_anti-harassment/Policy).
# How to Contribute to CollectionBuilder
Thank you for contributing to CollectionBuilder!
CollectionBuilder prioritizes pragmatic, sustainable, and simplified approaches to infrastructure to ensure the tool is "do-able" and approachable for digital knowledge workers in libraries and museums, empowering them to take control of their web systems.
The core team is *not* full time developers--we are librarians.
Thus, we are focused on creating a supportive, inclusive community with low barriers to contributing (please see our [Code of Conduct](https://github.com/CollectionBuilder/collectionbuilder-csv/blob/main/CODE_OF_CONDUCT.md)).
Honestly, we do a lot of stuff the slow/old/inefficient/wrong way... but we make it work and invite you to learn/teach with us!
## Project resources
- Email contact: <collectionbuilder.team@gmail.com>
- [Main project site](https://collectionbuilder.github.io/)
- [User Documentation - CB-Docs](https://collectionbuilder.github.io/cb-docs/)
- Technical Documentation is found in individual project repositories in the "/docs" folder.
- General project tracking takes place in Issues in individual template repositories, or the [CollectionBuilder home repository](https://github.com/CollectionBuilder/collectionbuilder.github.io/issues)
- [CollectionBuilder Discussions](https://github.com/orgs/CollectionBuilder/discussions)
## Issues
Since this is a relatively small project, we are informal in using GitHub Issues and welcome you to open one to get in touch.
Issues should be opened in the repository of the specific template you are using for bug reports, feature ideas, and requests for missing documentation.
The team also uses Issues for project management related to the CollectionBuilder project.
For questions related to your own project using a CB template, it is best to ask for help in the main [CollectionBuilder Discussions form](https://github.com/orgs/CollectionBuilder/discussions) rather than opening an Issue.
Here are some tips:
- [How to use GitHub Issues](https://guides.github.com/features/issues/)
- Please focus on clear communication, providing plenty of detail and links so that we can understand the bug or proposal.
- Search the Issues to see if a related report has already been opened (if so add a comment or reaction!).
- Check our [documentation](https://collectionbuilder.github.io/cb-docs/) resources for solutions and other ways to get in touch.
- You can more informally ask questions and share ideas in the main [CollectionBuilder Discussions forum](https://github.com/orgs/CollectionBuilder/discussions). Discussions is often the best place to post questions about debugging metadata or pages in your own projects (rather than issues with the template code).
## Pull Requests
CollectionBuilder welcomes [Pull Requests](https://help.github.com/en/articles/about-pull-requests) from outside contributors.
Please provide plenty of detail in the PR so that the project team fully understands your contribution.
- [How to create a PR](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/creating-a-pull-request)
## Conventions
- Include lots of inline comments documenting code! The entire CollectionBuilder project has a educational outlook.
- Keep code structure *relatively* simple. The templates are intended to be comprehensible for digital librarians and DH practitioners to use and modify, not necessarily fully optimized solutions.
- Include spaces for readability. For example, in Liquid `{% if site.example %}{{ site.example }}{% endif %}`, not `{%if site.example%}{{site.example}}{%endif%}`.
- To improve readability, avoid excess white space and random indentations.
- Indent using spaces. HTML, JS, CSS and related files should be indented using 4 spaces. YAML with 2 spaces.
- Use `;` in metadata to denote multi-valued fields.
- New features should be progressive--adding features, while maintaining backwards compatibility with existing data setups. If possible, sane defaults should be set in Liquid and JS, so that projects lacking updated config variables will still function.
- Main branch should be code that is ready to go. Use feature branches for development and provide meaningful commit messages.
Gemfile 0 → 100644
# frozen_string_literal: true
source 'https://rubygems.org'
# needed for Jekyll
gem 'jekyll'
gem 'webrick', '~> 1.7'
# needed for Rake tasks
gem 'rake'
gem 'csv'
gem 'fileutils'
gem 'mini_magick'
unless Gem.win_platform?
gem 'image_optim'
gem 'image_optim_pack'
end
LICENSE 0 → 100644
MIT License
Copyright (c) 2021 CollectionBuilder contributors, evanwill, dcnb, owikle, jylisadoney, University of Idaho Library Digital Initiatives, https://www.lib.uidaho.edu/digital/
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# CollectionBuilder-CSV
CollectionBuilder-CSV is a robust and flexible "stand alone" template for creating digital collection and exhibit websites using Jekyll and a metadata CSV.
Driven by your collection metadata, the template generates engaging visualizations to browse and explore your objects.
The resulting static site can be hosted on any basic web server (or built automatically using GitHub Actions).
Visit the [CollectionBuilder Docs](https://collectionbuilder.github.io/cb-docs/) for step-by-step details for getting started and building collections!
## Brief Overview of Building a Collection
The [CollectionBuilder Docs](https://collectionbuilder.github.io/cb-docs/) contain detailed information about building a collection from start to finish--including installing software, using Git/GitHub, preparing digital objects, and formatting metadata.
However, here is a super quick overview of the process:
- Make your own copy of this template repository by clicking the green "Use this Template" button on GitHub (see [repository set up docs](https://collectionbuilder.github.io/cb-docs/docs/repository/)). This copy of the template is the starting point for your "project repository", i.e. the source code for your digital collection site!
- Prepare your collection metadata following the CB-CSV template (see our demo [metadata template on Google Sheets](https://docs.google.com/spreadsheets/d/1nN_k4JQB4LJraIzns7WcM3OXK-xxGMQhW1shMssflNM/edit?usp=sharing) and [metadata docs](https://collectionbuilder.github.io/cb-docs/docs/metadata/csv_metadata/)). Your metadata will include links to your digital files (images, pdfs, videos, etc) and thumbnails wherever they are hosted.
- Add your metadata as a CSV to your project repository's "_data" folder (see [upload metadata docs](https://collectionbuilder.github.io/cb-docs/docs/metadata/uploading/)).
- Edit your project's "_config.yml" with your collection information (see [site configuration docs](https://collectionbuilder.github.io/cb-docs/docs/config/)). Additional customization is done via a theme file, configuration files, CSS tweaks, and more--however, once your "_config.yml" is edited your site is ready to be previewed.
- Generate your site using Jekyll! (see docs for how to [use Jekyll locally](https://collectionbuilder.github.io/cb-docs/docs/repository/generate/) and [deploy on the web](https://collectionbuilder.github.io/cb-docs/docs/deploy/))
Please feel free to ask questions in the main [CollectionBuilder discussion forum](https://github.com/CollectionBuilder/collectionbuilder.github.io/discussions).
----------
## CollectionBuilder
<https://collectionbuilder.github.io/>
CollectionBuilder is a project of University of Idaho Library's [Digital Initiatives](https://www.lib.uidaho.edu/digital/) and the [Center for Digital Inquiry and Learning](https://cdil.lib.uidaho.edu) (CDIL) following the [Lib-Static](https://lib-static.github.io/) methodology.
Powered by the open source static site generator [Jekyll](https://jekyllrb.com/) and a modern static web stack, it puts collection metadata to work building beautiful sites.
The basic theme is created using [Bootstrap](https://getbootstrap.com/).
Metadata visualizations are built using open source libraries such as [DataTables](https://datatables.net/), [Leafletjs](http://leafletjs.com/), [Spotlight gallery](https://github.com/nextapps-de/spotlight), [lazysizes](https://github.com/aFarkas/lazysizes), and [Lunr.js](https://lunrjs.com/).
Object metadata is exposed using [Schema.org](http://schema.org) and [Open Graph protocol](http://ogp.me/) standards.
Questions can be directed to **collectionbuilder.team@gmail.com**
## License
CollectionBuilder documentation and general web content is licensed [Creative Commons Attribution-ShareAlike 4.0 International](http://creativecommons.org/licenses/by-sa/4.0/).
This license does *NOT* include any objects or images used in digital collections, which may have individually applied licenses described by a "rights" field.
CollectionBuilder code is licensed [MIT](https://github.com/CollectionBuilder/collectionbuilder-csv/blob/master/LICENSE).
This license does not include external dependencies included in the `assets/lib` directory, which are covered by their individual licenses.
Rakefile 0 → 100644
# frozen_string_literal: true
###############################################################################
#
# CollectionBuilder Rake Utilities
#
# See "docs/rake_tasks/" for documentation.
# See "rakelib" for individual rake tasks!
#
###############################################################################
require 'csv'
require 'fileutils'
###############################################################################
# Helper Functions
###############################################################################
def prompt_user_for_confirmation(message)
response = nil
loop do
print "#{message} (Y/n): "
$stdout.flush
response = case $stdin.gets.chomp.downcase
when '', 'y' then true
when 'n' then false
end
break unless response.nil?
puts 'Please enter "y" or "n"'
end
response
end
# Security Policy
## Supported Versions
CollectionBuilder-CSV is a template repository used to start other projects.
External projects are not automatically updated from the central template--security issues relating to existing projects *created with CollectionBuilder* should be reported to the individual repository/project owners.
Security issues found in the main branch of the current CollectionBuilder-CSV template and its assets should be reported to CollectionBuilder team directly.
## Reporting a Vulnerability
To report a security issue, please email <collectionbuilder.team@gmail.com> with a description of the issue, the steps you took to create the issue, affected versions, and, if known, mitigations for the issue. This project follows a 90 day disclosure timeline.
##########
# collectionbuilder-csv
# Jekyll Digital Collection Generator
# https://github.com/CollectionBuilder/collectionbuilder-csv
##########
##########
# URL VARIABLES
#
# site domain, full URL to the production location of your collection
url:
# path to location on the domain if necessary e.g. /digital/hjccc
baseurl:
# location of code, the full url to your github repository
source-code: https://github.com/CollectionBuilder/collectionbuilder-csv
##########
# SITE SETTINGS
#
# title of site appears in banner
title: CollectionBuilder CSV
# tagline, a short phrase that will appear throughout the site in the top banner
tagline: Digital Collection Magic with Static Web Technologies
# description appears in meta tags and other locations
# this description might appear in search result lists, keep around 160 characters max
description: "CollectionBuilder-CSV is a template for creating digital collection exhibits using static web technology."
# keywords, a short list of subjects describing the collection, separated by semicolon, to appear in rich markup
keywords: idaho; history; inland northwest
# creator of the digital collection, to appear in meta tags; we typically use our GitHub usernames but feel free to just use your name
author: CollectionBuilder
##########
# COLLECTION SETTINGS
#
# Set the metadata for your collection (the name of the CSV file in your _data directory that describes the objects in your collection)
# Use the filename of your CSV **without** the ".csv" extension! E.g. _data/demo-metadata.csv --> "demo-metadata"
metadata: demo-compoundobjects-metadata
# page generation settings [optional!]
# [optional: only used if you need to tweak CB defaults or generate from more than one data file]
# page_gen:
# - data: 'demo-metadata'
# template: 'item'
# name: 'objectid'
# dir: 'items'
# extension: 'html'
# filter: 'objectid'
##########
# Site/Organization Branding
# Enter information for your organization (replacing the CDIL links and name below) if you'd like to brand your site with a logo
# To remove the branding, comment out these values, or delete them.
#
organization-name: "Center for Digital Inquiry and Learning (CDIL)"
organization-link: https://cdil.lib.uidaho.edu/
organization-logo-banner: https://cdil.lib.uidaho.edu/storying-extinction/assets/img/cdil.png
organization-logo-nav: https://cdil.lib.uidaho.edu/assets/img/logo.png
##########
# ROBOTS EXCLUDE
#
# set noindex to true if you do NOT want Google to index your site
# noindex: true
##########
# BUILD SETTINGS
#
# Note: use environment variable on build command to include analytics
# JEKYLL_ENV=production jekyll build
# (this is done automatically by gh-pages build)
#
# ignore stuff
exclude: [docs/, Rakefile, rakelib/, README.md, LICENSE, CITATION.cff, CODE_OF_CONDUCT.md, CONTRIBUTING.md, SECURITY.md]
# compress CSS output
sass:
style: compressed
field,display_name,btn,hidden,sort_name
date,Date,,,Date
creator,Creator,,,
subject,,true
location,,true
identifier,,,true,Identifier
field,display_name,search
date,Date,true
creator,Creator,true
subject,Subjects,true
location,Location,true
field,display_name,browse_link,external_link,dc_map,schema_map
title,Title,,,DCTERMS.title,headline
creator,Creator,,,DCTERMS.creator,creator
date,Date Created,,,DCTERMS.date,dateCreated
description,Description,,,DCTERMS.description,description
subject,Subjects,true,,DCTERMS.subject,keywords
location,Location,,,,contentLocation
latitude,Latitude,,,,
longitude,Longitude,,,,
source,Source,,,,
identifier,Source Identifier,,,,
type,Type,,,DCTERMS.type,
format,Format,,,,encodingFormat
rightsstatement,,,,DCTERMS.rights,license
display_name,stub,dropdown_parent
Home,/,
Browse,/browse.html,
Subjects,/subjects.html,
Locations,/locations.html,
Map,/map.html,
Timeline,/timeline.html,
Data,/data.html,
About,/about.html,
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment