├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── docs-request.md │ ├── feature_request.md │ └── use-case.md ├── PULL_REQUEST_TEMPLATE.md ├── actions │ └── build │ │ └── action.yml └── workflows │ ├── docs-preview.yml │ ├── docs.yml │ └── main.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── docs ├── alpaca │ └── alpaca-technical-stack.md ├── assets │ ├── Click media.jpg │ ├── Image option.png │ ├── Islandora_logo.png │ ├── adding_a_jwt_rsa_key.png │ ├── adding_a_search_index.png │ ├── adding_a_solr_search_server.png │ ├── advanced_search_advanced_search_block_settings.png │ ├── advanced_search_contextual_filter_settings.png │ ├── advanced_search_demo.gif │ ├── advanced_search_enable_index_hierarchy.png │ ├── advanced_search_enable_index_hierarchy_processor.png │ ├── advanced_search_exclude_facet_settings_exclude.png │ ├── advanced_search_exclude_facet_settings_url_alias.png │ ├── advanced_search_facet_block_settings.png │ ├── advanced_search_field_decedent_of.png │ ├── advanced_search_include_exclude_facets.png │ ├── advanced_search_include_exclude_facets_settings.png │ ├── advanced_search_pager_settings.png │ ├── advanced_search_sort_criteria.png │ ├── advanced_search_view_advanced_setting.png │ ├── blocks_collection_block.png │ ├── blocks_collection_context.png │ ├── blocks_collection_page_with_block.png │ ├── blocks_collection_page_without_block.png │ ├── blocks_config_ui.png │ ├── blocks_content_above_tabs.png │ ├── blocks_context_ui.png │ ├── blocks_devel_menu_in_footer.png │ ├── blocks_main_content_region.png │ ├── blocks_no_devel_menu.png │ ├── blocks_pages_tab_in_block_config_ui.png │ ├── blocks_placement_page.png │ ├── blocks_selection_ui.png │ ├── blocks_still_got_that_ugly_devel_menu.png │ ├── breadcrumbs-config-screen.png │ ├── breadcrumbs-example.png │ ├── claw-chimera.png │ ├── claw-diagram.png │ ├── claw.png │ ├── collections_add_content.png │ ├── collections_children_tab.png │ ├── collections_edit_photo_collection.png │ ├── collections_member_of.png │ ├── collections_member_of_selected.png │ ├── collections_parent_node.png │ ├── collections_repository_item.png │ ├── collections_select_content_type.png │ ├── collections_select_model.png │ ├── collections_snowfall.png │ ├── configuring_flysystem_to_use_fedora.png │ ├── configuring_iiif.png │ ├── configuring_islandora.png │ ├── configuring_openseadragon.png │ ├── configuring_standard_solr_connector.png │ ├── configuring_the_jwt_rsa_key_for_use.png │ ├── content_types_fieldindisplay.png │ ├── content_types_fieldsettings.png │ ├── content_types_managefields.png │ ├── content_types_managefields_tabs.png │ ├── content_types_newfield.png │ ├── content_types_newfieldinform.png │ ├── context_display_hints.png │ ├── context_openseadragon_configuration.png │ ├── context_thank_user_context.png │ ├── context_thank_user_for_preservation_master.png │ ├── context_thanks_dsm.png │ ├── context_thumbnail_file_system.png │ ├── create_issues_Add_Labels.png │ ├── create_issues_Describing_Issue.gif │ ├── create_issues_Issue_Templates.png │ ├── create_issues_commentbox.jpg │ ├── create_issues_labels.jpg │ ├── create_issues_newissue.jpg │ ├── create_node_add_content.png │ ├── create_node_add_media.png │ ├── create_node_adding_image.png │ ├── create_node_click_media.png │ ├── create_node_finished_node.png │ ├── create_node_list_media.png │ ├── create_node_media_metadata.png │ ├── create_node_new_node.png │ ├── create_node_see_derivatives.png │ ├── create_node_select_image.png │ ├── create_node_select_model.png │ ├── create_node_select_repo_item.png │ ├── create_node_warning_autocomplete.png │ ├── derivatives-swimlane.png │ ├── diagram.png │ ├── docker_bad_gateway_still_loading.png │ ├── docker_demo_Install_Portainer.gif │ ├── docker_demo_Install_Sandbox.gif │ ├── docker_demo_Reinstall_Sandbox.gif │ ├── docker_demo_Sandbox.png │ ├── docker_demo_Uninstall_Sandbox.gif │ ├── docker_drupal_login_screen.png │ ├── editing-docs-PR.png │ ├── editing-docs-branch.png │ ├── editing-docs-button.png │ ├── editing-docs-gui.png │ ├── editing-docs-push.png │ ├── editing_docs_Edit_Button.png │ ├── facet_on_vocabulary_reference_fields_EDIT_Click.png │ ├── facet_on_vocabulary_reference_fields_add_fields.png │ ├── flysystem_derivative_filesystem_setting.png │ ├── form-collection.jpg │ ├── frontpage_view_add_filter.png │ ├── frontpage_view_add_filter_collection.png │ ├── frontpage_view_add_filter_select_model.png │ ├── frontpage_view_add_filter_select_model_islandora.png │ ├── frontpage_view_all_eight.png │ ├── frontpage_view_collection_list.png │ ├── frontpage_view_collection_list_block_placement.png │ ├── frontpage_view_collection_list_details.png │ ├── frontpage_view_collection_list_info.png │ ├── frontpage_view_collection_list_place_block.png │ ├── frontpage_view_collection_list_place_block_configure.png │ ├── frontpage_view_no_collections.png │ ├── gettingstarted_add_collection.png │ ├── gettingstarted_add_content.png │ ├── gettingstarted_add_islandora_image.png │ ├── gettingstarted_content.png │ ├── gettingstarted_permissions.png │ ├── gettingstarted_roles.png │ ├── hamburger.png │ ├── iiif-mirador-paged.png │ ├── image00.png │ ├── image01.png │ ├── image02.png │ ├── image03.png │ ├── image04.png │ ├── image05.png │ ├── image06.jpg │ ├── image07.png │ ├── image08.png │ ├── image09.png │ ├── image10.png │ ├── image11.png │ ├── image12.png │ ├── image13.png │ ├── image14.png │ ├── install-enable-drupal-modules_drupal_composer_dependencies.png │ ├── islandora-diagram.png │ ├── islandora_8_derivatives_sample.png │ ├── islandora_advanced_search_settings.png │ ├── media_action_file_path_setting.png │ ├── media_tab.png │ ├── media_use_vocabulary_media_form.png │ ├── members-tab.png │ ├── metadata_available_relations_config.png │ ├── metadata_content_type_screenshot.png │ ├── metadata_edtf_display.png │ ├── metadata_edtf_field_formatter_gear.png │ ├── metadata_edtf_field_settings_gear.png │ ├── metadata_edtf_formatters.png │ ├── metadata_edtf_invalid.png │ ├── metadata_edtf_valid.png │ ├── metadata_edtf_widget_settings.png │ ├── metadata_entity_reference_config.png │ ├── metadata_entity_reference_config_vocabs.png │ ├── metadata_geographic_location_list.png │ ├── metadata_typed_relation_field.png │ ├── multilingual-add-lang.jpg │ ├── multilingual-lang-switcher-location.jpg │ ├── multilingual-place-lang-switcher-block.jpg │ ├── multilingual_repository_item_in_drupal.png │ ├── multilingual_repository_item_in_fedora.png │ ├── multilingual_repository_item_in_triplestore.png │ ├── objects_to_resouce_nodes_attributes.jpg │ ├── osd_collection_mode.png │ ├── paged_content_batch_upload-2.png │ ├── paged_content_batch_upload.png │ ├── paged_content_mirador.png │ ├── paged_content_reorder_children_button.png │ ├── paged_content_reorder_children_form.png │ ├── people_page.png │ ├── ppa-example.png │ ├── rdf-pcdm-coll-obj-file.png │ ├── recipe_alexa.png │ ├── resource_nodes_display_hints.png │ ├── resource_nodes_media_tab.png │ ├── resource_nodes_model_tags.png │ ├── resource_nodes_pdfjs_context_default.png │ ├── resource_nodes_pdfjs_context_with_mimetype.png │ ├── resource_nodes_properties_devel.png │ ├── resource_nodes_repo_item_edit_form.png │ ├── resource_nodes_view_mode_context.png │ ├── rest-file-configuration.png │ ├── rest-media-configuration.png │ ├── rest-node-configuration.png │ ├── search-settings-page.png │ ├── search-view-format-settings-highlighted.png │ ├── setting_the_solr_install_directory.png │ ├── specifying_the_solr_server.png │ ├── tests_ui.png │ ├── transcripts-audio.png │ ├── transcripts-media-track-field.png │ ├── transcripts-video.png │ ├── usage_stats_dashboard.jpg │ ├── user-intro-bento.png │ ├── user-intro-islandoraburger.png │ ├── users_people.png │ ├── users_people_roles.png │ └── users_permissions.png ├── concepts │ ├── collection.md │ ├── derivatives.md │ ├── node-concepts.md │ ├── node-media.md │ ├── rdf.md │ └── starter-site.md ├── contributing │ ├── CONTRIBUTING.md │ ├── committers.md │ ├── contributing-workflow.md │ ├── create-issues.md │ ├── docs-style-guide.md │ ├── editing-docs.md │ ├── readme-template.md │ ├── releasing-islandora.md │ ├── sandbox.md │ ├── templates │ │ ├── closeCommitterVote.txt │ │ ├── committerAnnounce.txt │ │ ├── committerInvite.txt │ │ ├── committerInviteCLA.txt │ │ └── committerVote.txt │ └── testing-a-pull-request.md ├── css │ └── custom.css ├── index.md ├── installation │ ├── component-overview.md │ ├── docker │ │ ├── converting.md │ │ ├── docker-introduction.md │ │ ├── docker-prereq.md │ │ ├── isle-dc │ │ │ ├── docker-available-commands.md │ │ │ ├── docker-available-configuration.md │ │ │ ├── docker-basic-usage.md │ │ │ ├── docker-custom.md │ │ │ ├── docker-local.md │ │ │ ├── docker-maintain-drupal.md │ │ │ ├── docker-maintain-isle.md │ │ │ └── docker-troubleshooting.md │ │ └── site-template │ │ │ ├── backup.md │ │ │ ├── containers.md │ │ │ ├── docker-modifications.md │ │ │ ├── setup.md │ │ │ ├── site-template.md │ │ │ └── updating.md │ ├── manual │ │ ├── configuring-drupal.md │ │ ├── installing-alpaca.md │ │ ├── installing-composer-drush-and-drupal.md │ │ ├── installing-crayfish.md │ │ ├── installing-fedora-syn-and-blazegraph.md │ │ ├── installing-solr.md │ │ ├── installing-tomcat-and-cantaloupe.md │ │ ├── introduction.md │ │ └── preparing-a-webserver.md │ ├── playbook.md │ └── quickstart.md ├── models │ ├── audio.md │ └── video.md ├── placeholder.md ├── release_notes │ └── 8.x-2.0.md ├── technical-documentation │ ├── adding-format-jsonld.md │ ├── alpaca-tips.md │ ├── checking-coding-standards.md │ ├── diagram.md │ ├── docs-build.md │ ├── install-enable-drupal-modules.md │ ├── migrate-7x.md │ ├── migrate-csv.md │ ├── migration-islandora-workbench.md │ ├── migration-migrate-api.md │ ├── migration-overview.md │ ├── migration-rest-api.md │ ├── ppa-documentation.md │ ├── resizing-vm.md │ ├── rest-authorization.md │ ├── rest-create.md │ ├── rest-delete.md │ ├── rest-get.md │ ├── rest-patch.md │ ├── rest-signposting.md │ ├── running-automated-tests.md │ ├── testing-notes.md │ ├── updating-drupal.md │ ├── using-rest-endpoints.md │ └── versioning.md ├── tutorials │ ├── blocks.md │ ├── create-a-resource-node.md │ ├── create-update-views.md │ ├── how-to-create-collection.md │ └── switch-homepage-to-twig.md └── user-documentation │ ├── access-control.md │ ├── accessibility.md │ ├── advanced-search.md │ ├── breadcrumbs.md │ ├── content-models.md │ ├── content-types.md │ ├── context.md │ ├── extending.md │ ├── faceting.md │ ├── file-viewers.md │ ├── flysystem.md │ ├── glossary.md │ ├── iiif.md │ ├── jwt-authentication.md │ ├── linked-data.md │ ├── media.md │ ├── metadata-harvesting.md │ ├── metadata.md │ ├── multilingual.md │ ├── paged-content.md │ ├── recipes │ └── alexa-search.md │ ├── searching.md │ ├── starter-site-metadata-configuration.md │ ├── transcripts.md │ ├── uploading-large-files.md │ ├── url-aliases.md │ ├── usage-stats.md │ ├── user-intro.md │ ├── users.md │ ├── versioning.md │ ├── versioning.wiki │ └── video-docs.md ├── make-nav-tree.py ├── mkdocs.yml └── requirements.txt /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | # We need this due to https://github.com/Islandora/documentation/issues/188. 3 | * text=auto 4 | * text eol=lf 5 | 6 | # Denote all files that are truly binary and should not be modified. 7 | *.png binary 8 | *.jpg binary 9 | *.gif binary 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Start here to report something not working in Islandora software 4 | title: "[BUG] " 5 | labels: 'Type: bug' 6 | projects: 'Islandora Issues Queue' 7 | assignees: '' 8 | 9 | --- 10 | 11 | 24 | 25 | **What steps does it take to reproduce the issue?** 26 | 27 | * When does this issue occur? 28 | 29 | 30 | * Which page does it occur on? 31 | 32 | 33 | * What happens? 34 | 35 | 36 | * To whom does it occur (anonymous visitor, editor, administrator)? 37 | 38 | 39 | * What did you expect to happen? 40 | 41 | 42 | 43 | **Which version of Islandora are you using?** 44 | 45 | 46 | **Which method did you use to install your Islandora instance? (manually, ISLE, playbook, etc.)** 47 | 48 | 49 | **Any related open or closed issues to this bug report?** 50 | 51 | 52 | 53 | **Screenshots:** 54 | 55 | 65 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/docs-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Documentation 3 | about: "Is islandora documentation unclear or missing? Let us know here." 4 | title: "[DOCS]" 5 | labels: documentation 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | * **If applicable, link to the [documentation page](https://islandora.github.io/documentation/) relevant to your issue below.** 12 | 13 | * **If this is a request for __new__ documentation, where in the [existing documentation](https://islandora.github.io/documentation/) does this documentation belong?** 14 | 15 | * **Describe your documentation request.** 16 | 17 | * **Which version of islandora are you using?** 18 | 19 | * **What user roles is this documentation intended for?** 20 | 21 | 22 | * **What implementations of islandora does this documentation request apply to?** 23 | 24 | **Any related open or closed issues to this bug report?** 25 | 26 | 27 | **Screenshots:** 28 | 29 | 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Start here if you would like to request a specific feature. Note that these should usually be supported by Use Cases. 4 | title: '' 5 | labels: 'Type: feature request' 6 | projects: 'Islandora Issues Queue' 7 | assignees: '' 8 | 9 | --- 10 | 11 | 23 | 24 | **Overview of feature request** 25 | 26 | 27 | **What kind of user is the feature intended for?** 28 | (Example user roles: Collections Manager, Developer, Systems Administrator, or User) 29 | 30 | 31 | **What inspired the request?** 32 | 33 | 34 | **What existing behavior do you want changed?** 35 | 36 | 37 | **Any brand new behavior do you want to add to Islandora?** 38 | 39 | 40 | **Any related open or closed issues to this feature request?** 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/use-case.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Use case 3 | about: Start here if you would like to outline a need with a defined scope to be addressed by Islandora software. 4 | title: "[USE CASE] " 5 | labels: 'Type: use case' 6 | projects: 'Islandora Issues Queue' 7 | assignees: '' 8 | 9 | --- 10 | 11 | 20 | 21 | **Overview of Use Case** 22 | Description of use case goes here. 23 | 24 | **Title (Goal):** 25 | 26 | **Primary Actor:** 27 | (example actors: Collections Manager, Developer, Systems Administrator, or User) 28 | 29 | **Scope** 30 | (ex. architecture, access) 31 | 32 | **Story:** 33 | "As a [xxxx] I want to [yyyy] because/so that [zzzz]." 34 | (Read more about user stories from Wikipedia: http://en.wikipedia.org/wiki/User_story) 35 | 36 | ## Examples: 37 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## Purpose / why 2 | 3 | 4 | ## What changes were made? 5 | 6 | 7 | ## Verification 8 | 9 | 10 | ## Interested Parties 11 | 12 | 13 | * @Islandora/documentation 14 | * @Islandora/committers 15 | 16 | ## Checklist 17 | 18 | ### Pull-request Reviewer 19 | Pull-request reviewer should ensure the following: 20 | 21 | * [ ] Does this PR link to related [issues](https://github.com/Islandora/documentation/issues/)? 22 | * [ ] Does the proposed documentation align with the [Islandora Documentation Style Guide](https://islandora.github.io/documentation/contributing/docs_style_guide/)? 23 | * [ ] Are the changes accurate, useful, free of typos, etc? 24 | 25 | ### Person Merging 26 | The person merging should ensure the following: 27 | 28 | * [ ] Does mkdocs still build successfully? (This is indicated by TravisCI passing. To test locally, and see warnings, see [How To Build Documentation](https://islandora.github.io/documentation/technical-documentation/docs-build/).) 29 | * [ ] If pages are renamed or removed, have all internal links to those pages been fixed? 30 | * [ ] If pages are added, have they been linked to or placed in the menu? 31 | * [ ] Did the PR receive at least one approval from a committer, and all issues raised have been addressed? 32 | -------------------------------------------------------------------------------- /.github/actions/build/action.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Build 3 | description: Setup to run and run mkdocs 4 | runs: 5 | using: "composite" 6 | steps: 7 | - name: Setup build environment 8 | uses: actions/setup-python@v4 9 | with: 10 | python-version: '3.x' 11 | cache: 'pip' 12 | - name: Install build requirements 13 | shell: bash 14 | run: pip install -r requirements.txt 15 | - name: Build docs 16 | shell: bash 17 | run: mkdocs build 18 | -------------------------------------------------------------------------------- /.github/workflows/docs-preview.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Build docs preview" 3 | on: 4 | pull_request: 5 | types: 6 | - opened 7 | - reopened 8 | - synchronize 9 | - closed 10 | concurrency: preview-${{ github.ref }} 11 | permissions: 12 | # Needed to update the preview branch. 13 | contents: write 14 | # Needed to write/maintain the comment 15 | pull-requests: write 16 | jobs: 17 | preview: 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Checkout code 21 | uses: actions/checkout@v3 22 | - name: Build docs 23 | uses: ./.github/actions/build 24 | - name: Deploy docs preview 25 | # XXX: Avoid attempting to do preview things across fork boundaries, as it doesn't work. 26 | # See: https://github.com/rossjrw/pr-preview-action/pull/6 27 | # Adapted from: https://github.com/orgs/community/discussions/26829#discussioncomment-3253575 28 | if: ${{ github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name }} 29 | uses: rossjrw/pr-preview-action@v1 30 | with: 31 | source-dir: site 32 | -------------------------------------------------------------------------------- /.github/workflows/docs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: "Build docs" 3 | on: 4 | push: 5 | branches: 6 | - main 7 | permissions: 8 | contents: write 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout code 14 | uses: actions/checkout@v3 15 | - name: Build docs 16 | uses: ./.github/actions/build 17 | - name: Deploy docs 18 | uses: JamesIves/github-pages-deploy-action@v4 19 | with: 20 | folder: site 21 | force: false 22 | clean-exclude: | 23 | pr-preview 24 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | # This is a basic workflow to help you get started with Actions 2 | on: 3 | issues: 4 | types: [opened] 5 | jobs: 6 | createCard: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Create or Update Project Card 10 | uses: peter-evans/create-or-update-project-card@v2 11 | with: 12 | project-name: Islandora Issues Queue 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache.properties 2 | .DS_Store 3 | tests/test_config.ini 4 | install/.vagrant 5 | install/downloads 6 | install/ubuntu-xenial-16.04-cloudimg-console.log 7 | site/ 8 | installer 9 | composer.phar 10 | vendor 11 | services/CollectionService/composer.json_bkup 12 | services/TransactionService/composer.json_bkup 13 | services/align_branches.sh 14 | services/composer.json_bkup 15 | services/composer.lock 16 | services/composer.sha384sum 17 | services/CollectionService/config/settings.dev.yml 18 | services/ResourceService/config/settings.dev.yml 19 | services/TransactionService/config/settings.dev.yml 20 | services/config/settings.dev.yml 21 | install/scripts/composer.json 22 | docs/contributing/CONTRIBUTING.md 23 | README/ 24 | /.idea/ 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Islandora Foundation and contributors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Islandora Documentation 2 | 3 | [Read the documentation online](https://islandora.github.io/documentation/) 4 | 5 | ## About this Repository 6 | 7 | This "documentation" repository has three functions: 8 | 9 | - it **houses the source code for the** [**documentation**](https://islandora.github.io/documentation/) of the [**Islandora project**](https://islandora.ca/) (versions 2.x and above). 10 | - it **hosts the central** [**issue queue**](https://github.com/Islandora/documentation/issues) **for the entire Islandora project**. Add an issue there if you have a use case that isn't addressed, or find a bug. 11 | - its [Wiki](https://github.com/Islandora/documentation/wiki) **contains the archived minutes** for Islandora Tech calls and User calls of previous years. **To find current meeting minutes, please navigate to our** [**community-wiki**](https://github.com/Islandora/islandora-community/wiki). 12 | 13 | ## Documentation Structure 14 | 15 | The documentation is written in [mkdocs](https://www.mkdocs.org/) — the navigation structure is specified in `mkdocs.yml` and the `/docs/` folder contains the content. The text is written in mkdocs-flavoured markdown format and follows our [Documentation Style Guide](https://islandora.github.io/documentation/contributing/docs_style_guide/). Documentation is built and deployed to Github Pages automatically when new commits are added to the 'main' branch. 16 | 17 | * [Islandora Documentation via Github Pages](https://islandora.github.io/documentation/) 18 | 19 | ## Older versions 20 | 21 | Documentation for Islandora Legacy (7.x) and previous versions is hosted by LYRASIS on a Confluence wiki. 22 | 23 | * [Documentation for Islandora Legacy (7.x) and earlier](https://wiki.lyrasis.org/display/ISLANDORA/) 24 | 25 | ## Maintainers 26 | 27 | * [Documentation Interest Group](https://github.com/islandora-interest-groups/Islandora-Documentation-Interest-Group) 28 | 29 | ## Contributing 30 | 31 | To contribute to the Islandora documentation, create an issue or a pull request. To have a pull request accepted, you need to be covered by an Islandora Foundation [Contributor License Agreement](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist#contributor-license-agreements) or [Corporate Contributor License Agreement](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist#contributor-license-agreements). Please see the [Community](https://www.islandora.ca/community) pages on Islandora.ca for more information. 32 | -------------------------------------------------------------------------------- /docs/alpaca/alpaca-technical-stack.md: -------------------------------------------------------------------------------- 1 | # Alpaca Technical Stack 2 | As of version 2.0.0, Alpaca contains several tools bundled into a single runnable [jar](https://en.wikipedia.org/wiki/JAR_(file_format)) file. The different tools can be enabled/disabled depending on the configuration you define. 3 | 4 | ## [Gradle](https://docs.gradle.org/current/userguide/tutorial_using_tasks.html) 5 | Gradle is used by Alpaca as a build and package management tool. It is similar to [Maven](https://maven.apache.org/). 6 | 7 | ## [Apache Camel](http://camel.apache.org/book-getting-started.html) 8 | Apache Camel is an integration framework that aids in implementing integration patterns. 9 | 10 | ## [Apache ActiveMQ](http://activemq.apache.org/getting-started.html) 11 | Apache ActiveMQ is a JMS compliant Messaging Queue. Messaging client can make use of JMS to send messages. 12 | 13 | ### Installing ActiveMQ 14 | Installing ActiveMQ is relatively easy. Download the latest stable release [here](http://activemq.apache.org/download.html). Go to the `activemq_install_dir/bin`. Start the ActiveMQ by using the activemq script or batch file and start command. 15 | 16 | ``` 17 | $ cd activemq_install_dir/bin 18 | $ ./activemq start 19 | ``` 20 | 21 | When ActiveMQ gets started, go to http://localhost:8161/admin/. You can login using admin:admin. 22 | 23 | Note that ActiveMQ in Islandora playbook does not have a UI. 24 | 25 | ## References 26 | * [ActiveMQ Introduction](http://tech.lalitbhatt.net/2014/08/activemq-introduction.html) 27 | -------------------------------------------------------------------------------- /docs/assets/Click media.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/Click media.jpg -------------------------------------------------------------------------------- /docs/assets/Image option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/Image option.png -------------------------------------------------------------------------------- /docs/assets/Islandora_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/Islandora_logo.png -------------------------------------------------------------------------------- /docs/assets/adding_a_jwt_rsa_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/adding_a_jwt_rsa_key.png -------------------------------------------------------------------------------- /docs/assets/adding_a_search_index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/adding_a_search_index.png -------------------------------------------------------------------------------- /docs/assets/adding_a_solr_search_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/adding_a_solr_search_server.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_advanced_search_block_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_advanced_search_block_settings.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_contextual_filter_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_contextual_filter_settings.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_demo.gif -------------------------------------------------------------------------------- /docs/assets/advanced_search_enable_index_hierarchy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_enable_index_hierarchy.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_enable_index_hierarchy_processor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_enable_index_hierarchy_processor.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_exclude_facet_settings_exclude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_exclude_facet_settings_exclude.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_exclude_facet_settings_url_alias.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_exclude_facet_settings_url_alias.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_facet_block_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_facet_block_settings.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_field_decedent_of.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_field_decedent_of.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_include_exclude_facets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_include_exclude_facets.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_include_exclude_facets_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_include_exclude_facets_settings.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_pager_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_pager_settings.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_sort_criteria.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_sort_criteria.png -------------------------------------------------------------------------------- /docs/assets/advanced_search_view_advanced_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/advanced_search_view_advanced_setting.png -------------------------------------------------------------------------------- /docs/assets/blocks_collection_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_collection_block.png -------------------------------------------------------------------------------- /docs/assets/blocks_collection_context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_collection_context.png -------------------------------------------------------------------------------- /docs/assets/blocks_collection_page_with_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_collection_page_with_block.png -------------------------------------------------------------------------------- /docs/assets/blocks_collection_page_without_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_collection_page_without_block.png -------------------------------------------------------------------------------- /docs/assets/blocks_config_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_config_ui.png -------------------------------------------------------------------------------- /docs/assets/blocks_content_above_tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_content_above_tabs.png -------------------------------------------------------------------------------- /docs/assets/blocks_context_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_context_ui.png -------------------------------------------------------------------------------- /docs/assets/blocks_devel_menu_in_footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_devel_menu_in_footer.png -------------------------------------------------------------------------------- /docs/assets/blocks_main_content_region.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_main_content_region.png -------------------------------------------------------------------------------- /docs/assets/blocks_no_devel_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_no_devel_menu.png -------------------------------------------------------------------------------- /docs/assets/blocks_pages_tab_in_block_config_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_pages_tab_in_block_config_ui.png -------------------------------------------------------------------------------- /docs/assets/blocks_placement_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_placement_page.png -------------------------------------------------------------------------------- /docs/assets/blocks_selection_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_selection_ui.png -------------------------------------------------------------------------------- /docs/assets/blocks_still_got_that_ugly_devel_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/blocks_still_got_that_ugly_devel_menu.png -------------------------------------------------------------------------------- /docs/assets/breadcrumbs-config-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/breadcrumbs-config-screen.png -------------------------------------------------------------------------------- /docs/assets/breadcrumbs-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/breadcrumbs-example.png -------------------------------------------------------------------------------- /docs/assets/claw-chimera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/claw-chimera.png -------------------------------------------------------------------------------- /docs/assets/claw-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/claw-diagram.png -------------------------------------------------------------------------------- /docs/assets/claw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/claw.png -------------------------------------------------------------------------------- /docs/assets/collections_add_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_add_content.png -------------------------------------------------------------------------------- /docs/assets/collections_children_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_children_tab.png -------------------------------------------------------------------------------- /docs/assets/collections_edit_photo_collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_edit_photo_collection.png -------------------------------------------------------------------------------- /docs/assets/collections_member_of.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_member_of.png -------------------------------------------------------------------------------- /docs/assets/collections_member_of_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_member_of_selected.png -------------------------------------------------------------------------------- /docs/assets/collections_parent_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_parent_node.png -------------------------------------------------------------------------------- /docs/assets/collections_repository_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_repository_item.png -------------------------------------------------------------------------------- /docs/assets/collections_select_content_type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_select_content_type.png -------------------------------------------------------------------------------- /docs/assets/collections_select_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_select_model.png -------------------------------------------------------------------------------- /docs/assets/collections_snowfall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/collections_snowfall.png -------------------------------------------------------------------------------- /docs/assets/configuring_flysystem_to_use_fedora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_flysystem_to_use_fedora.png -------------------------------------------------------------------------------- /docs/assets/configuring_iiif.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_iiif.png -------------------------------------------------------------------------------- /docs/assets/configuring_islandora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_islandora.png -------------------------------------------------------------------------------- /docs/assets/configuring_openseadragon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_openseadragon.png -------------------------------------------------------------------------------- /docs/assets/configuring_standard_solr_connector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_standard_solr_connector.png -------------------------------------------------------------------------------- /docs/assets/configuring_the_jwt_rsa_key_for_use.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/configuring_the_jwt_rsa_key_for_use.png -------------------------------------------------------------------------------- /docs/assets/content_types_fieldindisplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_fieldindisplay.png -------------------------------------------------------------------------------- /docs/assets/content_types_fieldsettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_fieldsettings.png -------------------------------------------------------------------------------- /docs/assets/content_types_managefields.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_managefields.png -------------------------------------------------------------------------------- /docs/assets/content_types_managefields_tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_managefields_tabs.png -------------------------------------------------------------------------------- /docs/assets/content_types_newfield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_newfield.png -------------------------------------------------------------------------------- /docs/assets/content_types_newfieldinform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/content_types_newfieldinform.png -------------------------------------------------------------------------------- /docs/assets/context_display_hints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_display_hints.png -------------------------------------------------------------------------------- /docs/assets/context_openseadragon_configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_openseadragon_configuration.png -------------------------------------------------------------------------------- /docs/assets/context_thank_user_context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_thank_user_context.png -------------------------------------------------------------------------------- /docs/assets/context_thank_user_for_preservation_master.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_thank_user_for_preservation_master.png -------------------------------------------------------------------------------- /docs/assets/context_thanks_dsm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_thanks_dsm.png -------------------------------------------------------------------------------- /docs/assets/context_thumbnail_file_system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/context_thumbnail_file_system.png -------------------------------------------------------------------------------- /docs/assets/create_issues_Add_Labels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_Add_Labels.png -------------------------------------------------------------------------------- /docs/assets/create_issues_Describing_Issue.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_Describing_Issue.gif -------------------------------------------------------------------------------- /docs/assets/create_issues_Issue_Templates.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_Issue_Templates.png -------------------------------------------------------------------------------- /docs/assets/create_issues_commentbox.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_commentbox.jpg -------------------------------------------------------------------------------- /docs/assets/create_issues_labels.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_labels.jpg -------------------------------------------------------------------------------- /docs/assets/create_issues_newissue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_issues_newissue.jpg -------------------------------------------------------------------------------- /docs/assets/create_node_add_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_add_content.png -------------------------------------------------------------------------------- /docs/assets/create_node_add_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_add_media.png -------------------------------------------------------------------------------- /docs/assets/create_node_adding_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_adding_image.png -------------------------------------------------------------------------------- /docs/assets/create_node_click_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_click_media.png -------------------------------------------------------------------------------- /docs/assets/create_node_finished_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_finished_node.png -------------------------------------------------------------------------------- /docs/assets/create_node_list_media.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_list_media.png -------------------------------------------------------------------------------- /docs/assets/create_node_media_metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_media_metadata.png -------------------------------------------------------------------------------- /docs/assets/create_node_new_node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_new_node.png -------------------------------------------------------------------------------- /docs/assets/create_node_see_derivatives.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_see_derivatives.png -------------------------------------------------------------------------------- /docs/assets/create_node_select_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_select_image.png -------------------------------------------------------------------------------- /docs/assets/create_node_select_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_select_model.png -------------------------------------------------------------------------------- /docs/assets/create_node_select_repo_item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_select_repo_item.png -------------------------------------------------------------------------------- /docs/assets/create_node_warning_autocomplete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/create_node_warning_autocomplete.png -------------------------------------------------------------------------------- /docs/assets/derivatives-swimlane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/derivatives-swimlane.png -------------------------------------------------------------------------------- /docs/assets/diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/diagram.png -------------------------------------------------------------------------------- /docs/assets/docker_bad_gateway_still_loading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_bad_gateway_still_loading.png -------------------------------------------------------------------------------- /docs/assets/docker_demo_Install_Portainer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_demo_Install_Portainer.gif -------------------------------------------------------------------------------- /docs/assets/docker_demo_Install_Sandbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_demo_Install_Sandbox.gif -------------------------------------------------------------------------------- /docs/assets/docker_demo_Reinstall_Sandbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_demo_Reinstall_Sandbox.gif -------------------------------------------------------------------------------- /docs/assets/docker_demo_Sandbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_demo_Sandbox.png -------------------------------------------------------------------------------- /docs/assets/docker_demo_Uninstall_Sandbox.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_demo_Uninstall_Sandbox.gif -------------------------------------------------------------------------------- /docs/assets/docker_drupal_login_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/docker_drupal_login_screen.png -------------------------------------------------------------------------------- /docs/assets/editing-docs-PR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing-docs-PR.png -------------------------------------------------------------------------------- /docs/assets/editing-docs-branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing-docs-branch.png -------------------------------------------------------------------------------- /docs/assets/editing-docs-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing-docs-button.png -------------------------------------------------------------------------------- /docs/assets/editing-docs-gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing-docs-gui.png -------------------------------------------------------------------------------- /docs/assets/editing-docs-push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing-docs-push.png -------------------------------------------------------------------------------- /docs/assets/editing_docs_Edit_Button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/editing_docs_Edit_Button.png -------------------------------------------------------------------------------- /docs/assets/facet_on_vocabulary_reference_fields_EDIT_Click.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/facet_on_vocabulary_reference_fields_EDIT_Click.png -------------------------------------------------------------------------------- /docs/assets/facet_on_vocabulary_reference_fields_add_fields.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/facet_on_vocabulary_reference_fields_add_fields.png -------------------------------------------------------------------------------- /docs/assets/flysystem_derivative_filesystem_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/flysystem_derivative_filesystem_setting.png -------------------------------------------------------------------------------- /docs/assets/form-collection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/form-collection.jpg -------------------------------------------------------------------------------- /docs/assets/frontpage_view_add_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_add_filter.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_add_filter_collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_add_filter_collection.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_add_filter_select_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_add_filter_select_model.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_add_filter_select_model_islandora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_add_filter_select_model_islandora.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_all_eight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_all_eight.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list_block_placement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list_block_placement.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list_details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list_details.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list_info.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list_place_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list_place_block.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_collection_list_place_block_configure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_collection_list_place_block_configure.png -------------------------------------------------------------------------------- /docs/assets/frontpage_view_no_collections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/frontpage_view_no_collections.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_add_collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_add_collection.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_add_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_add_content.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_add_islandora_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_add_islandora_image.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_content.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_content.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_permissions.png -------------------------------------------------------------------------------- /docs/assets/gettingstarted_roles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/gettingstarted_roles.png -------------------------------------------------------------------------------- /docs/assets/hamburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/hamburger.png -------------------------------------------------------------------------------- /docs/assets/iiif-mirador-paged.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/iiif-mirador-paged.png -------------------------------------------------------------------------------- /docs/assets/image00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image00.png -------------------------------------------------------------------------------- /docs/assets/image01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image01.png -------------------------------------------------------------------------------- /docs/assets/image02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image02.png -------------------------------------------------------------------------------- /docs/assets/image03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image03.png -------------------------------------------------------------------------------- /docs/assets/image04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image04.png -------------------------------------------------------------------------------- /docs/assets/image05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image05.png -------------------------------------------------------------------------------- /docs/assets/image06.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image06.jpg -------------------------------------------------------------------------------- /docs/assets/image07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image07.png -------------------------------------------------------------------------------- /docs/assets/image08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image08.png -------------------------------------------------------------------------------- /docs/assets/image09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image09.png -------------------------------------------------------------------------------- /docs/assets/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image10.png -------------------------------------------------------------------------------- /docs/assets/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image11.png -------------------------------------------------------------------------------- /docs/assets/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image12.png -------------------------------------------------------------------------------- /docs/assets/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image13.png -------------------------------------------------------------------------------- /docs/assets/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/image14.png -------------------------------------------------------------------------------- /docs/assets/install-enable-drupal-modules_drupal_composer_dependencies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/install-enable-drupal-modules_drupal_composer_dependencies.png -------------------------------------------------------------------------------- /docs/assets/islandora-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/islandora-diagram.png -------------------------------------------------------------------------------- /docs/assets/islandora_8_derivatives_sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/islandora_8_derivatives_sample.png -------------------------------------------------------------------------------- /docs/assets/islandora_advanced_search_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/islandora_advanced_search_settings.png -------------------------------------------------------------------------------- /docs/assets/media_action_file_path_setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/media_action_file_path_setting.png -------------------------------------------------------------------------------- /docs/assets/media_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/media_tab.png -------------------------------------------------------------------------------- /docs/assets/media_use_vocabulary_media_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/media_use_vocabulary_media_form.png -------------------------------------------------------------------------------- /docs/assets/members-tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/members-tab.png -------------------------------------------------------------------------------- /docs/assets/metadata_available_relations_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_available_relations_config.png -------------------------------------------------------------------------------- /docs/assets/metadata_content_type_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_content_type_screenshot.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_display.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_display.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_field_formatter_gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_field_formatter_gear.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_field_settings_gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_field_settings_gear.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_formatters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_formatters.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_invalid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_invalid.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_valid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_valid.png -------------------------------------------------------------------------------- /docs/assets/metadata_edtf_widget_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_edtf_widget_settings.png -------------------------------------------------------------------------------- /docs/assets/metadata_entity_reference_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_entity_reference_config.png -------------------------------------------------------------------------------- /docs/assets/metadata_entity_reference_config_vocabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_entity_reference_config_vocabs.png -------------------------------------------------------------------------------- /docs/assets/metadata_geographic_location_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_geographic_location_list.png -------------------------------------------------------------------------------- /docs/assets/metadata_typed_relation_field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/metadata_typed_relation_field.png -------------------------------------------------------------------------------- /docs/assets/multilingual-add-lang.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual-add-lang.jpg -------------------------------------------------------------------------------- /docs/assets/multilingual-lang-switcher-location.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual-lang-switcher-location.jpg -------------------------------------------------------------------------------- /docs/assets/multilingual-place-lang-switcher-block.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual-place-lang-switcher-block.jpg -------------------------------------------------------------------------------- /docs/assets/multilingual_repository_item_in_drupal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual_repository_item_in_drupal.png -------------------------------------------------------------------------------- /docs/assets/multilingual_repository_item_in_fedora.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual_repository_item_in_fedora.png -------------------------------------------------------------------------------- /docs/assets/multilingual_repository_item_in_triplestore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/multilingual_repository_item_in_triplestore.png -------------------------------------------------------------------------------- /docs/assets/objects_to_resouce_nodes_attributes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/objects_to_resouce_nodes_attributes.jpg -------------------------------------------------------------------------------- /docs/assets/osd_collection_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/osd_collection_mode.png -------------------------------------------------------------------------------- /docs/assets/paged_content_batch_upload-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/paged_content_batch_upload-2.png -------------------------------------------------------------------------------- /docs/assets/paged_content_batch_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/paged_content_batch_upload.png -------------------------------------------------------------------------------- /docs/assets/paged_content_mirador.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/paged_content_mirador.png -------------------------------------------------------------------------------- /docs/assets/paged_content_reorder_children_button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/paged_content_reorder_children_button.png -------------------------------------------------------------------------------- /docs/assets/paged_content_reorder_children_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/paged_content_reorder_children_form.png -------------------------------------------------------------------------------- /docs/assets/people_page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/people_page.png -------------------------------------------------------------------------------- /docs/assets/ppa-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/ppa-example.png -------------------------------------------------------------------------------- /docs/assets/rdf-pcdm-coll-obj-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/rdf-pcdm-coll-obj-file.png -------------------------------------------------------------------------------- /docs/assets/recipe_alexa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/recipe_alexa.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_display_hints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_display_hints.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_media_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_media_tab.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_model_tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_model_tags.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_pdfjs_context_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_pdfjs_context_default.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_pdfjs_context_with_mimetype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_pdfjs_context_with_mimetype.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_properties_devel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_properties_devel.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_repo_item_edit_form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_repo_item_edit_form.png -------------------------------------------------------------------------------- /docs/assets/resource_nodes_view_mode_context.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/resource_nodes_view_mode_context.png -------------------------------------------------------------------------------- /docs/assets/rest-file-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/rest-file-configuration.png -------------------------------------------------------------------------------- /docs/assets/rest-media-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/rest-media-configuration.png -------------------------------------------------------------------------------- /docs/assets/rest-node-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/rest-node-configuration.png -------------------------------------------------------------------------------- /docs/assets/search-settings-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/search-settings-page.png -------------------------------------------------------------------------------- /docs/assets/search-view-format-settings-highlighted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/search-view-format-settings-highlighted.png -------------------------------------------------------------------------------- /docs/assets/setting_the_solr_install_directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/setting_the_solr_install_directory.png -------------------------------------------------------------------------------- /docs/assets/specifying_the_solr_server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/specifying_the_solr_server.png -------------------------------------------------------------------------------- /docs/assets/tests_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/tests_ui.png -------------------------------------------------------------------------------- /docs/assets/transcripts-audio.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/transcripts-audio.png -------------------------------------------------------------------------------- /docs/assets/transcripts-media-track-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/transcripts-media-track-field.png -------------------------------------------------------------------------------- /docs/assets/transcripts-video.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/transcripts-video.png -------------------------------------------------------------------------------- /docs/assets/usage_stats_dashboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/usage_stats_dashboard.jpg -------------------------------------------------------------------------------- /docs/assets/user-intro-bento.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/user-intro-bento.png -------------------------------------------------------------------------------- /docs/assets/user-intro-islandoraburger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/user-intro-islandoraburger.png -------------------------------------------------------------------------------- /docs/assets/users_people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/users_people.png -------------------------------------------------------------------------------- /docs/assets/users_people_roles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/users_people_roles.png -------------------------------------------------------------------------------- /docs/assets/users_permissions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Islandora/documentation/821459ed909184e23a2534765bb2ae0f548152fe/docs/assets/users_permissions.png -------------------------------------------------------------------------------- /docs/concepts/collection.md: -------------------------------------------------------------------------------- 1 | # Collections 2 | 3 | Collections are groups of related content that can be viewed or managed as a unit. Islandora-specific use cases include: 4 | 5 | - an archival fonds that needs to be grouped together, with internal hierarchy 6 | - various collections of artifacts, grouped for display 7 | - theses and dissertations, which are organized and managed separately from other objects. 8 | 9 | ## Islandora features 10 | 11 | Islandora provides: 12 | 13 | - a mechanism for grouping nodes under a "Parent" node through the generic "Member Of" relationship field (`field_member_of`). This mechanism is also used by _[Paged Content](../user-documentation/paged-content.md)_ and _Compound Objects_. Islandora on its own does not prescribe any particular [Content Type](../user-documentation/content-types.md), so this field can be configured for any [node bundle](https://www.drupal.org/docs/drupal-apis/entity-api/bundles) intended to represent Islandora resources. 14 | - a "Children" tab on resources, which provides a management interface to access, re-order, add, or delete the members of a resource based on the Member Of field. 15 | - a "Model" field (`field_model`) which can take various values including "Collection". 16 | 17 | ## Islandora Starter Site features 18 | 19 | [Islandora Starter Site](https://github.com/Islandora/islandora-starter-site) is an optional set of presets for Islandora, intended to provide a more user-friendly out-of-the-box experience and starting point for more specific customization. 20 | 21 | Islandora Starter Site provides: 22 | 23 | - a [Content Type](../user-documentation/content-types.md) "Repository Item" that uses the `field_member_of` field, so that users may add nodes of this type to a collection (or paged content, or compound resource), 24 | - A [View](../tutorials/create-update-views.md) showing the members of the collection. 25 | - logic (a [Context](../user-documentation/context.md)) such that if a resource is tagged as a "Collection" (in the "Model" field, then a view of its members will show on the collection's page. 26 | 27 | For more details, see the tutorial on [How to create and add to a collection](../tutorials/how-to-create-collection.md) 28 | 29 | ## Bulk management of members of a collection 30 | 31 | Bulk management of items can be done from a Views Bulk Operations-compatible View, including the main Drupal Content View (at admin/content) and the Manage Members View (at node/[node]/members). This is possible due to the Drupal contrib modules [Views Bulk Operations (VBO)](https://www.drupal.org/project/views_bulk_operations) and [Views Bulk Edit](https://www.drupal.org/project/views_bulk_edit). VBO allows you to perform Drupal Actions on objects. These Actions include making Islandora Derivatives such as "Audio - Generate a Service File from an Original File" and also to perform Drupal core Actions such as publishing/unpublishing content. The Views Bulk Edit module extends VBO and allows you to edit field values (such as the Member Of field, which would change which collection a group of nodes are in). 32 | 33 | For instance, if you want to move a number of nodes from one collection into another, then you can 34 | 35 | - select them all in a View such as the Members view of a collection 36 | - select "Edit content" from the Action dropdown, and click "Apply to selected Items" 37 | - under "SELECT FIELDS TO CHANGE", select "Member of" 38 | - in the Member Of autocomplete that appears, type the name of the target collection 39 | - Careful! Under "Change method", choose between "Replace the current value" and "Add a new value to the multi-value field". The first one will wipe out ALL existing collections including the one you're working on - which may be what you're after. 40 | - Select "Confirm" at the bottom of the form to save your changes. 41 | 42 | For more information see the video tutorial on [Batch Editing](https://youtu.be/ZMp0lPelOZw). 43 | 44 | 45 | ## Deleting A Collection 46 | 47 | !!! Warning "Deleting Collections creates orphans." 48 | When you delete a Collection object, it will be deleted from the "Member of" field of all its Children. This means that it will not be possible to track down the children after the Collection has been deleted. If you intend to move the children, see above. If you intend to delete the children, this must be done before-hand. This is a [known issue](https://github.com/Islandora/documentation/issues/628). 49 | 50 | !!! Warning "Deleting content creates orphan media." 51 | Deleting content (Collections or otherwise) will NOT delete any attached Media. This is a [known issue](https://github.com/Islandora/documentation/issues/909). 52 | 53 | 54 | ## Permissions on a Collection 55 | 56 | No reliable access control methods currently allow you to assign people to administer and manage only specific collections. 57 | -------------------------------------------------------------------------------- /docs/concepts/node-concepts.md: -------------------------------------------------------------------------------- 1 | # Node Concepts 2 | 3 | This page describes the core fields and features that Islandora uses to 4 | manage content as nodes in an Islandora repository. 5 | 6 | ## Nodes hold metadata 7 | 8 | In Islandora, Drupal nodes are created to hold descriptive 9 | [metadata](../user-documentation/metadata.md) about content in the repository. 10 | This metadata is held in the usual way for nodes, which is by populating Drupal fields. Fields are 11 | configured on a Drupal content types, which serve as metadata profiles. 12 | 13 | ## Nodes can have members/children 14 | 15 | To build the capacity for creating hierarchical structures like collections, books and their pages, and 16 | complex objects, Islandora introduces a special field, "Member of" (`field_member_of`) which must 17 | be present on all Islandora content types. It enables a "Children" tab to display on Islandora nodes which 18 | lists the children of that node, and allows a repository manager to perform bulk operations on them. 19 | It also enables a repository manager to create children of nodes directly, individually or in bulk. 20 | 21 | ## Nodes have models 22 | 23 | Within a single content type (i.e. metadata profile), Islandora provides the ability to designate 24 | some objects as different "types" than others. Key behaviours, such as what [derivatives](derivatives.md) are created 25 | or what [viewer](../user-documentation/file-viewers.md) is used, can be configured 26 | (see [Contexts](../user-documentation/context.md)) based on this value. The available values 27 | are taxonomy terms in the Islandora Models vocabulary, and they are attached to nodes via the special 28 | mandatory field, "Model" (`field_model`), which must be present on all Islandora content types. 29 | These values are installed through a Drupal Migration after the 30 | Islandora module is installed. All installation methods perform this migration, so out of the box, 31 | the following values should be available in the Islandora Models vocabulary: 32 | 33 | 34 | | Name | External URI | 35 | |------------------- |-------------------------------------------- | 36 | | Audio | http://purl.org/coar/resource_type/c_18cc | 37 | | Binary | http://purl.org/coar/resource_type/c_1843 | 38 | | Collection | http://purl.org/dc/dcmitype/Collection | 39 | | Image | http://purl.org/coar/resource_type/c_c513 | 40 | | Video | http://purl.org/coar/resource_type/c_12ce | 41 | | Digital Document | https://schema.org/DigitalDocument | 42 | | Paged Content | https://schema.org/Book | 43 | | Page | http://id.loc.gov/ontologies/bibframe/part | 44 | | Publication Issue | https://schema.org/PublicationIssue | 45 | | Compound Object | http://vocab.getty.edu/aat/300242735 | 46 | | Newspaper | https://schema.org/Newspaper | 47 | 48 | With Islandora alone, choosing a value from this list will have zero effects. The contingent behaviour 49 | must be configured during repository implementation. Islandora Starter Site provides an example of what 50 | behaviours are possible for these types. 51 | 52 | 53 | !!! note "The External URI field" 54 | This vocabulary, like many others in Islandora, includes an External URI field. This is intended to be used when transforming Islandora content into RDF, but also serves to make it easier to share configuration. Islandora provides code so that context conditions and derivative configs can be created without referencing the taxonomy term by ID, rather, using the taxonomy term's External URI. Since terms IDs are likely to change across sites, this makes our configs more portable. 55 | 56 | ## Nodes are attached to Media 57 | 58 | In an Islandora repository, the files in the repository are uploaded as Media, which are linked 59 | to the node providing the descriptive metadata. Media belonging to a specific node can be found 60 | in the Islandora-provided "Media" tab on that node. For more, see the [Media in Islandora] section. 61 | -------------------------------------------------------------------------------- /docs/concepts/node-media.md: -------------------------------------------------------------------------------- 1 | # Media in Islandora 2 | 3 | In Islandora, Media are created to hold the various files that pertain 4 | to the descriptive metadata provided by a Node. Islandora provides some 5 | fields and features to make this possible. 6 | 7 | ## Media are wrappers for files 8 | 9 | Drupal Media are said to be wrappers around files, that allow that file 10 | to have fields attached. These fields may contain technical metadata 11 | about that file, such as its mimetype or size. This is how Islandora 12 | uses Media (though our approach to [technical metadata] differs). 13 | 14 | 15 | ## Media may store files in different locations. 16 | 17 | Configuration on Media types determines where uploaded files will be 18 | stored - for example, the Drupal public or private filesystem, or through 19 | a tool called [Flysystem](../user-documentation/glossary.md#flysystem) to another 20 | data store such as Fedora. Islandora does not dictate where you put your files. 21 | Islandora Starter Site sets all media types to store their files in Fedora. 22 | This can be overridden when creating media programmatically, such as for 23 | [derivatives](derivatives.md). 24 | 25 | ## Media belong to nodes 26 | 27 | While in Drupal, media are said to be "reusable files" that can be 28 | referred to by any number of content items, in Islandora there is a 29 | special relationship, the "Media Of" (`media_of`) field, that links 30 | media to a single node that describes that file and how it fits into the repository. 31 | The field "Media Of" must be on all Islandora media types for media 32 | of those types to behave as Islandora media. 33 | 34 | Then, the media "of" an Islandora node (if any) will appear in that 35 | node's "Media" tab. From this tab, there are also links 36 | to add new Media, individually or in batch. When media are created this way, 37 | their "Media of" field is automatically populated with the current node. 38 | 39 | ## Media have different uses 40 | 41 | In a repository, a node may have several media that belong to it, which 42 | represent the originally uploaded file, a smaller service file, a 43 | thumbnail, and perhaps a file transformed into a specific format for 44 | preservation. All of these media can be distinguished using the 45 | Islandora-provided field, "Media Use" (`field_media_use`). This is a 46 | taxonomy reference field that points to the vocabulary, Islandora 47 | Media Use. 48 | 49 | The Islandora module provides, through a migration, the following values: 50 | 51 | | Media Use term | External URI | 52 | |-------------------------- |-------------------------------------------- | 53 | | Extracted Text | http://pcdm.org/use#ExtractedText | 54 | | Intermediate File | http://pcdm.org/use#IntermediateFile | 55 | | Original File | http://pcdm.org/use#OriginalFile | 56 | | Preservation Master File | http://pcdm.org/use#PreservationMasterFile | 57 | | Service File | http://pcdm.org/use#ServiceFile | 58 | | Thumbnail Image | http://pcdm.org/use#ThumbnailImage | 59 | | Transcript | http://pcdm.org/use#Transcript | 60 | 61 | This migration is performed by all installation methods, so these values should 62 | be available "out of the box". These values were provided by the PCDM data model 63 | (see [RDF in Islandora](rdf.md)), 64 | and not all values are associated with behaviours you might expect - for instance, 65 | Islandora is not configured out-of-the box to display a transcript if you add a 66 | Media (file) and tag it as "Transcript". See [Audio](../models/audio.md) and 67 | [Video](../models/video.md) for setting up transcripts. 68 | 69 | !!! note "Standard vs Multi-file media model" 70 | This describes the standard file-media relationship in Islandora. 71 | There is an alternative method of arranging files and their derivatives 72 | which we call the ["Multi-file media"](../user-documentation/media.md#multi-file-media) method. 73 | 74 | 75 | -------------------------------------------------------------------------------- /docs/concepts/rdf.md: -------------------------------------------------------------------------------- 1 | # RDF in an Islandora Repository 2 | 3 | Islandora was build on the idea that a repository can be represented 4 | in Drupal in a way that can be mapped to RDF and present the repository 5 | as Linked Data. 6 | 7 | ## Portland Common Data Model 8 | 9 | Islandora uses the [Portland Common Data Model (PCDM)](https://github.com/duraspace/pcdm/wiki) 10 | to arrange elements 11 | of the repository. Nodes correspond to pcdm:Objects, and Media to pcdm:Files. 12 | The "Member of" field on nodes allows us to create pcdm:memberOf relationships 13 | (the opposite of pcdm:hasMember), 14 | and the "Media of" field represents pcdm:fileOf relationships (the opposite of 15 | pcdm:hasFile). 16 | 17 | ![PCDM object model](../assets/rdf-pcdm-coll-obj-file.png) 18 | 19 | 20 | PCDM, plus additional metadata mappings, is the organizing model which allows us to create an RDF version 21 | of the repository in Fedora and/or in an RDF triplestore like Blazegraph. 22 | 23 | ## Mapping to RDF (RDF Module) 24 | 25 | In Islandora, the RDF module provides a way to map metadata from 26 | fields into RDF. This provides a mechanism of using configuration 27 | entities (YAML files, as there is no robust UI) to map fields on nodes, 28 | media, and taxonomy terms to RDF predicates. 29 | 30 | Namepspaces in RDF must be registered before they can be used. The 31 | Islandora module registers a number of namespaces and more can be 32 | added using `hook_rdf_namespaces()`. See [RDF Mappings](../user-documentation/linked-data.md) 33 | for more details. 34 | 35 | ## Exposure as JSON-LD 36 | 37 | Nodes, Media, and taxonomy terms can have their RDF (per their mappings) 38 | exposed to the world as RDF formatted in the JSON-LD syntax thanks to 39 | the Islandora-built JSON-LD Drupal module. The JSON-LD module converts 40 | the RDF metadata, with some alterations, to a JSON-LD format that can be 41 | consumed by RDF consumers such as Fedora and Blazegraph. 42 | 43 | ## Syncing to Fedora and Blazegraph 44 | 45 | Islandora provides the pathways for objects and media in the repository 46 | to be synced to Fedora and Blazegraph. 47 | 48 | Objects are sent to Fedora and Blazegraph through an "Indexing" Drupal Action, which, after being 49 | put on a queue, is read by an indexer which pushes the JSON-LD information 50 | to the appropriate target. 51 | 52 | Files can be stored in Fedora directly, using the Flysystem module. Whether 53 | or not a file is in Fedora, information about that file can be synced (from Drupal Media) into Fedora. 54 | 55 | Neither Fedora nor Blazegraph are read as part of the standard Islandora configuration. 56 | -------------------------------------------------------------------------------- /docs/concepts/starter-site.md: -------------------------------------------------------------------------------- 1 | # Islandora Starter Site 2 | 3 | The [Islandora Starter Site](https://github.com/Islandora/islandora-starter-site/) is an out-of-the-box deployment of Islandora. It is a complete exported Drupal site, that makes use of the Islandora modules and 4 | configures them in a way that is illustrative and useful. 5 | 6 | - For evaluators, it is intended to show off the features and capabilities of Islandora. 7 | - For interest groups, it is intended to be a place to develop solutions to shared problems. 8 | - For site builders, it is intended to be a starting point for configuring a site. 9 | 10 | The Islandora Starter Site contains no code, only references to other modules and lots of Drupal configuration. A very motivated person could re-create the Starter Site just by installing and configuring modules. This means there's nothing tying you to using the Starter Site. There's also nothing tying you to doing things in a particular way. Also, it means that you won't be getting any "updates" - there's no code to update. 11 | 12 | To experience the full Islandora Starter Site, it requires access to external services such as Solr, 13 | Fedora, Alpaca, and Matomo. It is therefore suggested to deploy the Starter Site using one of our 14 | deployment platforms: [ISLE-DC](../installation/docker/isle-dc/docker-local.md) (using the `make starter` or `make starter_dev` commands), [ISLE Site Template](../installation/docker/site-template/site-template.md), or 15 | the [Islandora Playbook](../installation/playbook.md) (using the `starter` (default) or `starter_dev` option in the Vagrantfile). 16 | 17 | -------------------------------------------------------------------------------- /docs/contributing/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ../../CONTRIBUTING.md -------------------------------------------------------------------------------- /docs/contributing/create-issues.md: -------------------------------------------------------------------------------- 1 | # Create a GitHub Issue 2 | 3 | ## Overview 4 | The Islandora community uses GitHub issues to track bug reports, requests for improvements, requests for new features, and use cases. Issues are welcome from anyone who works with Islandora. 5 | 6 | The Islandora [issue queue](https://github.com/Islandora/documentation/issues) is maintained in the Islandora [Documentation](https://github.com/Islandora/documentation) repository on GitHub. Issues posted to the queue are reviewed weekly on the Islandora [Tech Call](https://github.com/Islandora/islandora-community/wiki/Tech-Call-Meetings-2022). Members of the Islandora community can then respond to posted issues by replying with comments, taking on the assignment to do the work described in the issue, or making pull requests relating to the issue. 7 | 8 | !!! Tip "Video version available" 9 | The material in this tutorial is presented in our video, [Create a GitHub Issue](https://youtu.be/eHBIYlRxEtk). 10 | 11 | ## Before you start 12 | 13 | - You will need to have an account on [GitHub](https://github.com/join). These are free to register and require only a name and email address. 14 | 15 | 16 | ## How to create an issue in the Islandora issue queue 17 | 18 | 1. Go to [https://github.com/Islandora/documentation/issues](https://github.com/Islandora/documentation/issues) 19 | 2. Click on **New issue**: 20 | ![New Issue button](../assets/create_issues_newissue.jpg) 21 | 3. Select the type of issue you are creating, as this will provide you with a template to describe your issue. 22 | ![Bug report, Documentation, Feature Request, and Use case are presented as possible issue templates when opening a new issue.](../assets/create_issues_Issue_Templates.png) 23 | 4. Fill in the information for your issue: 24 | 1. Give your issue a descriptive title following the text that is already provided in the template title, ex. _[BUG]._ 25 | 2. Fill in the body of your issue under the **Write** tab. A template of questions will be provided based on the type of issue selected. Depending on your issue, you may need to: describe a bug you are seeing and how to reproduce it, describe how an existing feature could be improved, describe a new feature and how it should work, or describe documentation that needs to be written or expanded. 26 | 3. Use the built-in text editor to help format your issue in [Markdown](http://en.wikipedia.org/wiki/Markdown). 27 | 4. Use the **Preview** button to see how your issue will be published and ensure the formatting looks the way you want. 28 | 5. Click **Submit new issue** to add your issue to the queue. 29 | 6. Optionally, Add labels to your issue to assign it to available categories, such as "documentation" or "question." Click on as may labels as you like. When you click outside of the drop-down list, the selected labels will be applied to your issue. 30 | 31 | ![Gif walkthrough of templates](../assets/create_issues_Describing_Issue.gif) Labels on the right sidebar of Github issue creation

32 | -------------------------------------------------------------------------------- /docs/contributing/docs-style-guide.md: -------------------------------------------------------------------------------- 1 | # Documentation Style Guide 2 | 3 | ## Do's 4 | 5 | - Use a GitHub Pull Request to submit documentation. 6 | - See the [Editing Documentation](https://islandora.github.io/documentation/contributing/editing-docs/) documentation page for information on creating a Pull Request. 7 | - Make it clear if the documentation is based on a particular configuration (such as the Install Profile Demo) or if it applies to any deployment of Islandora. 8 | - Submit documentation formatted in [Markdown](https://en.wikipedia.org/wiki/Markdown) format. 9 | - Include a top-level heading for the whole page (using `#`) 10 | - Please add Markdown headings (`#` and `##`) to the content sections. 11 | 12 | - Use the "bold/emphasis" style in Markdown by enclosing text in double asterisks or underscores, `**bold text**` or `__bold text__`, for UI elements that users will interact with. For example, a button label for a button that must be pressed should be made bold in Markdown. 13 | - Use the "italics" style in Markdown by enclosing text in single asterisks or underscores, `*italic text*` or `_italic text_`, for UI elements that have a label or title if you need to reference them in the documentation. For example, a title of a screen or page that will visit should be made italic in Markdown. 14 | - Use `>>` and `**bold text**` to indicate clicking through nested menu items, and also include the direct path. _Example:_ 15 | ``` 16 | **Administration** >> **Structure** >> **Views** (/admin/structure/views) 17 | ``` 18 | - Use `-` instead of `*` for bulleted lists. Indent four (4) spaces for nested lists (Github renders nesting in markdown with 2 spaces, but mkdocs needs 4). 19 | _Example:_ 20 | ``` 21 | - I am a list item 22 | - And I am a sub-item. 23 | ``` 24 | - Upload images to the 'assets' folder and reference them from there. 25 | - For file naming, use underscores between words and prefix all file names with the page name, e.g. context_display_hints.jpg for the image showing how to set display hints in the context menu. 26 | - Use the [Admonition syntax](https://squidfunk.github.io/mkdocs-material/reference/admonitions/) to create notes like this (four-space indent required): 27 | 28 | _Example:_ 29 | 30 | ``` 31 | !!! note "Helpful Tip" 32 | I am a helpful tip! 33 | ``` 34 | 35 | _Result:_ 36 | 37 | !!! note "Helpful Tip" 38 | I am a helpful tip! 39 | 40 | - Use our custom `islandora` type within the Admonition syntax to call attention to areas where Islandora configuration differs from standard Drupal configuration: 41 | 42 | _Example:_ 43 | 44 | ``` 45 | !!! islandora "Lobster trap" 46 | This setting is specific to Islandora and is not standard to Drupal. 47 | 48 | ``` 49 | 50 | _Result:_ 51 | 52 | !!! islandora "Lobster trap" 53 | This setting is specific to Islandora and is not standard to Drupal. 54 | 55 | ## Don'ts 56 | 57 | - Do not leave any "trailing spaces" at the end of lines of content. 58 | - Do not use "curly" quotes and apostrophes, use only "straight" quotes and apostrophes. 59 | - Do not upload images that are excessively large in file size (remember, these docs are part of the software!) 60 | -------------------------------------------------------------------------------- /docs/contributing/readme-template.md: -------------------------------------------------------------------------------- 1 | ``` 2 | # ![Alt text](Mascot Image) Repository Name 3 | 4 | [![Minimum PHP Version](link)](link) 5 | [![Build Status](link)](link) 6 | [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md) 7 | [![LICENSE](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](./LICENSE) 8 | [![codecov](link)](link) 9 | 10 | ## Introduction 11 | 12 | A brief introduction and summary of the module. 13 | 14 | ## Requirements 15 | 16 | This module requires the following modules/libraries: 17 | 18 | * [Name](Link) 19 | * [Name](Link) 20 | * Any 21 | * Requirements 22 | 23 | ## Installation 24 | 25 | Installations instructions. 26 | 27 | ## Configuration 28 | 29 | Describe path to configuration. 30 | 31 | Include a screenshot of configuration page. When using your choice of screenshot software, resize your browser 32 | first to avoid wide screenshots. Here are a few browser extension examples to take screenshots. 33 | 34 | - [Fireshots](https://chrome.google.com/webstore/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg) 35 | - [Nimbus](https://chrome.google.com/webstore/detail/nimbus-screenshot-screen/bpconcjcammlapcogcnnelfmaeghhagj) 36 | 37 | To upload the image drag the image into the comment section of an existing Pull Request. 38 | 39 | This will generate the image URL link for you 40 | ![Configuration Screenshot](https://user-images.githubusercontent.com/2857697/39014759-e2ef9c1e-43e0-11e8-921c-c2a3234d65d2.jpg) 41 | 42 | Video example on [How to attach an Image in README.md file with Github](https://youtu.be/wVHJtL-y7P0) 43 | 44 | 45 | ## Other Sections As Needed 46 | 47 | Sections specific to this repo, but not found in all repos, should go here. 48 | 49 | ## Documentation 50 | 51 | Further documentation for this module is available on the [Islandora documentation site](https://islandora.github.io/documentation/). 52 | 53 | ## Troubleshooting/Issues 54 | 55 | Having problems or solved a problem? Check out the Islandora google groups for a solution. 56 | 57 | - [Islandora Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora) 58 | - [Islandora Dev Group](https://groups.google.com/forum/?hl=en&fromgroups#!forum/islandora-dev) 59 | 60 | ## FAQ 61 | 62 | Q. Is this normal? 63 | 64 | A. Yes. This is normal. Why ... 65 | 66 | ## Maintainers/Sponsors 67 | 68 | Current maintainers: 69 | 70 | - [Maintainer Name](https://github.com/maintainer_github) 71 | - [Another Maintainer](https://github.com/maintainer_github) 72 | 73 | This project has been sponsored by: 74 | 75 | - Some really awesome sponsor 76 | 77 | ## Development 78 | 79 | If you would like to contribute, please get involved by attending our weekly [Tech Call](https://github.com/Islandora/documentation/wiki). We love to hear from you! 80 | 81 | If you would like to contribute code to the project, you need to be covered by an Islandora Foundation [Contributor License Agreement](https://drive.google.com/file/d/1k6eCM5EV-w4I4ErkiGj4NJwvLnXkejyk/view?usp=sharing) or [Corporate Contributor License Agreement](https://drive.google.com/file/d/1-SQYuHWRxvltQYgkFWpYv7nGbvJp1u8h/view?usp=sharing). Please see the [Contributors](https://github.com/Islandora/islandora-community/wiki/Onboarding-Checklist) pages on Islandora.ca for more information. 82 | 83 | We recommend using the [islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to get started. If you want to pull down the submodules for development, don't forget to run git submodule update --init --recursive after cloning. 84 | 85 | Also include any Travis gotcha's here. 86 | 87 | ## License 88 | 89 | [Name](link). GPLv2 for Drupal modules. MIT for other modules. 90 | ``` 91 | -------------------------------------------------------------------------------- /docs/contributing/sandbox.md: -------------------------------------------------------------------------------- 1 | # Updating the Sandbox 2 | 3 | !!! Note 4 | This page is about the online sandbox, [https://sandbox.islandora.ca](https://sandbox.islandora.ca). If you are looking to set up your own site, see the Installation section. 5 | 6 | The sandbox at [https://sandbox.islandora.ca](https://sandbox.islandora.ca) is built, configured, and deployed, by the [https://github.com/Islandora-Devops/sandbox](https://github.com/Islandora-Devops/sandbox) repository. This build process happens nightly from the Sandbox's latest release. 7 | 8 | ## Maintaining the front-end site 9 | 10 | The Sandbox makes use of the following components, which are version-locked in the `drupal/Dockerfile` file: 11 | 12 | * Islandora Workbench 13 | * Islandora Demo Objects 14 | * Islandora Starter Site 15 | 16 | In order to update them, you need to update the desired `XXX_COMMIT` hash; compute and add a sha-256 checksum; and then cut a release of the Sandbox repository. It will be deployed to the production site overnight. See full instructions at the [Sandbox README](https://github.com/Islandora-Devops/sandbox). 17 | 18 | Note that some of these components will need to be updated together, for example a new column in the Demo Objects may require a new field in the Starter Site. 19 | 20 | ## Maintaining the back-end containers 21 | 22 | The containers used in the Sandbox are specified by the `ISLANDORA_TAG` value in the `.env` file. 23 | -------------------------------------------------------------------------------- /docs/contributing/templates/closeCommitterVote.txt: -------------------------------------------------------------------------------- 1 | To: islandora-committers@googlegroups.com 2 | Subject: RESULT Vote new Islandora Committer candidate: [Nominee] 3 | 4 | Body: 5 | ================================= 6 | The vote has now closed. The results are: 7 | 8 | Binding Votes: 9 | 10 | +1 [TOTAL BINDING +1 VOTES] 11 | 0 [TOTAL BINDING +0/-0 VOTES] 12 | -1 [TOTAL BINDING -1 VOTES] 13 | 14 | The vote is ***successful/not successful*** 15 | 16 | Regards, 17 | [Self] 18 | ================================= 19 | -------------------------------------------------------------------------------- /docs/contributing/templates/committerAnnounce.txt: -------------------------------------------------------------------------------- 1 | To: islandora@googlegroups.com, islandora-dev@googlegroups.com 2 | Subject: New committer: [New Committer] 3 | 4 | Body: 5 | ================================ 6 | The Islandora committers have asked [New Committer] to become a committer and we are pleased to announce that they have accepted. 7 | 8 | ### add specific details here ### 9 | 10 | Further details of the rights and responsibilities of being a Islandora committer can be found here: 11 | http://islandora.github.io/documentation/contributing/committers/ 12 | 13 | Regards, 14 | 15 | ================================ 16 | -------------------------------------------------------------------------------- /docs/contributing/templates/committerInvite.txt: -------------------------------------------------------------------------------- 1 | To: [Invitee] 2 | 3 | Subject: 4 | =================================== 5 | Invitation to become Islandora committer: [Invitee] 6 | =================================== 7 | 8 | Body: 9 | =================================== 10 | Hello [Invitee], 11 | 12 | The Islandora Committers Team hereby offers you committer privileges to the Islandora project. These privileges are offered on the understanding that you'll use them reasonably and with common sense. We like to work on trust rather than unnecessary constraints. 13 | 14 | Being a committer does not require you to participate any more than you already do. It does tend to make one even more committed. You will probably find that you spend more time here. Of course, you can decline and instead remain as a contributor, participating as you do now. The specific rights and responsibilities of being an Islandora committer can be found here: 15 | http://islandora.github.io/documentation/contributing/committers/ 16 | 17 | This personal invitation is a chance for you to accept or decline in private. Either way, please let us know. 18 | 19 | Best regards, 20 | (on behalf of the Islandora Committers) 21 | =================================== 22 | -------------------------------------------------------------------------------- /docs/contributing/templates/committerInviteCLA.txt: -------------------------------------------------------------------------------- 1 | To: [Invitee] 2 | 3 | Subject: 4 | =================================== 5 | Invitation to become Islandora committer: [Invitee] 6 | =================================== 7 | 8 | Body: 9 | =================================== 10 | Hello [Invitee], 11 | 12 | The Islandora Committers Team hereby offers you committer privileges to the Islandora project. These privileges are offered on the understanding that you'll use them reasonably and with common sense. We like to work on trust rather than unnecessary constraints. 13 | 14 | Being a committer does not require you to participate any more than you already do. It does tend to make one even more committed. You will probably find that you spend more time here. Of course, you can decline and instead remain as a contributor, participating as you do now. The specific rights and responsibilities of being an Islandora committer can be found here: 15 | http://islandora.github.io/documentation/contributing/committers/ 16 | 17 | A. This personal invitation is a chance for you to accept or decline in private. Either way, please let us know. 18 | 19 | B. If you are accepting, the next step is to submit your signed iCLA found at the link below to community@islandora.ca: 20 | https://github.com/Islandora/islandora/wiki/Contributor-License-Agreements 21 | 22 | Best regards, 23 | (on behalf of the Islandora Committers) 24 | =================================== 25 | -------------------------------------------------------------------------------- /docs/contributing/templates/committerVote.txt: -------------------------------------------------------------------------------- 1 | To: islandora-committers@googlegroups.com 2 | Subject: Vote new committer: [Candidate] 3 | 4 | Body: 5 | ============================= 6 | [ add the reasons behind your nomination here ] 7 | 8 | Please respond with a +1, 0, or -1, and any rationale you would like to provide. 9 | 10 | Voting ends one week from today, i.e. midnight UTC on YYYY-MM-DD 11 | http://www.timeanddate.com/counters/customcounter.html?year=YYYY&month=MM&day=DD 12 | 13 | Regards, 14 | [Self] 15 | ============================= 16 | -------------------------------------------------------------------------------- /docs/css/custom.css: -------------------------------------------------------------------------------- 1 | 2 | .md-typeset .admonition.islandora, 3 | .md-typeset details.islandora { 4 | border-color: rgb(194, 19, 19); 5 | } 6 | .md-typeset .islandora > .admonition-title, 7 | .md-typeset .islandora > summary { 8 | background-color: rgba(194, 19, 19, 0.1); 9 | } 10 | .md-typeset .islandora > .admonition-title::before, 11 | .md-typeset .islandora > summary::before { 12 | content: "🦞"; 13 | background-color: rgba(194, 19, 19, 0); 14 | -webkit-mask-image: none; 15 | mask-image: none; 16 | mask-size: unset; 17 | } 18 | 19 | .markdown-body .callout[theme="islandora"] { 20 | --background: #c54245; 21 | --border: #ffffff6b; 22 | --text: #f5fffa; 23 | } 24 | 25 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | # About 2 | ![Islandora logo](https://assets.website-files.com/618eb1b213a102afa83e260d/61b376b9f04ddd1f0da90edf_logo-islandora.svg) 3 | 4 | ## This is Islandora 5 | 6 | [Islandora](https://islandora.ca) is an open-source framework that provides the necessary tools to use a [Drupal](https://www.drupal.org) website as a fully-functional Digital Assets Management System. See [Quickstart](installation/quickstart.md) to get started. 7 | 8 | Islandora: 9 | 10 | [//]: # (We should probably replace as many of the links in this section as possible with links to within this documentation, and make it clear which are internal links and which link out.) 11 | - **Is native Drupal** - With Islandora, you can create preservation-ready digital resources using Drupal nodes, media, files, and taxonomy terms. 12 | - **Provides a sensible starting place** - No two Islandora sites are the same, but we provide a starting point for Drupal - the [Islandora Starter Site](https://github.com/Islandora/islandora-starter-site/) - as well as several methods of [installation](installation/quickstart.md) that set up a working suite of services external to Drupal and show off Islandora's capabilities. 13 | - **Integrates with Fedora** - Drupal resources can be stored in Lyrasis's [Fedora Repository](https://wiki.duraspace.org/display/FF/Fedora+Repository+Home) (version 5.0 or greater) as binaries (files) and RDF metadata. 14 | - **Uses microservices** - Islandora provides an architecture for messaging and integration with any number of microservices, that provide services outside of the Drupal framework. Islandora's [Crayfish](https://github.com/Islandora/crayfish) suite of microservices provides functionality for synchronizing resources into Fedora and for automatically generating helper files, called derivatives. 15 | - **Can handle messages at scale** - Islandora created [Alpaca](https://github.com/Islandora/Alpaca), an integration middleware based on Apache Camel, to handle messaging and queueing at an enterprise scale. To the user, this means large batch uploads can be processed gracefully. 16 | 17 | [//]: # (Allowing bulk uploads to be processed without affecting the server... would be the ideal right? but right now they're on the same server. Is just saying "scalability" ok?) 18 | 19 | - **Offers digital preservation features** - Using a robust storage layer for preservation (Fedora), and generating technical metadata with FITS, are digital preservation tools provided by our automated installation methods. Community members have created additional features for doing [digital preservation using Islandora](https://github.com/mjordan/digital_preservation_using_islandora), which are not yet part of our automated setup. 20 | - **Exposes data to harvesters** - Metadata about resources is available as linked data through the [JSON-LD serialization module](https://github.com/Islandora/jsonld), and can be made available through Drupal, Fedora, or a triplestore. Islandora Starter Site also offers a full configuration for exposing [OAI-PMH](user-documentation/metadata-harvesting.md#oai-pmh) so that metadata can be harvested by aggregators, and [IIIF support](https://github.com/Islandora/islandora/tree/8.x-1.x/modules/islandora_iiif) means images in Islandora can be viewed in any IIIF-compliant viewer. 21 | - **Offers flexibility** - As Islandora content is Drupal content, migrations and batch editing can be done through Drupal's built-in migrate framework and vocabularies can be created using Drupal taxonomies. Contributed Drupal modules such as [Solr Search API](https://www.drupal.org/project/search_api_solr) enable in-site search, and [Matomo Analytics](https://www.drupal.org/project/matomo) provides usage metrics for site analytics. 22 | - **Is a community** - A [dedicated, active community of users and developers](https://groups.google.com/forum/#!forum/islandora) is working to push new features, collaborate on improvements, design custom solutions, and create extended functionality. Some of these for Islandora 8 take the form of [Recipes](https://github.com/Islandora-Labs/Islandora-Cookbook). 23 | 24 | ## Join the Community 25 | 26 | The [Islandora community](https://www.islandora.ca/community) is an active group of users, managers, librarians, documenters, and developers from galleries, libraries, archives, museums, and other institutions worldwide. We welcome discussion and contribution through various mailing lists, channels, interest groups, and calls. The Islandora community operates under the [Islandora Code Of Conduct](https://www.islandora.ca/code-of-conduct). See our Contributing Guidelines for more information. 27 | 28 | 29 | !!! note "Documentation for previous versions" 30 | Documentation for Islandora Legacy (6 and 7) is on the [Lyrasis documentation wiki](https://wiki.lyrasis.org/display/ISLANDORA/Start). 31 | -------------------------------------------------------------------------------- /docs/installation/docker/docker-introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction to ISLE 2 | 3 | ## What is ISLE? 4 | 5 | ISLE, short for ISLandora Enterprise, is a community initiative to ease the installation and maintenance of Islandora by using Docker. It was originally started by the Islandora Collaboration Group for Islandora Legacy. When transitioning to Islandora, the project came under the purview of the Islandora Foundation. All documentation on this site assumes you're trying to install Islandora. [See here](https://islandora-collaboration-group.github.io/ISLE/) if you are looking for ISLE for Islandora Legacy. 6 | 7 | ## Why use ISLE? 8 | 9 | ISLE's architecture using [Docker](https://www.docker.com/) separates out the "state" of your site (i.e. all the content, files, and configurations that you've entered) from the underlying software that runs it (e.g. webserver, database, microservices, etc). This allows for easier upgrades, faster development, and more flexible deployment. It is hands down the easiest way to install, run, and maintain and Islandora instance. 10 | 11 | ## Where is ISLE? 12 | 13 | ISLE is a suite of Docker containers that run the various components of Islandora: drupal, fedora, solr, alpaca, crayfish, matomo, etc. The individual containers are created (and automatically pushed to [Docker Hub](https://hub.docker.com/u/islandora)) by [ISLE BuildKit](https://github.com/Islandora-Devops/isle-buildkit). 14 | 15 | In order to deploy the containers, however, you need to use a container orchestration tool. The ISLE project provides tools for running and maintaining the containers using docker-compose with [ISLE Docker Compose](https://github.com/Islandora-Devops/isle-dc) or [ISLE Site Template](https://github.com/Islandora-Devops/isle-site-template). -------------------------------------------------------------------------------- /docs/installation/docker/isle-dc/docker-available-commands.md: -------------------------------------------------------------------------------- 1 | # Available Commands 2 | 3 | There's a lot of useful commands available to you from within the `isle-dc` folder. 4 | 5 | ## Rebuild docker-compose.yml 6 | 7 | `make -B docker-compose.yml` will rebuild your `docker-compose.yml` file based on configuration in your `.env` file. `make demo` and `make local` will automatically do this for you, but if you change configuration at a later point in time, you'll need to run this command to see your changes reflected. 8 | 9 | ## Config Export 10 | 11 | `make config-export` will export your site's configuration to your site's config sync directory (usually `config/sync` inside your Drupal root folder). 12 | 13 | ## Config Import 14 | 15 | `make config-import` will import site's configuration from your site's config sync directory (usually `config/sync` inside your Drupal root folder). 16 | 17 | ## Database Dump 18 | 19 | `make drupal-database-dump DEST=/your/path/dump.sql` will dump your Drupal database and place the file at `DEST`. 20 | 21 | ## Database Import 22 | 23 | `make drupal-database-import SRC=/your/path/dump.sql` will import your Drupal database from the file at `SRC`. 24 | 25 | ## Export Public Files 26 | 27 | `make drupal-public-files-dump DEST=/your/path/public_files.tgz` will export your public filesystem and place it as a single zipped tarball at `DEST`. 28 | 29 | ## Import Public Files 30 | 31 | `make drupal-public-files-import SRC=/your/path/public_files.tgz` will import your public filesystem from a single zipped tarball at `SRC`. 32 | 33 | ## Fcrepo Export 34 | 35 | `make fcrepo-export DEST=/your/path/fcrepo-export.tgz` will export your Fedora repository and place it as a single zipped tarball at `DEST` 36 | 37 | ## Fcrepo Import 38 | 39 | `make fcrepo-import SRC=/your/path/fcrepo-export.tgz` will import your Fedora repository from a single zipped tarball at `SRC` 40 | 41 | ## Reindex Fedora Metadata 42 | 43 | `make reindex-fcrepo-metadata` will reindex RDF metadata from Drupal into Fedora. Requires the [Views Bulk Operations Module](https://www.drupal.org/project/views_bulk_operations). 44 | 45 | ## Reindex Solr 46 | `make reindex-solr` will rebuild rebuild Solr search index for your repository. 47 | 48 | ## Reindex the Triplestore 49 | 50 | `make reindex-triplestore` will reindex RDF metadata from Drupal into Blazegraph. Requires the [Views Bulk Operations Module](https://www.drupal.org/project/views_bulk_operations). 51 | -------------------------------------------------------------------------------- /docs/installation/docker/isle-dc/docker-basic-usage.md: -------------------------------------------------------------------------------- 1 | # Basic Usage 2 | 3 | After you've finished installing Islandora using ISLE, here's some useful information to keep close at hand 4 | about running your site. 5 | 6 | ## Important Files 7 | 8 | The `make` commands that you used to install Islandora will leave you with two very important files. 9 | 10 | | File | Purpose | 11 | |:---------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 12 | | `.env` | A configuration file that is yours to customize. This file controls how the docker-compose.yml file gets generated to meet your use case.
It also allows you to set variables that make their way into the final `docker-compose.yml` file, such as your site's domain. | 13 | | `docker-compose.yml` | A ready to run `docker-compose.yml` file based on your `.env` file. This file is considered disposable. When you change your `.env` file, you will generate a new one. | 14 | 15 | ## Available Services 16 | 17 | Here's a list of all the available services. Note that there are some services over `http` and not `https`. 18 | Those aren't meant to be exposed to the public, but internally people from your organization will want to 19 | access them. In practice, you can restrict access to these services using firewall rules to just those who 20 | you trust. 21 | 22 | | Service | Url | 23 | | :---------- | :--------------------------------------------------------------------------------------------- | 24 | | Drupal | [https://islandora.traefik.me](https://islandora.traefik.me) | 25 | | Traefik | [http://islandora.traefik.me:8080](https://islandora.traefik.me:8080) | 26 | | Fedora | [http://islandora.traefik.me:8081/fcrepo/rest](https://islandora.traefik.me:8081/fcrepo/rest) | 27 | | Blazegraph | [http://islandora.traefik.me:8082/bigdata](https://islandora.traefik.me:8082/bigdata) | 28 | | Activemq | [http://islandora.traefik.me:8161](https://islandora.traefik.me:8161) | 29 | | Solr | [http://islandora.traefik.me:8983](https://islandora.traefik.me:8983) | 30 | | Cantaloupe | [https://islandora.traefik.me/cantaloupe](https://islandora.traefik.me/cantaloupe) | 31 | | Matomo | [https://islandora.traefik.me/matomo/](https://islandora.traefik.me/matomo/) | 32 | | Code Server | [http://islandora.traefik.me:8443/](https://islandora.traefik.me:8443/) | 33 | 34 | ## Basic Commands 35 | 36 | ### Stopping Islandora 37 | 38 | If you want to stop Islandora, you can bring down all the containers with 39 | 40 | ``` 41 | docker-compose down 42 | ``` 43 | 44 | ### Restarting Islandora 45 | 46 | If you want to start Islandora back up after stopping it, use 47 | 48 | ``` 49 | docker-compose up -d 50 | ``` 51 | 52 | ### Deleting Islandora 53 | 54 | If you want to stop Islandora and delete all of its content, use 55 | 56 | ``` 57 | docker-compose down -v 58 | ``` 59 | 60 | ### Regenerating docker-compose.yml 61 | 62 | If you make changes to configuration in the .env file, you may need to regenerate your `docker-compose.yml` file so that 63 | those changes take effect. 64 | 65 | ``` 66 | make -B docker-compose.yml 67 | ``` 68 | 69 | Once you have a new `docker-compose.yml` file, you'll need to restart your containers that have had configuration change. 70 | You can do this easily with 71 | 72 | ``` 73 | docker-compose up -d 74 | ``` 75 | 76 | Even if the site is up and running, that command will only restart the containers it needs to. 77 | 78 | ### Listing services 79 | 80 | You can see a list of all the containers that you have running and their statuses by running 81 | 82 | ``` 83 | docker ps -a 84 | ``` 85 | 86 | ### Tailing Logs 87 | 88 | You can tail logs using 89 | 90 | `docker-compose logs service_name` 91 | 92 | For example, to tail nginx logs for Drupal, use `docker-compose logs drupal`. 93 | 94 | If you don't know what you're looking for exactly, you can turn on the fire hose and look through all logs by dropping 95 | the service name and simply using 96 | 97 | `docker-compose logs` -------------------------------------------------------------------------------- /docs/installation/docker/isle-dc/docker-local.md: -------------------------------------------------------------------------------- 1 | # Installing a Development or Demo Server 2 | 3 | When developing locally, your Drupal site resides in your `isle-dc/codebase` folder and is bind-mounted into your 4 | Drupal container. This lets you update code using the IDE of your choice on your host machine, and the 5 | changes are automatically reflected on the Drupal container. 6 | 7 | ## Installing ISLE Docker Compose 8 | 9 | Use Git to install the ISLE Docker Compose tool: 10 | 11 | `git clone https://github.com/islandora-devops/isle-dc` 12 | 13 | Tagged versions are available [here](https://github.com/Islandora-Devops/isle-dc/tags). 14 | 15 | ## Getting Started 16 | 17 | If you don't already have a Drupal site, you'll be given a basic setup using Drupal 10 and the 18 | [Islandora Starter Site](https://github.com/Islandora-Devops/islandora-starter-site). 19 | 20 | If you do already have a Drupal site, use git to clone it into place as the `codebase` folder. 21 | 22 | ``` 23 | cd /path/to/isle-dc 24 | git clone https://github.com/your_org/your_repo codebase 25 | ``` 26 | 27 | Now you'll need to tell `isle-dc` to look for it by setting the `ENVIRONMENT` variable in 28 | your `.env` file. If you don't have one, copy over `sample.env` and name it `.env`. Then 29 | set 30 | 31 | ``` 32 | ENVIRONMENT=starter 33 | ``` 34 | 35 | You should also change the `COMPOSE_PROJECT_NAME` variable. This determines the name of the 36 | Docker containers and volumes that are created when you run `make starter`. If you leave this as the default 37 | you will need to be careful not to overwrite the containers with another install of `isle-dc` 38 | later. 39 | ``` 40 | COMPOSE_PROJECT_NAME=isle-dc 41 | ``` 42 | 43 | If your site includes exported configuration from `drush config:export`, then you'll also 44 | need to set 45 | 46 | ``` 47 | INSTALL_EXISTING_CONFIG=true 48 | DRUPAL_INSTALL_PROFILE=minimal 49 | ``` 50 | 51 | Once you are ready, run 52 | 53 | ```bash 54 | make starter 55 | ``` 56 | 57 | to install the Drupal site in your `codebase` folder and spin up all the other containers with it. 58 | 59 | Enjoy your Islandora instance! Check out the [basic usage documentation](docker-basic-usage.md) to see 60 | all the endpoints that are available and how to do things like start and stop Islandora. Your passwords, 61 | including the Drupal admin password, can be found in the `secrets/live` directory after you run `make starter`. 62 | 63 | ## Demo Content 64 | 65 | To populate your site with some demo content, you can run `make demo_content`. This will import some sample objects into your Islandora site. 66 | -------------------------------------------------------------------------------- /docs/installation/docker/isle-dc/docker-maintain-drupal.md: -------------------------------------------------------------------------------- 1 | # Maintaining Your Drupal Site 2 | 3 | Drupal has a dedicated security team, and regularly produces updates to address security issues 4 | that are discovered. You should always keep your Drupal site up to date so that you are 5 | protected against known vulnerabilities. Updating Drupal can be intimidating, but we have 6 | step-by-step instructions to help you do it safely. 7 | 8 | ## Note on Production Sites 9 | 10 | Please note that maintaining Drupal should be done on your development 11 | site. For production sites, you should build an image from the `codebase` folder on your development 12 | machine, and run that image in production. For more information on this, please see the [production install 13 | instructions](https://islandora.github.io/documentation/installation/docker-custom/). 14 | 15 | ## Running commands 16 | 17 | Once you have a `codebase` folder, how do you maintain it and keep it up to date? The quick answer is 18 | "the same way you maintain any Drupal site with Composer and Drush"... with one small caveat. You most 19 | likely do not have PHP or Composer on your machine, and even if you do, you want to make sure you're 20 | using the exact same version that your Docker container is using. So to ensure all the versions of things line 21 | up, we use Docker to execute Drush and Composer from the Drupal container. The general template for 22 | running a command in your Drupal container looks like this: 23 | 24 | ``` 25 | docker compose exec -T drupal with-contenv bash -lc 'YOUR COMMAND' 26 | ``` 27 | 28 | You can also just shell into the Drupal container and run commands as well, 29 | just be aware that if you shut down your container for any reason, you'll lose your 30 | bash history. If you want to shell in to run commands, drop the `-T` and `-lc 'YOUR COMMAND'` 31 | bits. 32 | 33 | ``` 34 | docker compose exec drupal with-contenv bash 35 | ``` 36 | 37 | ## Updating your Drupal Site 38 | 39 | Use Composer to update your site's modules and their dependencies. The working directory 40 | of the Drupal container is the Drupal root (a.k.a. `codebase`), so you don't need to `cd` 41 | into any other directory before running the command. The following command will update 42 | all modules and their dependencies that are not pinned to specific versions. 43 | 44 | ``` 45 | docker compose exec -T drupal with-contenv bash -lc "su nginx -s /bin/bash -c 'composer update -W'" 46 | 47 | ``` 48 | Note that we run this command as the nginx user. By default, commands are run as root, which 49 | can cause some ownership issues when running Composer. By running this as nginx, we ensure 50 | that new files are owned by the nginx user. 51 | 52 | ### Permission Issue 53 | 54 | When running Composer commands you may come across the following error 55 | ``` 56 | [ErrorException] 57 | file_put_contents(/var/www/drupal/web/sites/default/settings.php): failed to open stream: Operation not permitted 58 | ``` 59 | This means that Composer is not able to write to your settings.php file. If you run into this 60 | error, giving write permission to the nginx user should fix it. 61 | 62 | ## Drupal Database Updates 63 | 64 | After getting the newest code, you'll want to use Drush to update the Drupal database 65 | and run any other update hooks that have been introduced. However, _YOU SHOULD BACK UP 66 | YOUR DATABASE BEFORE GOING ANY FURTHER_. You never know when something will go wrong and 67 | you don't want to be stuck with an unusable database and no plan B. 68 | 69 | ``` 70 | make drupal-database-dump DEST=/path/to/dump.sql 71 | ``` 72 | 73 | Now you can safely update the Drupal database with Drush via 74 | 75 | ``` 76 | docker compose exec -T drupal with-contenv bash -lc 'drush updb' 77 | ``` 78 | 79 | If for any reason, something goes wrong, you can Restore the Drupal database at any time by running 80 | 81 | ``` 82 | make drupal-database-import SRC=/path/to/dump.sql 83 | ``` 84 | -------------------------------------------------------------------------------- /docs/installation/docker/isle-dc/docker-troubleshooting.md: -------------------------------------------------------------------------------- 1 | # Troubleshooting 2 | 3 | ### Make command not found 4 | 5 | If you get the error `bash: make: command not found` then you need to install GNU make. Run `sudo apt update` and `sudo apt install make` to install. 6 | 7 | ### Docker Versions 8 | 9 | If you get an error such as: `ERROR: Version in "./docker-compose.activemq.yml" is unsupported.`, then you need to upgrade Docker. Enter the command `make clean` before re-attempting to `make demo`. 10 | 11 | ### Re-attempting `make demo` 12 | 13 | If `make` fails for any reason, enter `make clean` before attempting to `make` again. If not, you may see an error such as: `ERROR: Top level object in './docker-compose.yml' needs to be an object not ''.` 14 | 15 | ### Docker containers exit without warning 16 | 17 | If you notice some Docker containers drop (exited(0)), and (in Docker Desktop) the isle-dc app icon is yellow instead of green, try increasing the resources allocated to Docker (see note above). 18 | 19 | ### Connection timed out (Mac). 20 | 21 | If you are using Docker Desktop for Mac, and get timeout errors when spinning up the containers (during `docker-compose up -d` or during `make local`) such as this: 22 | 23 | ``` 24 | ERROR: for isle-dc_mariadb_1 UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=480) 25 | ``` 26 | 27 | you can try quitting Docker completely (make sure there is no whale icon in your top toolbar - may need to select "Quit" from the whale icon itself) and then restart Docker. 28 | ### 504 Bad Gateway 29 | If you get a white screen with a 504 Bad Gateway error, this means your containers haven't finished initializing themselves yet. If you've waiting an appropriate amount of time (2-5 minutes), then there is most likely an error in a container's startup script. Use `docker ps -a` to see which services have `Exited` status, and then tail their logs with `docker-compose logs service_name`. 30 | -------------------------------------------------------------------------------- /docs/installation/docker/site-template/docker-modifications.md: -------------------------------------------------------------------------------- 1 | # Docker Modifications 2 | 3 | ISLE Site Template provides you with a `docker-compose.yml` file that allows you to get an Islandora site running quickly, but it makes some assumptions about how the site will run, and which containers you will use. Once you have your site running you may want to make some modifications to the default setup that the Site Template uses. 4 | 5 | ## Adding / Editing Environment Variables 6 | 7 | Islandora Buildkit provides several environment variables that can be modified when creating containers. 8 | 9 | Please see the README for the different buildkit images to see what is available: 10 | 11 | - [ActiveMQ](https://github.com/Islandora-Devops/isle-buildkit/tree/main/activemq) 12 | - [Alpaca](https://github.com/Islandora-Devops/isle-buildkit/tree/main/alpaca) 13 | - [Blazegraph](https://github.com/Islandora-Devops/isle-buildkit/tree/main/blazegraph) 14 | - [Cantaloupe](https://github.com/Islandora-Devops/isle-buildkit/tree/main/cantaloupe) 15 | - [Code Server](https://github.com/Islandora-Devops/isle-buildkit/tree/main/code-server) 16 | - [Crayfits](https://github.com/Islandora-Devops/isle-buildkit/tree/main/crayfits) 17 | - [Drupal](https://github.com/Islandora-Devops/isle-buildkit/tree/main/drupal) 18 | - [Fedora](https://github.com/Islandora-Devops/isle-buildkit/tree/main/fcrepo6) 19 | - [Fits](https://github.com/Islandora-Devops/isle-buildkit/tree/main/fits) 20 | - [Homarus](https://github.com/Islandora-Devops/isle-buildkit/tree/main/homarus) 21 | - [Houdini](https://github.com/Islandora-Devops/isle-buildkit/tree/main/houdini) 22 | - [Hypercube](https://github.com/Islandora-Devops/isle-buildkit/tree/main/hypercube) 23 | - [MariaDB](https://github.com/Islandora-Devops/isle-buildkit/tree/main/mariadb) 24 | - [Milliner](https://github.com/Islandora-Devops/isle-buildkit/tree/main/milliner) 25 | - [Solr](https://github.com/Islandora-Devops/isle-buildkit/tree/main/solr) 26 | 27 | You can add these environment variables to your docker-compose.yml in order to change their values. For example, if you want to increase the PHP memory limit in your production Drupal container, you can do so like this: 28 | 29 | ``` 30 | drupal-prod: 31 | <<: [*prod, *drupal] 32 | Environment: 33 | PHP_MEMORY_LIMIT: 1G 34 | ``` 35 | 36 | 37 | ## Removing Services 38 | 39 | You may not want to use all the images that are included in the Site Template’s `docker-compose.yml`. You can remove containers by deleting their sections in the docker-compose.yml file. 40 | 41 | For example, to remove Fedora, you would delete the services called fcrepo-dev and fcrepo-prod. 42 | 43 | Depending on the container you are removing, you may need to delete references to it as well. For example, some containers are referenced by others in the `depends_on` field. You will need to also delete these references, so if you delete the `fedora-dev` service, you will need to remove the rule that `traefik-dev` depends on it. 44 | 45 | If you are removing a container which is referenced by Drupal, ensure that you update Drupal as well (e.g. if removing Fedora, ensure your Media's files are not writing to the Fedora filesystem). 46 | 47 | After doing `docker compose down`, run `docker compose up -d --remove-orphans` to remove the containers you removed from the docker-compose.yml file. 48 | 49 | ## Hiding Fedora From the Public 50 | 51 | By default, your Fedora repo will be available to the public at `fcrepo.${DOMAIN}`. If you do not want to expose your Fedora, you can stop this URL from working by disabling it via Traefik in your `docker-compose.yml`. To do this, you need to add the `traefik-disable` label to `fcrepo-prod` like this, 52 | 53 | ```yaml 54 | fcrepo-prod: 55 | <<: [*prod, *fcrepo] 56 | environment: 57 | <<: [*fcrepo-environment] 58 | FCREPO_ALLOW_EXTERNAL_DRUPAL: "https://${DOMAIN}/" 59 | labels: 60 | <<: [*traefik-disable, *fcrepo-labels] 61 | ``` 62 | 63 | If you have done this, you can also remove the DNS records that point this URL to your production server. 64 | 65 | Finally, you will have to change the URL that Drupal uses to access the Fedora repo. This can be found in your `docker-compose.yml` in the `environment` section for `drupal-prod`, and should be changed to: 66 | 67 | ```yaml 68 | DRUPAL_DEFAULT_FCREPO_URL: "http://fcrepo:8080/fcrepo/rest/" 69 | ``` 70 | -------------------------------------------------------------------------------- /docs/installation/docker/site-template/site-template.md: -------------------------------------------------------------------------------- 1 | # ISLE Site Template 2 | 3 | ## What is the ISLE Site Template? 4 | 5 | The [ISLE Site Template][ISLE Site Template] is a system for installing 6 | Islandora on Docker. As with ISLE-DC, it uses [Docker Compose][Docker Compose] 7 | to orchestrate the installation of all the different services (Docker 8 | containers) that make up Islandora. Unlike ISLE-DC, in ISLE Site Template you 9 | use Docker Compose commands directly, helping you to get familiar with the 10 | kinds of commands that will be a key part of running and maintaining Islandora. 11 | 12 | ## Usage 13 | 14 | 1. **Do not clone the Isle Site Template!** 15 | * Unlike most other repositories we provide, the Isle Site Template is not 16 | meant to be cloned or forked. Rather, it can be downloaded using `curl` 17 | and installed either manually or automatically. 18 | 19 | 2. Instead, follow the instructions in the ISLE Site Template's `README.md` and 20 | `README.template.md` files. 21 | 22 | * Instructions are provided both for `dev` and `prod` environments, with 23 | different services available on each. 24 | 25 | 3. During installation, you will install a copy of the [Islandora Starter 26 | Site][Islandora Starter Site]. 27 | * Though, if you select the manual installation option, you can change that 28 | out for a different base composer project. This will form the basis of 29 | your Drupal site. If you don't have a custom version, we recommend using the 30 | Islandora Starter Site (and it's installed automatically during the automatic 31 | install). 32 | 33 | 4. Customizing your site can be persisted to your own repo. 34 | * In the process of setting you the ISLE Site Template, you are encouraged 35 | to create a custom Git repository for this project. When you do, you can 36 | save your changes to several components of your own site, for example the site 37 | name in Docker, which services you have running, and all changes made to your 38 | entire Drupal site configuration. 39 | 40 | [ISLE Site Template]: https://github.com/Islandora-Devops/isle-site-template 41 | [Docker Compose]: https://docs.docker.com/compose/ 42 | [Islandora Starter Site]: https://github.com/Islandora-Devops/islandora-starter-site 43 | -------------------------------------------------------------------------------- /docs/installation/quickstart.md: -------------------------------------------------------------------------------- 1 | # Quickstart 2 | 3 | There are several ways to try Islandora, which are presented here in order of increasing sophistication. By default, they all install the [Islandora Starter Site](https://github.com/Islandora-Devops/islandora-starter-site) which is a starting place for customizing your own site, as well as our suite of external services. 4 | 5 | ## Online Sandbox 6 | 7 | Try Islandora without installing anything at [sandbox.islandora.ca](https://sandbox.islandora.ca/). 8 | [Login credentials](https://github.com/Islandora/documentation/wiki/Sandbox.Islandora.ca-online-credentials) for the sandbox can be found on our Wiki. 9 | 10 | Anyone can log in to this sandbox as an administrator and explore the interface! However, this site is refreshed every night so your changes will not be permanent. This site uses the Islandora Starter Site. This sandbox includes some sample content and configuration (such as views and blocks) to increase its usefulness as a sandbox. . 11 | 12 | ## ISLE Site Template 13 | 14 | [ISLE Site Template](https://github.com/Islandora-Devops/isle-site-template) uses Docker and is based off images created by [ISLE Buildkit](https://github.com/Islandora-Devops/isle-buildkit), but is a simpler tool than ISLE-DC. This is a full-fledged Docker installation where you can install modules and themes using Composer, either by executing commands in the container or by using the built-in IDE. It is suitable for local development or production. See documentation: [Installation - Site Template](docker/site-template/site-template.md) for more details. 15 | 16 | ## ISLE-DC 17 | 18 | [ISLE-DC](https://github.com/Islandora-Devops/isle-dc) uses Docker and provisions each service in the Islandora stack in a separate container. The containers are also based off of the images in ISLE Buildkit. ISLE-DC uses the [GNU Make](https://www.gnu.org/software/make/) tool to provide several shortcuts to performing common management functions. It is suitable for local development or production. See documentation: [Installation - Docker ISLE](docker/isle-dc/docker-local.md) for more details. 19 | 20 | 21 | ## Ansible Playbook 22 | 23 | To provision a local Vagrant or remote Ubuntu virtual machine (without Docker), you can use the [Islandora Ansible Playbook](https://github.com/Islandora-Devops/islandora-playbook). The playbook results in all services installed on a single machine, but can be altered to spread services across various machines. This is a full-fledged VM where you can install modules and themes using Composer. This method requires basic command-line usage and it's advantageous if you are familiar with provisioning software on Ubuntu. This Playbook is suitable for local or production use, though local use (through VirtualBox and Vagrant) is not supported yet by Apple hardware (i.e. M1/M2 machines). See documentation: [Installation - Ansible Playbook](playbook.md) for more details. 24 | -------------------------------------------------------------------------------- /docs/models/audio.md: -------------------------------------------------------------------------------- 1 | # Audio 2 | 3 | ## Media and File Types 4 | 5 | Islandora Starter Site uses the built-in Drupal "Audio" media type for video. Islandora Starter Site configures it to accept files of type `mp3`, `wav`, and `aac`. 6 | 7 | ## Derivatives 8 | 9 | Islandora uses Homarus (ffmpeg as a microservice) to create audio derivatives. Islandora Starter Site sets you up to create: 10 | 11 | * "Service file" from the original file, with parameters `-codec:a libmp3lame -q:a 5`, stored in the public filesystem 12 | 13 | These parameters can be changed in the configuration for the Drupal Action that Islandora uses to generate an Audio derivative. 14 | 15 | Islandora Starter Site sets up a context to automatically create this derivative when: 16 | 17 | * The Audio media is tagged with the "Original File" term (a term with External URI `http://pcdm.org/use#OriginalFile`) 18 | * The media's parent node is tagged with the "Audio" model (a term with External URI `http://purl.org/coar/resource_type/c_18cc`) 19 | 20 | The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing-crayfish.md#homarus-audiovideo-derivatives) 21 | 22 | ## Display 23 | 24 | Drupal provides an "Audio" field formatter for file fields that displays a simple playable audio widget. It works but does not support captions/subtitles. Islandora provides an "Audio with captions" formatter that allows for captions. 25 | 26 | To use the captions feature out of the box, add the captions track as a WEBVTT file (`.vtt`) in the Audio media's "Track" field (see below regarding which Audio media to use). If you don't have the "Track" field (provided by Islandora Starter Site), create a field of type "Media Track" (a type provided by Islandora) on the same Media (or more broadly, same entity) as your audio file. Then use the Manage Display page to set your audio file field to render using the "Audio with captions" field formatter. 27 | 28 | If you're using Islandora Starter Site, you can expect to see an audio player on your node. This is done with a special view (an EVA view) that displays service files, which is configured to show on Repository Item's default display mode (on the "Manage Display" page). The EVA view renders the service file media using the "Source" view mode. For Audio media, this is configured to show only the audio file using the "Audio with Captions" widget. Note that captions, to be displayed, must be on the media that is playing. Thus, when the Service file media is being played, captions on the Original File media are ignored. 29 | -------------------------------------------------------------------------------- /docs/models/video.md: -------------------------------------------------------------------------------- 1 | # Video 2 | 3 | ## Media and file types 4 | 5 | Islandora Starter Site uses the built-in Drupal "Video" media type for videos. Islandora Starter Site configures it to accept files of type `mp4`. 6 | 7 | The Install Profile also makes available the "Remote video" media type, but its behaviour has not been publicly documented. 8 | 9 | ## Derivatives 10 | 11 | Islandora uses Homarus (ffmpeg as a microservice) to create video derivatives. Islandora Starter Site sets you up to create: 12 | 13 | * Service file with mimetype video/mp4 [yes, this is the same as the input, i'm not sure if it downsamples] 14 | * Thumbnail with mimetype image/jpeg, derived from one second into the video and scaled down to ~100 px using the command `-ss 00:00:01.000 -frames 1 -vf scale=100:-2`. 15 | 16 | These parameters can be changed in the configuration for the Drupal Actions that Islandora uses to create video derivatives. 17 | 18 | Islandora Starter Site sets up a context to automatically create this derivative when: 19 | 20 | * The Video media is tagged with the "Original File" term (a term with External URI `http://pcdm.org/use#OriginalFile`) 21 | * The media's parent node is tagged with the "Video" model (a term with External URI `http://purl.org/coar/resource_type/c_18cc`) 22 | 23 | The mimetype formats allowed by Homarus are configured in Homarus itself - see [Installing Crayfish](../installation/manual/installing-crayfish.md#homarus-audiovideo-derivatives) 24 | 25 | ## Display 26 | 27 | Drupal provides a "Video" field formatter for file fields that displays a simple playable video widget. It works but does not support captions/subtitles. Islandora provides a "Video with Captions" formatter that allows for captions. 28 | 29 | To use the Captions feature out of the box, add the captions track as a WEBVTT file (`.vtt`) in the Video media's "Track" field (see below regarding which Video media to use). If you don't have the "Track" field (provided by Islandora Starter Site), create a field of type "Media Track" (a type provided by Islandora) on the same Media (or more broadly, same entity) as your audio file. Then use the Manage Display page to set your audio file field to render using the "Audio with captions" field formatter. 30 | 31 | If you're using Islandora Starter Site, you can expect to see a video player on your node. This is done with a special view (an EVA view) that displays service files, which is configured to show on the default view of Repository Items (see the "Manage Display" page). The EVA view renders the service file media using the "Source" view mode. For Video media, this is configured to show only the video file using the "Video with Captions" formatter. Thus, when the Service file media is being played, captions on the Original File media are ignored. 32 | -------------------------------------------------------------------------------- /docs/placeholder.md: -------------------------------------------------------------------------------- 1 | # Placeholder page 2 | This page serves as a placeholder for functionality that still needs documentation. 3 | 4 | Interested in contributing to the Islandora documentation? Join the Community! 5 | 6 | The [Islandora community](https://www.islandora.ca/community) is an active group of users, managers, librarians, documenters, and developers from GLAM (and beyond!) institutions worldwide. We welcome discussion and contribution through various mailing lists, channels, interest groups, and calls. The Islandora community operates under the [Islandora Code Of Conduct](https://islandora.ca/codeofconduct). See our [Contributing Guidelines](contributing/CONTRIBUTING.md) for more information, or drop by a meeting of the [Documentation Interest Group](https://github.com/islandora-interest-groups/Islandora-Documentation-Interest-Group) for a helping hand. 7 | 8 | 9 | !!! note "Documentation for previous versions" 10 | Documentation for Islandora 6 and 7 is on the [Lyrasis documentation wiki](https://wiki.lyrasis.org/display/ISLANDORA/Start). 11 | -------------------------------------------------------------------------------- /docs/technical-documentation/adding-format-jsonld.md: -------------------------------------------------------------------------------- 1 | Drupal requires the use of a `_format` query parameter to get alternate representations of a node/media. 2 | 3 | By default, Islandora deploys with the [jsonld](https://github.com/Islandora/jsonld) module and the [Milliner](https://github.com/Islandora/Crayfish/tree/main/Milliner) microservice. These two components are configured to strip this `_format` query parameter off of the end of URIs. 4 | 5 | This means that when your content is indexed in Fedora, the triplestore, etc... it's URI will 6 | be something like `http://localhost:8000/node/1` and not `http://localhost:8000/node/1?_format=jsonld`. 7 | 8 | ## Pre-1.0 installations. 9 | 10 | If you are using a __very__ early version of Islandora "8" (pre-release), then you may have URIs with `_format=jsonld` at the end of them. 11 | 12 | If you update to newer code, you will need to ensure that your site is configured to add `?_format=jsonld` 13 | back to the URLs if you want to maintain consistency. 14 | 15 | If you **don't** do this, you can end up with two copies of your objects in your Fedora repository (one with and one without `?_format=jsonld`). You will also have two sets of triples in your triplestore. 16 | 17 | ## Adding ?_format=jsonld to your URIs 18 | 19 | To turn the `?_format` parameter back on: 20 | 21 | - Go to `admin/config/search/jsonld` and confirm the *"Remove jsonld parameter from @ids"* checkbox is **unchecked**. 22 | - Add `strip_format_jsonld: false` to your Milliner config. If you deployed using the default Islandora-playbook this file would be located at `/var/www/html/Crayfish/Milliner/cfg/config.yaml`. 23 | 24 | If you are using [Islandora-playbook](https://github.com/Islandora-Devops/Islandora-playbook) and are provisioning new environments for your older Islandora, you'll want to lock down the variables in your inventory that control this config. 25 | 26 | - `crayfish_milliner_strip_format_jsonld: true` 27 | - `webserver_app_jsonld_remove_format: 1` 28 | -------------------------------------------------------------------------------- /docs/technical-documentation/checking-coding-standards.md: -------------------------------------------------------------------------------- 1 | # Checking Code Style 2 | 3 | Before opening a pull request, you should check your code style. If you are using the [Vagrant](https://github.com/Islandora-Devops/claw-playbook), you can run `phpcs` within the Drupal installation directory (on the Vagrant, that is `/var/www/html/drupal`) or from within the `web` directory (`/var/www/html/drupal/web`) as follows: 4 | 5 | * from within Drupal's root directory: `./vendor/bin/phpcs --standard=./vendor/drupal/coder/coder_sniffer/Drupal modules/contrib/my_module`, where `modules/contrib/my_module` is the relative or full path to the PHP file you want to check. 6 | * from within Drupal's `web` directory: `../vendor/bin/phpcs --standard=../vendor/drupal/coder/coder_sniffer/Drupal yourfile`, where `yourfile` is the relative or full path to the PHP file you want to check. 7 | 8 | In both cases: 9 | 10 | * the path to the coding standard file can be relative to where you are running it from, e.g. when in `web`: `--standard=../vendor/drupal/coder/coder_sniffer/Drupal` 11 | * you can specify a single file to check, or a directory path; in the latter case, all files in that directory will be checked. 12 | 13 | Islandora runs `phpcs` in its Github continuous integration environment, and there, it specifies which files to ignore and which files to check. It is a good idea for developers to specify the same options when running `phpcs` locally, prior to opening a pull request. For example (running `phpcs` from the within Drupal's `web` directory), you should use the following `--ignore` and `--extensions` options: 14 | 15 | `../vendor/bin/phpcs --standard=../vendor/drupal/coder/coder_sniffer/Drupal --ignore=*.md --extensions=php,module,inc,install,test,profile,theme,css,info modules/contrib/my_module` 16 | -------------------------------------------------------------------------------- /docs/technical-documentation/diagram.md: -------------------------------------------------------------------------------- 1 | # Islandora Architecture Diagram 2 | 3 | ![Detailed diagram of the Islandora platform and its components](../assets/diagram.png) 4 | 5 | Diagram prepared by [Bethany Seeger](https://github.com/bseeger) based on work done by [Gavin Morris](https://github.com/g7morris) 6 | 7 | ## Components 8 | 9 | ### Islandora 10 | 11 | The following components are microservices developed and maintained by the Islandora community. They are bundled under [Islandora Crayfish](https://github.com/Islandora/Crayfish): 12 | 13 | * [FITS](https://github.com/roblib/CrayFits) - A Symfony 4 Microservice to generate FITS data and persist it as a Drupal media node. Works with [Islandora FITS](https://github.com/roblib/islandora_fits) 14 | * [Homarus](https://github.com/Islandora/Crayfish/tree/dev/Homarus) - Provides [FFmpeg](https://www.ffmpeg.org/) as a microservice for generating video and audio derivatives. 15 | * [Houdini](https://github.com/Islandora/Crayfish/tree/dev/Houdini) - [ImageMagick](https://www.imagemagick.org/script/index.php) as a microservice for generating image-based derivatives, including thumbnails. 16 | * [Hypercube](https://github.com/Islandora/Crayfish/tree/dev/Hypercube) - [Tesseract](https://github.com/tesseract-ocr) as a microservice for optical character recognition (OCR). 17 | * [Milliner](https://github.com/Islandora/Crayfish/tree/dev/Milliner) - A microservice that converts Drupal entities into Fedora resources. 18 | * [Recast](https://github.com/Islandora/Crayfish/tree/dev/Recast) - A microservice that remaps Drupal URIs to add Fedora-to-Fedora links based on associated Drupal URIs in RDF. 19 | 20 | 21 | ### Other Open Source 22 | 23 | The following components are deployed with Islandora, but are developed and maintained by other open source projects: 24 | 25 | 26 | * [Apache](https://www.apache.org/) - The Apache HTTP Server, colloquially called Apache, is a free and open-source cross-platform web server software. Provides the environment in which Islandora and its components run. 27 | * [ActiveMQ](https://activemq.apache.org/) - Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service client. 28 | * [Karaf](https://karaf.apache.org/) - A modular open source OSGi runtime environment. 29 | * [Tomcat](http://tomcat.apache.org/) - an open-source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and WebSocket technologies. Tomcat provides a "pure Java" HTTP web server environment in which Java code can run. 30 | * [Solr](https://lucene.apache.org/solr/) - An open-source enterprise-search platform. Solr is the default search and discover layer of Islandora, and a key component in some methods for [migration to Islandora from Islandora Legacy](https://github.com/Islandora-devops/migrate_7x_claw) 31 | * [Blazegraph](https://blazegraph.com/) - Blazegraph is a triplestore and graph database. 32 | * [Cantaloupe](https://cantaloupe-project.github.io/) - an open-source dynamic image server for on-demand generation of derivatives of high-resolution source images. Used in Islandora to support [IIIF](https://iiif.io/) 33 | * [Drupal](https://www.drupal.org/) - Drupal is an open source content management system, and the heart of Islandora. All user and site-building aspects of Islandora are experienced through Drupal as a graphical user interface. 34 | * [Fedora](https://wiki.lyrasis.org/display/FF/Fedora+Repository+Home) - A robust, modular, open source repository system for the management and dissemination of digital content. The default smart storage for Islandora. 35 | * [Matomo](https://matomo.org/) - Matomo, formerly Piwik, is a free and open source web analytics application. It provides usage statistics and a rich dashboard for Islandora. 36 | * [MySQL](https://www.mysql.com/) - MySQL is an open-source relational database management system. Used as a Drupal database in Islandora, it can be easily replaced with other database management systems such as [PostgreSQL](https://www.postgresql.org/) 37 | * Triplestore - See Blazegraph. 38 | -------------------------------------------------------------------------------- /docs/technical-documentation/docs-build.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | This documentation is built using [MkDocs](http://www.mkdocs.org/), a static site generator that is geared towards building project documentation. The documentation is created in the [Markdown](http://en.wikipedia.org/wiki/Markdown) format, and it all resides in the [`docs`](https://github.com/Islandora/documentation/tree/main/docs) directory in the repository. The organization of the documentation is controlled by the [`mkdocs.yml`](https://github.com/Islandora/documentation/blob/main/mkdocs.yml) in the root of the repository. 4 | 5 | !!! Tip "Video version available" 6 | Some of the material in this tutorial is presented in our video, [How to Build Documentation](https://youtu.be/YgSXicNow5w). 7 | 8 | 9 | ## Prerequisites 10 | 11 | You will need to have `mkdocs` software installed locally, as well as a required plugin and the MkDocs _Material_ theme. Below we will show you how to install `mkdocs` using the Python language's `pip` tool. For more details on installing and using MkDocs visit the [MkDocs installation guide](https://www.mkdocs.org/#installation). 12 | 13 | - Open a terminal window. 14 | 15 | - Install `mkdocs`: 16 | 17 | Windows / Linux: 18 | 19 | `sudo -H pip install mkdocs` 20 | 21 | macOS: 22 | 23 | `pip3 install mkdocs` 24 | 25 | 26 | 27 | - Install plugin to enable display of the last revision date: 28 | 29 | Windows / Linux: 30 | 31 | `sudo -H pip install mkdocs-git-revision-date-localized-plugin` 32 | 33 | macOS: 34 | 35 | `pip3 install mkdocs-git-revision-date-localized-plugin` 36 | 37 | 38 | - Install plugin to enable redirects: 39 | 40 | Windows / Linux: 41 | 42 | `sudo -H pip install mkdocs-redirects` 43 | 44 | macOS: 45 | 46 | `pip3 install mkdocs-redirects` 47 | 48 | 49 | - Install Material theme: 50 | 51 | Windows / Linux: 52 | 53 | `sudo -H pip install mkdocs-material` 54 | 55 | macOS: 56 | 57 | `pip3 install mkdocs-material` 58 | 59 | 60 | 61 | ## Build and Deploy documentation 62 | 63 | Make sure you have all the submodules: 64 | 65 | `git submodule update --init --recursive` 66 | 67 | Documentation is build by running to the following command in the root of the repository: 68 | 69 | `mkdocs build --clean` 70 | 71 | This command will create a static `site` folder in the root of the repository. 72 | 73 | You can preview any changes you have made to the documentation by running the following command: 74 | 75 | `mkdocs serve` 76 | 77 | And then visiting http://localhost:8111 in your browser. 78 | 79 | To deploy documentation to GitHub Pages, issue the following command: 80 | 81 | `mkdocs gh-deploy --clean` 82 | 83 | To stop the `mkdocs serve` command just type the key combination "Control-c". 84 | -------------------------------------------------------------------------------- /docs/technical-documentation/install-enable-drupal-modules.md: -------------------------------------------------------------------------------- 1 | ## Downloading and Enabling Drupal Modules and Themes 2 | 3 | Islandora can make use of the majority of Drupal [modules](https://www.drupal.org/project/project_module) and [themes](https://www.drupal.org/project/project_theme). Common use cases have been documented in the [Islandora Cookbook](../user-documentation/extending.md). There are several ways to download and install Drupal modules. Please refer to [this guide](https://www.drupal.org/docs/extending-drupal) on Drupal.org. 4 | 5 | [Composer](https://www.drupal.org/docs/develop/using-composer/using-composer-to-install-drupal-and-manage-dependencies) is the recommended method to install and update drupal modules and themes in Islandora. Drupal modules provided by Islandora can be accessed at the `drupal/` namespace. 6 | ```shell 7 | $ composer require "/:" 8 | 9 | # Example 10 | $ composer require "drupal/jsonld:^2" 11 | ``` 12 | 13 | In the [Islandora playbook](https://github.com/Islandora-Devops/islandora-playbook), you can add a Drupal module's or theme's machine name to the `drupal_composer_dependencies` variable [here](https://github.com/Islandora-Devops/islandora-playbook/blob/dev/inventory/vagrant/group_vars/webserver/drupal.yml). 14 | To enable the Drupal module or theme, add the module machine name to the `drupal_enable_modules` variable as well. 15 | 16 | ![alt text](../assets/install-enable-drupal-modules_drupal_composer_dependencies.png?raw=true "drupal_composer_dependencies Screenshot") 17 | 18 | For modules that require additional steps, additional tasks may need to be added to the Ansible playbook. Re-provisioning your instance via Ansible will install the module. 19 | 20 | ## Video Walkthroughs: Modules & Installing modules with Composer 21 | 22 | Click the image below to open the **introduction to Modules** video tutorial on the Islandora Youtube channel. 23 | 24 | [![Drupal 101: Modules](https://img.youtube.com/vi/mvX3cnNeOns/0.jpg)](https://www.youtube.com/watch?v=mvX3cnNeOns) 25 | 26 | Click the image below to open the **Installing modules with Composer** video tutorial on the Islandora Youtube channel. 27 | 28 | [![Drupal 101: Installing modules with Composer](https://img.youtube.com/vi/otl-pPPGdR8/0.jpg)](https://www.youtube.com/watch?v=otl-pPPGdR8) 29 | 30 | See more videos from the Drupal 101 series [here.](https://www.youtube.com/watch?v=meRNdBxaiTE&list=PL4seFC7ELUtogpsYoN8WZLLOjJVRZFGTZ) 31 | -------------------------------------------------------------------------------- /docs/technical-documentation/migrate-7x.md: -------------------------------------------------------------------------------- 1 | ## Migrating from Islandora Legacy to Islandora (YouTube Video) 2 | 3 | [![Islandora Webinar: Migrating from Islandora 7 to 8](https://img.youtube.com/vi/n0kLOB8ZdbM/0.jpg)](https://www.youtube.com/watch?v=n0kLOB8ZdbM) 4 | Nov 21, 2019 5 | 6 | !! note "Migration from Islandora Legacy" 7 | For tools to migrate into Islandora from an existing Islandora Legacy instance, please see [migrate_7x_claw](https://github.com/Islandora-devops/migrate_7x_claw). 8 | 9 | ## Project Planning for Migration 10 | 11 | [![Islandora May Open Meeting: Project Planning for Migration](https://img.youtube.com/vi/EMH9iz3r02k/0.jpg)](https://www.youtube.com/watch?v=EMH9iz3r02k) 12 | 13 | Presented by Mark Jordan and Janice Banser, this session will outline strategies for understanding your data and planning for a move to Islandora. 14 | -------------------------------------------------------------------------------- /docs/technical-documentation/migration-migrate-api.md: -------------------------------------------------------------------------------- 1 | ## Migrate API 2 | 3 | Uses the Drupal [Migrate API](https://www.drupal.org/docs/drupal-apis/migrate-api/migrate-api-overview), which "provides services for migrating data from a source system" to Drupal 8, 9, or 10. 4 | 5 | The "source system" can be almost anything: 6 | 7 | - an Islandora Legacy system 8 | - a group of scanned images and their metadata inside a CSV file 9 | - a web API 10 | 11 | Why use the Migrate API? 12 | 13 | - You can (potentially) do everything with configs! 14 | - Leverage contrib module plugins. 15 | - Making plugins for more complex sources and processes is (relatively) simple. 16 | - Updating metadata is as simple as: 17 | `drush mim node --update` 18 | 19 | ### A Migration Configuration defines an Extract, Transform, Load (ETL) process 20 | 21 | - Source plugins extract data from a source 22 | - Process plugins transform the data 23 | - Destination plugins load the data (create new entities) 24 | 25 | ### We’ve built two tools for you using the Migrate API 26 | 27 | - **migrate_islandora_csv** 28 | - 29 | - Tutorial with a sample migration using some files and a CSV 30 | - Documentation section on [migrate_islandora_csv](migrate-csv.md) 31 | - **migrate_7x_claw** 32 | - 33 | - A tool to get all your Islandora Legacy content migrated over 34 | - Documentation section on [migrate_7x_claw](migrate-7x.md) 35 | 36 | #### Recap of migrate_islandora_csv 37 | 38 | - CSVs 39 | - Everyone understands and knows how to work with CSVs 40 | - Documented 41 | - It’s a step-by-step walkthrough 42 | - Process Metadata 43 | - Clean up / transform the metadata using processors 44 | - Build Relationships 45 | - Migrations can reference other migrated content or generate new content on the fly 46 | 47 | #### Recap of migrate_7x_claw 48 | 49 | - Designed to migrate Islandora Legacy data to Islandora. 50 | - DATASTREAMS 51 | - All of your datastreams, including the audit trail, are migrated 52 | - METADATA 53 | - Migrate metadata from Solr or any XML datastream 54 | - CUSTOMIZABLE 55 | - Migrate_7x_claw is a starting point, meant to be tailored to your metadata 56 | 57 | ##### To make migrate_7x_claw work you need 58 | 59 | - Access 60 | - You need credentials to both your Islandora Legacy and Islandora installs. 61 | - Migrate API Knowledge 62 | - The tutorial for migrate_islandora_csv 63 | Is still relevant 64 | - Config Sync 65 | - You need to understand Drupal config synchronization. Features knowledge helps too. 66 | - Command Line Skills 67 | - This is best done with shell access and drush 68 | 69 | ### Migrate API demo video 70 | 71 | Check out this video that demonstrates the Drupal Migrate API migration process: [Islandora Webinar: Migrating from Islandora Legacy to Islandora](migrate-7x.md) (Nov 21, 2019) 72 | -------------------------------------------------------------------------------- /docs/technical-documentation/migration-overview.md: -------------------------------------------------------------------------------- 1 | ## Migration and Batch Loading 2 | 3 | This [video](https://www.youtube.com/watch?v=95Bnix-z1zY) (Aug 10, 2020) provides an overview of the various options available to migrate data into an Islandora installation. 4 | 5 | [![Islandora Online: Islandora Migration Tools](https://img.youtube.com/vi/95Bnix-z1zY/0.jpg)](https://www.youtube.com/watch?v=95Bnix-z1zY) 6 | 7 | The three main migration options are: 8 | 9 | - [REST API](migration-rest-api.md) 10 | - [Migrate API](migration-migrate-api.md) 11 | - migrate_islandora_csv 12 | - migrate_7x_claw 13 | - [Islandora Workbench](migration-islandora-workbench.md) 14 | 15 | 16 | ### REST API 17 | 18 | Why use the rest API? 19 | 20 | - **Works anywhere**: You don’t have to work on the Drupal server. Migrate from your laptop! 21 | - **No PHP required**: Use any language that can make an http request. Even cURL will do just fine. 22 | - **JSON**: Why use XML if you don’t have to? 23 | - Relies on Drupal’s own REST API 24 | 25 | Visit the [REST API](migration-rest-api.md) migration documentation section for more details. 26 | 27 | 28 | ### Migrate API 29 | 30 | Why use the Migrate API? 31 | 32 | - You can (potentially) do everything with configs! 33 | - Leverage contrib module plugins. 34 | - Making plugins for more complex sources and processes is (relatively) simple. 35 | - Updating metadata is as simple as: 36 | `drush mim node --update` 37 | 38 | Two tools that use the Migrate API are [migrate_islandora_csv](migrate-csv.md) and [migrate_7x_claw](migrate-7x.md). 39 | 40 | Visit the [Migrate API](migration-migrate-api.md) migration documentation section for more details. 41 | 42 | 43 | ### Islandora Workbench 44 | 45 | Why use the Migrate API? 46 | 47 | - More tailored for end users with less technical knowledge or limited server access. 48 | - Uses Islandora’s REST API 49 | - Runs on your computer 50 | - “CSVs and a pile of scans” 51 | - Cross Platform - Python 52 | 53 | Visit the [Islandora Workbench](migration-islandora-workbench.md) migration documentation section for more details. 54 | -------------------------------------------------------------------------------- /docs/technical-documentation/migration-rest-api.md: -------------------------------------------------------------------------------- 1 | ## REST API 2 | 3 | Why use the REST API? 4 | 5 | - **Works anywhere**: You don’t have to work on the Drupal server. Migrate from your laptop! 6 | - **No PHP required**: Use any language that can make an HTTP request. Even cURL will do just fine. 7 | - **JSON**: Why use XML if you don’t have to? 8 | 9 | BONUS: It’s just Drupal’s REST API 10 | 11 | ### Islandora only provides two additional API endpoints 12 | 13 | - /media/{mid}/source 14 | - PUT a file to this endpoint to create/update a Media’s file 15 | - /node/{nid}/media/{media_type}/{taxonomy_term} 16 | - PUT a file to this endpoint to create/update a Media for a Node 17 | 18 | Just be aware, you are writing everything yourself! (In other words you are making all of the migration decisions yourself.) 19 | 20 | ### Videos 21 | 22 | This [video](https://www.youtube.com/watch?v=95Bnix-z1zY) (Aug 10, 2020) provides an overview of the **REST API** and the two other options available to migrate data into an Islandora installation. 23 | 24 | [![Islandora Online: Islandora Migration Tools](https://img.youtube.com/vi/95Bnix-z1zY/0.jpg)](https://www.youtube.com/watch?v=95Bnix-z1zY) 25 | -------------------------------------------------------------------------------- /docs/technical-documentation/resizing-vm.md: -------------------------------------------------------------------------------- 1 | ## Resize vagrant machine 2 | To expand virtual machine's hard drive for testing of larger files. Once the VM has started, you'll need to `halt` the VM, download and run the script, tell it what size (in MB) and then start the VM. 3 | The last step `vagrant ssh --command "sudo resize2fs /dev/sda1"` is a check. It should return there was nothing to do. If you already provisioned you VM you can skip the 2 steps with provisioning in them. 4 | 5 | ```shell 6 | # Skip this if you VM is already provisioned. 7 | $ vagrant up --no-provision <-- Exclude if already running and provisioned. 8 | 9 | $ vagrant halt 10 | 11 | # Download and run. This will default to the correct name (just press enter) then give the size. 12 | # Example: `350000` is equal to 350GB 13 | 14 | $ wget https://gist.githubusercontent.com/DonRichards/6dc6c81ae9fc22cba8d7a57b90ab1509/raw/45017e07a3b93657f8822dfbbe4fc690169cdabc/expand_disk.py 15 | $ chmod +x expand_disk.py 16 | $ python expand_disk.py 17 | $ vagrant up --no-provision 18 | 19 | # This step isn't needed but acts as a check to verify it worked. 20 | $ vagrant ssh --command "sudo resize2fs /dev/sda1" 21 | 22 | # Skip this if you VM is already provisioned. 23 | $ vagrant provision <-- Exclude if already provisioned. 24 | ``` 25 | 26 | ### Troubleshooting expand_disk.py 27 | You may need to remove the "resized" version. Assuming your VM location is `~/VirtualBox\ VMs` 28 | ```shell 29 | $ rm -rf ~/VirtualBox\ VMs/Islandora\ CLAW\ Ansible_resized 30 | ``` 31 | -------------------------------------------------------------------------------- /docs/technical-documentation/running-automated-tests.md: -------------------------------------------------------------------------------- 1 | # Running Automated Tests 2 | 3 | See the [Drupal Documentation on PHPUnit in Drupal](https://www.drupal.org/docs/automated-testing/phpunit-in-drupal). 4 | 5 | ## Setting up PhpUnit 6 | 7 | Before you can use phpunit, you must first install the following: 8 | 9 | `composer require --dev -W phpspec/prophecy-phpunit drupal/core-dev` 10 | 11 | In ISLE, you need to make the database port available to PHPUnit. To do that, edit `docker-compose.yml` and find the section including `image: islandora/mariadb[version number]`. Shortly below is a `labels:` heading; set the value of the `traefik.enable: ` to `"true"`. Apply the changes made to the `docker_compose.yml` using `docker compose up -d`. 12 | 13 | Follow the `Configure PHPUnit` and `Create a directory for HTML output` sections in [Drupal Documentation on running phpunit tests](https://www.drupal.org/docs/automated-testing/phpunit-in-drupal/running-phpunit-tests) to make a `phpunit.xml` file. Note that: 14 | 15 | * If you place the `phpunit.xml` file in any directory other than `[drupal root]/web/core`, you need to change the 'bootstrap' in the `` tag near the top of the file to point to the relative or absolute location of the `[drupal root]/web/core` folder. 16 | 17 | * When setting the `SIMPLETEST_DB` database credentials in ISLE, 18 | * the default username and db_name are `drupal_default` 19 | * your db_password can be found in `codebase/web/sites/default/settings.php` 20 | 21 | * Unless you changed the default values, just swap out [password] for your actual db password in the following: 22 | 23 | ``` 24 | mysql://drupal_default:[password]@islandora.traefik.me:3306/drupal_default`. 25 | 26 | ``` 27 | 28 | ## Running PHPUnit 29 | 30 | If you are in the Drupal root directory (`codebase` on ISLE; the one containing `web`) and your `phpunit.xml` file is also in the Drupal root directory, use the following command to run phpunit for a single test file (here, Islandora's DeleteNodeWithMediaAndFile.php): 31 | 32 | `vendor/bin/phpunit web/modules/contrib/islandora/tests/src/Functional/DeleteNodeWithMediaAndFile.php` 33 | 34 | If your phpunit.xml is in a different directory, such as web/core, then use the -c flag to specify the path to the directory containing phpunit.xml: 35 | 36 | `vendor/bin/phpunit -c web/core web/modules/contrib/islandora/tests/src/Functional/DeleteNodeWithMediaAndFile.php` 37 | 38 | ## Setting up PHPUnit in PHPStorm 39 | 40 | * [Drupal Documentation on running phpunit tests](https://www.drupal.org/docs/automated-testing/phpunit-in-drupal/running-phpunit-tests-within-phpstorm) 41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/technical-documentation/testing-notes.md: -------------------------------------------------------------------------------- 1 | ## How to find things in Fedora? 2 | 3 | For any Drupal URI, the corresponding Fedora URIs is computed by the [Crayfish Commons](https://github.com/Islandora/Crayfish-Commons/blob/2.x/src/EntityMapper/EntityMapper.php) library using the Drupal-assigned UUID. In Drupal, a "pseudo-field" is available that will display the corresponding Fedora URI on the page of a node, taxonomy term, or media object. The presence of this URI does NOT guarantee the existence of the corresponding entity in Fedora. 4 | 5 | ### Enabling the Fedora URI Pseudo-field 6 | 7 | To display the Fedora URI pseudo-field on a Drupal node, media, or taxonomy term, go to Manage > Configuration > Islandora and select all the bundles for which you would like the Fedora URI displayed. Once you have selected the bundles, and cleared the cache, the new pseudo-field will appear at the bottom of _all display modes_. You can alter where in the display the Fedora URI field appears, by going to the "Manage Display" page for the bundle. For example, for a Repository Item, you'd go to Manage > Structure > Content Types, and under the dropdown for "Repository Item, select "Manage Display". In that list you should see `Fedora URI` which you can move around (or hide) as desired. This will need to be repeated in each Display mode (tab). Clearing cache may be necessary to refresh the node display. 8 | 9 | Note: This information used to be stored in a service called Gemini, which kept track of corresponding minted Fedora URIs and their minted equivalents. Gemini was removed for Islandora 2.0.0. 10 | 11 | 12 | ## How do I search for a object in the Solr? 13 | * Go to `http://localhost:8983/solr/#/islandora/query` 14 | * Issue a Solr query. 15 | 16 | Example 17 | ``` 18 | ss_search_api_id:"entity:node/4:en" 19 | ``` 20 | 21 | ## Sample Triplestore queries 22 | * Go to `http://localhost:8080/bigdata/#query` 23 | * Under namespaces (`http://localhost:8080/bigdata/#namespaces`), make sure `islandora` is selected. 24 | 25 | ### Find all triples with given object as the subject 26 | ``` 27 | select ?p ?o where { ?p ?o } 28 | ``` 29 | 30 | Example: 31 | 32 | ``` 33 | select ?p ?o where { ?p ?o } 34 | ``` 35 | 36 | ### Getting objects in a collection 37 | ``` 38 | select ?s where { ?s } 39 | ``` 40 | 41 | Example: 42 | 43 | ``` 44 | select ?s where { ?s } 45 | ``` 46 | 47 | ### Find all media/files belonging to a node 48 | 49 | ``` 50 | select ?s where { ?s } 51 | ``` 52 | 53 | Example: 54 | 55 | ``` 56 | select ?s where { ?s } 57 | ``` 58 | -------------------------------------------------------------------------------- /docs/technical-documentation/using-rest-endpoints.md: -------------------------------------------------------------------------------- 1 | # Islandora via REST 2 | 3 | Each node, media and file in Drupal has its own URI and we can GET the resources, some in a variety of formats. 4 | 5 | We can also create nodes, media and files in Drupal by using PUT and/or POST requests. 6 | 7 | We can update the field content by using a PATCH request and lastly we can DELETE a node, media or file resource. 8 | 9 | To perform these actions, you will need the `RESTful Web Services` module enabled. 10 | 11 | To configure your setup via the UI, you also need the `RESTful UI` module enabled. 12 | 13 | Then you can configure your REST services at `https:///admin/config/services/rest` 14 | 15 | This screenshot shows the setup for resources, you can see the various HTTP methods and what formats they will respond in and what authentication methods they support. 16 | 17 | ![REST configuration](../assets/rest-node-configuration.png) 18 | 19 | 1. [Authorization](rest-authorization.md) 20 | 1. [Getting resources - GET](rest-get.md) 21 | 1. [Creating resources - POST/PUT](rest-create.md) 22 | 1. [Updating resources - PATCH](rest-patch.md) 23 | 1. [Deleting resources - DELETE](rest-delete.md) 24 | 25 | ## Further Reading 26 | 27 | - [RESTful Web Services API overview](https://www.drupal.org/docs/drupal-apis/restful-web-services-api/restful-web-services-api-overview) 28 | -------------------------------------------------------------------------------- /docs/technical-documentation/versioning.md: -------------------------------------------------------------------------------- 1 | # Versioning Policy 2 | 3 | Islandora uses semantic versioning for all non-Legacy code in the [github.com/Islandora](https://github.com/Islandora) organization. This allows us to be compatible with Composer and with Drupal's [release naming conventions](https://www.drupal.org/node/1015226) for contributed modules. 4 | 5 | ## Semantic Versioning 6 | 7 | [Semantic Versioning](https://semver.org/) is a common versioning standard. Versions have the form: **Major version**, **Minor version**, or **Patch**. 8 | 9 | - **Major version**: Major changes, and breaks the API. 10 | - **Minor version**: New features, and does not break the API. 11 | - **Patch**: Bug fixes, and never breaks backward compatibility. 12 | 13 | ### Examples 14 | 15 | * `1.2.3 => 1.2.4` - Just a bug fix, should be a drop-in replacement. 16 | * `1.2.3 => 1.3.0` - Adds in new features, should be a drop-in replacement to get new functionality. 17 | * `1.2.3 => 2.0.0` - Major changes, may require a migration or changes to your set-up. 18 | 19 | ### Repositories under semantic versioning 20 | 21 | The following Islandora components use semantic versioning: 22 | 23 | * [Alpaca](https://github.com/Islandora/Alpaca) 24 | * [Chullo](https://github.com/Islandora/Chullo) 25 | * [Crayfish](https://github.com/Islandora/Crayfish) 26 | * [Crayfish Commons](https://github.com/Islandora/Crayfish-Commons) 27 | * [Syn](https://github.com/Islandora/Syn) 28 | * [controlled\_access\_terms](https://github.com/Islandora/controlled_access_terms) (Drupal module) 29 | * [islandora](https://github.com/Islandora/islandora) (Drupal module) 30 | * [jsonld](https://github.com/Islandora/jsonld) (Drupal module) 31 | * [openseadragon](https://github.com/Islandora/openseadragon) (Drupal module) 32 | * [islandora\_mirador](https://github.com/Islandora/islandora_mirador) (Drupal module) 33 | 34 | Drupal submodules, which are included in several of the above modules, share versions with their parents. 35 | 36 | !!! note "Drupal module versions switched from 8.x-1.x to 2.x" 37 | In October 2021, Islandora switched from the "[core compatibility](https://www.drupal.org/docs/8/understanding-drupal-version-numbers/what-do-version-numbers-mean-on-contributed-modules-and)" based numbering scheme (8.x-1.x) to a pure semantic versioning scheme for its Drupal modules. In accordance with [Drupal's requirements](https://www.drupal.org/node/1015226#semver-transition), this transition required us to bump the major version, from 1.x to 2.x, despite there not being any major API-breaking changes to the code itself. 38 | 39 | ## Implications for Release Process 40 | 41 | Committers should now create (i.e. "tag") new versions of components when new bug fixes, features, or API changes are successfully added. This means that "releases" (new versions) will be happening individually, continually, and far more frequently than before. See [Releasing Islandora](../contributing/releasing-islandora.md). 42 | 43 | ## Module Interdependencies 44 | 45 | When Islandora components require other Islandora components in their `composer.json` files, we prefer the version specification syntax `^2` to point to the latest-released compatible version within the specified major version. 46 | -------------------------------------------------------------------------------- /docs/tutorials/how-to-create-collection.md: -------------------------------------------------------------------------------- 1 | # How to create and add to a Collection 2 | 3 | This how-to demonstrates creating a collection and adding items to it in the Islandora Starter Site. For more about collections, see [Concept: Collection](../concepts/collection.md). 4 | 5 | ## Introduction 6 | 7 | In the Islandora Starter Site, nodes that have "Collection" in their Model field will show a view of their member ("child") objects. A member is any object that is "Member of" that object, and can be added via the "Children" tab. This is the mechanism in the Islandora Starter Site, and your individual instances may vary. 8 | 9 | !!! Warning "Collections and Deleting" 10 | Collections and their members are independent of each other, 11 | and removing something from a collection does not delete it. 12 | **Similarly, deleting a collection does not delete its members.** 13 | 14 | ## Creating a Collection 15 | 16 | When logged in, click _Manage_ > _Content_ on the admin toolbar. Then, click on _Add content_. 17 | 18 | ![Click on + add content](../assets/collections_add_content.png) 19 | 20 | Then click on 'Repository Item' to give your collection the default metadata profile for Islandora. 21 | 22 | ![Click on Repository Item](../assets/collections_repository_item.png) 23 | 24 | Fill out the form. 25 | 26 | At the top of the form, select "Collection" from the _Model_ dropdown list. 27 | 28 | ![Near end of form, under System, select collection](../assets/collections_select_model.png) 29 | 30 | When done filling out the form, click _Save_. 31 | 32 | ![The collection page confirming creation.](../assets/collections_parent_node.png) 33 | 34 | The collection has been created. Now let's add some members to this collection. 35 | 36 | ## Add Existing Items to a Collection 37 | 38 | To populate a collection with existing items, return to any existing content and click on its Edit tab. This brings up the form for this item. 39 | 40 | ![An existing item with its Edit tab highlighted.](../assets/collections_edit_photo_collection.png) 41 | 42 | Scroll down to the bottom of the form to find the System section. In the _Member of_ field, start typing in the name of the collection this item should belong to. Select the name of the collection you want from the autocomplete. It is important that you select it from the dropdown, not just type in the correct title, because selecting it causes the node id to appear beside the title and allows Drupal to create a relationship. 43 | 44 | ![Selecting a collection from the Member Of autocomplete.](../assets/collections_member_of.png) 45 | 46 | The correct collection is now selected. Click _Save_ when ready. 47 | 48 | ![Snowfall (6) shows in field Member of.](../assets/collections_member_of_selected.png) 49 | 50 | To confirm, return to the collection and verify the new item appears in the collection's list of members. 51 | 52 | ![The collection page showing a view of members, including the one we added.](../assets/collections_snowfall.png) 53 | 54 | ## Add a New Item as a Member of a Collection 55 | 56 | To create an item and add it as a member to a collection in one step, visit a collection and click on its _Children_ tab. From the 57 | _Children_ tab, you can manage the members of a collection and perform actions on them. 58 | 59 | ![The "Children" tab in our Snowfall collection](../assets/collections_children_tab.png) 60 | 61 | Click on the _+Add Child_ button, and then select _Repository Item_ as your new item's Content Type. Only content types that 62 | have the `field_member_of` field will be available from this list. 63 | 64 | ![Selecting "Repository Item" after clicking "Add Child".](../assets/collections_select_content_type.png) 65 | 66 | You are taken to the creation form for a Repository Item, but if you scroll down to the "System" section, you should see the widget 67 | for "Member Of" is already filled out for you with the appropriate collection. 68 | 69 | ![You should see the widget for 'Member Of' is already filled out for you with the appropriate collection.](../assets/collections_member_of_selected.png) 70 | 71 | Click 'Save' at the end of the form to create the new item and add it as a member of the collection. 72 | 73 | !!! Tip "Islandora Quick Lessons" 74 | Learn more with this video on [Making a Collection](https://youtu.be/9jFVAE6l4so). 75 | -------------------------------------------------------------------------------- /docs/tutorials/switch-homepage-to-twig.md: -------------------------------------------------------------------------------- 1 | # Format Homepage with TWIG 2 | 3 | ## TWIG Debugging 4 | It's helpful to identify which TWIGs are available to use and where they're stored but not required use TWIGs to format the homepage. 5 | 6 | ![Screenshot from 2021-12-10 11-22-31](https://user-images.githubusercontent.com/2738244/145607034-967cc164-9d24-4f6d-aac7-9b3b93c87c4e.png) 7 | 8 | ```shell 9 | # Copy the default service. 10 | $ cp web/sites/default/default.services.yml web/sites/default/services.yml 11 | 12 | # fix permissions (just in case) 13 | $ chown nginx:nginx web/sites/default/services.yml 14 | 15 | # I use nano to edit but you can pick whichever editor you want. 16 | # For this example we'll install the editor 17 | $ apk add nano 18 | 19 | # Now open the newly created service file and set these 3 values under the TWIG config section. 20 | $ nano web/sites/default/services.yml 21 | 22 | ...yml 23 | twig.config: 24 | debug: true 25 | auto_reload: true 26 | cache: true 27 | 28 | # Now save and exit (in NANO it's CTRL + x) 29 | 30 | ``` 31 | For a video tutorial on this, see [Enabling Twig Debugging in Drupal 8/9](https://youtu.be/6WMr5V_LQ1w) 32 | 33 | ## Copying Templates 34 | Copy the default TWIG into your theme's template directory. 35 | 36 | ```shell 37 | $ cp web/themes/contrib/bootstrap/templates/node/node.html.twig web/themes/contrib/solid/templates/node--6--full.html.twig 38 | 39 | # Clear cache 40 | $ drush cr 41 | ``` 42 | And now if you view the home page's source code you should now see the `X` next to the loaded TWIG file. Please note that the file name corresponds to the node number. To use the URL alias instead of the node ID requires additional work. [Here](https://www.lehelmatyus.com/1064/drupal-8-page-template-suggestion-by-path-alias)'s a tutorial on this topic. 43 | ```html 44 | 52 | ``` 53 | 54 | Now edit the TWIG file (web/themes/contrib/solid/templates/node--6--full.html.twig) to say whatever you want, and it should show up immediately without needing to clear cache. 55 | 56 | ## Clean up 57 | Don't forget to turn off TWIG debugging in config file (web/sites/default/services.yml). This will likely have unexpected consequences on production system performance. 58 | 59 | ```yml 60 | twig.config: 61 | debug: false 62 | auto_reload: false 63 | ``` -------------------------------------------------------------------------------- /docs/user-documentation/accessibility.md: -------------------------------------------------------------------------------- 1 | # Accessibility 2 | 3 | Accessibility is the ability of a site to be used fully by all users, including those using screen reader technologies or keyboard navigation. 4 | 5 | ## Drupal documentation 6 | 7 | Islandora's accessibility features are currently provided by Drupal and contributed Drupal modules. These pages within the Accessibility section of the Drupal documentation can provide guidance: 8 | 9 | - [Drupal Accessibility Features](https://www.drupal.org/docs/accessibility/drupal-accessibility-features) (included in core Drupal) 10 | - [Contributed Modules for Extending Accessibility in Drupal](https://www.drupal.org/docs/accessibility/contributed-modules-for-extending-accessibility-in-drupal) 11 | - [Hiding Content Properly (for all users including users with screen readers)](https://www.drupal.org/docs/accessibility/hide-content-properly) 12 | - [How to do an accessibility review?](https://www.drupal.org/docs/accessibility/how-to-do-an-accessibility-review) 13 | - List of [External Accessibility Resources](https://www.drupal.org/docs/accessibility/external-accessibility-resources) 14 | 15 | ## Accessible themes 16 | 17 | Much of the accessibility of a website is dependent on how specific HTML tags and 18 | attributes are used, thus falls largely into the realm of Drupal Themes. The 19 | [Olivero](https://www.drupal.org/docs/core-modules-and-themes/core-themes/olivero) theme 20 | and the [Claro](https://www.drupal.org/docs/core-modules-and-themes/core-themes/claro-theme) 21 | admin theme were designed by the Drupal community with accessibility 22 | as a guiding principle. 23 | 24 | ## Automatic alt-text 25 | 26 | When creating image media, alt-text is a required attribute. An Islandora function 27 | currently automatically populates the alt-text, if that media is the "media of" a node, 28 | with the respective node's title. 29 | 30 | This is not considered good accessibility as the node's title will likely be already 31 | on the page, and it doesn't add anything to describing the image itself. Please fill 32 | out the alt text with something meaningful when adding image content to Islandora. -------------------------------------------------------------------------------- /docs/user-documentation/breadcrumbs.md: -------------------------------------------------------------------------------- 1 | # Breadcrumbs 2 | 3 | Breadcrumbs are a Drupal concept. They provide a hierarchical path 4 | of links to "ancestors" of the current content item. 5 | 6 | ![example of breadcrumbs](../assets/breadcrumbs-example.png) 7 | 8 | ## Islandora Breadcrumbs 9 | 10 | Islandora provides a module, "Islandora Breadcrumbs" (a submodule 11 | of the Islandora module) that creates breadcrumbs based on the value 12 | of configured reference fields (by default, `field_member_of`). 13 | To use Islandora Breadcrumbs, simply enable 14 | the module. Islandora breadcrumbs will apply to nodes that have 15 | the configured Entity Reference fields. 16 | 17 | There are a few configuration options for this module, accessible at 18 | **Manage** > **Configuration** > **Islandora** > **Breadcrumbs 19 | Settings** (`/admin/config/islandora/breadcrumbs`). These include: 20 | 21 | * Maximum number of ancestor breadcrumbs - an optional feature to 22 | stop adding "ancestor" links after a certain number 23 | * Include the current node in the breadcrumbs? 24 | * Entity Reference fields to follow - if you're using other fields 25 | to refer to parents, you can add them here. 26 | 27 | ![configuration screen](../assets/breadcrumbs-config-screen.png) 28 | 29 | ## Troubleshooting Breadcrumbs 30 | 31 | Breadcrumbs are cached, so if you aren't seeing the results that 32 | you expect, try clearing the Drupal cache. 33 | -------------------------------------------------------------------------------- /docs/user-documentation/faceting.md: -------------------------------------------------------------------------------- 1 | # Faceting in Islandora 2 | 3 | ## Overview 4 | This tutorial contains are step-by-step instructions for adding a facet on a vocabulary reference field. After a search, a block containing the configured facets appears letting the user filter their search. 5 | 6 | This is a walk-through. For a more in-depth discussion of creating facets, see [Configure Advanced Search](advanced-search.md) 7 | 8 | This tutorial currently works best with the "standard" install of the Islandora and Islandora Default modules which can be obtained from the playbook (as opposed to the install profile, which handles facet blocks differently). 9 | 10 | ## Step 1: Add vocabulary bundles 11 | 12 | Steps 1 and 2 add the field to the Solr index. 13 | 14 | 1. Go to **Admin** >> **Configuration** >> **Search and Metadata** >> **Search API** (or, /admin/config/search/search-api) 15 | 1. Edit the *Default Solr content index* 16 | 1. Open the *Configure the Taxonomy term datasource* field-set, choose the vocabulary bundles you want to add to be indexed 17 | 1. Click **Save** 18 | 19 | ![Screenshot of the Search API page with pointer to the Edit button](../assets/facet_on_vocabulary_reference_fields_EDIT_Click.png) 20 | 21 | ## Step 2: Add fields 22 | 23 | 1. Back at the edit *Default Solr content index*, choose **Fields** from the tabs across the top 24 | 1. Click on the **Add fields** button 25 | 1. Scroll down to *Content* 26 | 1. Click on the **+** next to the field you want to add. 27 | 1. Click on the **+** next to "Taxonomy term". A bunch of subfields will appear. 28 | 1. Look for the field that contains "YOUR_FIELD:entity:name" and click on the "Add" button at the end of the bulleted point. 29 | 1. Click “Done.” 30 | 1. **IMPORTANT: Find your newly added fields In the list, and ensure the "Type" of the new field is "string" so it can be compatible with Facets.** 31 | 1. If the "Machine name" of the new field is generic, like "name_1", change it to be the same as the part of the "Property path" up to the first : (this will be the same as the field's machine name). 32 | 1. Click on the **Save changes** button. 33 | 34 | ![Screenshot of the Add fields menu with terms expanded](../assets/facet_on_vocabulary_reference_fields_add_fields.png) 35 | 36 | ## Step 3: Rebuild Solr index 37 | 38 | Now that you've added the field, you need to rebuild your Solr index. 39 | 40 | 1. Go back to *Default Solr content index* (admin/config/search/search-api/index/default_solr_index) 41 | 1. Click on the **Index now** button. 42 | 43 | ## Step 4: Add and configure facet 44 | Step 4 adds and configures the facet itself. 45 | 46 | 1. Go to **Admin** >> **Configuration >> *Search and Metadata* >> **Facets** (admin/config/search/facets) 47 | 1. Click on the **Add facet** button 48 | 1. Select the *View Solr search content* source 49 | 1. In the Field list, select the field you added above 50 | 1. You can adjust the admin Name of the facet 51 | 1. Click **Save". 52 | 1. Choose your configuration options (for example, "List item label") 53 | 1. Click **Save**. 54 | 55 | ## Step 5: Add facet as a block 56 | This step adds the facets in a single block. 57 | 58 | 1. To place a Facets block for the facets you have created, go to **Admin** >> **Structure** >> **Blocks layout** (admin/structure/block). 59 | 1. Click **Place block** in the desired block region, for example, *Sidebar second*. 60 | 1. Start typing the facets block in the Filter and click **Place block** 61 | 1. Choose the facets to include 62 | 1. Choose other configuration options for the block, for example change the title that displays and restrict by content type, etc. 63 | 1. Click **Save**. 64 | 65 | At this point, searching for content that has facet values should cause the block to appear. For more in-depth overview of search, see [Configure Advanced Search](advanced-search.md) 66 | 67 | !!! note "Facets aren't necessarily searchable" 68 | While this will create facets, the values that appear won't work (won't necessarily bring back any content) if you type them in the search box. This is because the fulltext search box uses only fulltext fields, and facets, as mentioned above, requires string fields. 69 | 70 | If you want to be able to search for taxonomy term values and bring up the related nodes, you could either include the full rendered item for your content type, or you may wish to repeat step 2 for each entity reference field, and set the new fields to fulltext so that searching for term values brings back node results. 71 | -------------------------------------------------------------------------------- /docs/user-documentation/jwt-authentication.md: -------------------------------------------------------------------------------- 1 | # JWT authentication 2 | Islandora uses [JWT tokens](https://en.wikipedia.org/wiki/JSON_Web_Token) to authenticate communication between its components. RSA private public key pair is used to sign and verify JWT tokens. The process of issuing JWT tokens using RSA private key is handled by the Drupal [jwt](https://www.drupal.org/project/jwt) module. 3 | 4 | The private public RSA pair needed by JWT authentication mechanism is generated in the web server. By default, claw playbook places 5 | the keys in `/opt/islandora/auth`. Crayfish and Tomcat/Karaf need the public key to verify the JWT token. By default, they are put in the following locations: `/var/www/html/Crayfish/public.key`, `/etc/tomcat8/public.key`. If you are deploying Crayfish and Karaf/Tomcat components to different servers, ensure that web server public.key files are in the expected locations. 6 | 7 | Note that the connection need to be over SSL or an encrypted channel for this communication to be secure. Otherwise, a third party can capture your token and get access to your servers. 8 | 9 | The JWT tokens expiration time is configurable via Islandora core settings: `http://localhost:8000/admin/config/islandora/core`. Currently, it is recommended to set the `JWT Expiry` to the maximum expected time for a job, including batch jobs. -------------------------------------------------------------------------------- /docs/user-documentation/recipes/alexa-search.md: -------------------------------------------------------------------------------- 1 | # Accessing Islandora with Amazon Alexa 2 | 3 | The following recipe details how to connect Islandora with Alexa, using custom Alexa skills and the Drupal Alexa module. The potential applications are broad: 4 | 5 | - Send Citations, metadata, whatever we want to the user if they have set up their email 6 | - Creating a collaborative exhibit 7 | - Play audio and video objects and read transcripts 8 | - Respond to user search queries (like how many objects match the subject in the repositories) 9 | - Answer specific questions about the object (“_Invocation Name_, when was this recorded?”) 10 | - Interact with other applications or modules (got a print ordering system? Want to add event calendar items to your exhibit?) 11 | - Be accessed via web page, Alexa device, or phone app 12 | 13 | !!! note "Note" 14 | This recipe has not been extensively tested. 15 | 16 | ## Ingredients 17 | 18 | - Drupal 8 19 | - Islandora 20 | - Drupal Alexa Module 21 | - Islandora Oral Histories Module 22 | - Custom Alexa Skill 23 | - Custom Search 24 | 25 | ## Instructions 26 | 27 | 1. Create an Amazon Skill 28 | 1. Log in https://developer.amazon.com go to Alexa > Skills Kit > add new skill 29 | 1. Pick an _Invocation Name_ 30 | 1. Configure SSL etc (Tutorial: https://www.drupal.org/docs/8/modules/alexa/tutorial) 31 | 1. Save config, write down the Application ID on the Skill Information Tab! 32 | 1. Integrate with Drupal 33 | 1. Install the Alexa module using Composer: `composer require "drupal/alexa"` 34 | 1. Enable modules (Alexa, Alexa_Demo) 35 | 1. Go to Config > Alexa Configuration and put in the Application ID. 36 | 1. Test with one question and answer (“Clawbster, say Hello world?” “Hello World!”) Now you can add as many questions and answers as you can configure: 37 | ![Screenshot of google form with questions and answers for chatbot](../../assets/recipe_alexa.png) 38 | -------------------------------------------------------------------------------- /docs/user-documentation/transcripts.md: -------------------------------------------------------------------------------- 1 | # Transcripts 2 | 3 | WEBVTT transcripts, captions, or subtitles may be displayed along with audio and video media. 4 | Transcripts must be added to the media entity that will be playing, using a 5 | special field type ("Media track"). When the media is configured to use the 6 | "Audio with Captions" and "Video with Captions" field formatters, tracks in 7 | "Media track" fields will be available. 8 | 9 | ## Media track field type 10 | 11 | The Islandora module provides a field type, Media Track, that accepts .vtt files. 12 | Once a file has been uploaded, additional options relevant to media tracks become 13 | available to configure. 14 | 15 | ![Screenshot of the Track field with a file uploaded and configured](../assets/transcripts-media-track-field.png) 16 | 17 | 18 | ## Using Transcripts with the Islandora Starter Site 19 | 20 | In the Islandora Starter Site, Audio and Video media are pre-configured to work with tracks. 21 | 22 | !!! note "Sandbox" 23 | On the public sandbox, or other sites using the Islandora Install Profile Demo, 24 | you will first need to make the "Track" field visible in the media form, at 25 | Structure > Media > Audio|Video > Manage Display. 26 | 27 | ### Video 28 | 29 | - Navigate to the Service File media (or whichever media is configured to play) 30 | for a Video item. 31 | - Click "Edit" to get to the Media's edit form. 32 | - In the "Track" field, add one or more WebVTT files. 33 | - Enter the details about each audio track. 34 | - Under "Kind", select "Captions" or "Subtitles". (Per the HTML standard, the others are valid track types but won't be played in the viewer) 35 | - The "Label" will be visible by the user when they select a track to play. 36 | - Save the media and refresh it. 37 | 38 | ![Screenshot of captions on a video, with the menu open showing available caption tracks](../assets/transcripts-video.png) 39 | 40 | 41 | ### Audio 42 | 43 | - Follow the same instructions as for Video. 44 | - For audio, only upload one Track file (others will not be displayed). 45 | - For audio, ensure that the Track file is marked "Default track" (otherwise it will not be displayed). 46 | - For audio, the selected "Kind" of media track does not have any effect. 47 | 48 | ![Screenshot of captions on an audio showing a single line of text above the player](../assets/transcripts-audio.png) 49 | 50 | ## Caveats 51 | 52 | !!! info "Selecting the correct media" 53 | Note that if you add the transcript file to the Original File, but you have configured 54 | the site to play the Service File, then you will not see the transcript. 55 | 56 | !!! info "Languages" 57 | While you can add subtitles in different languages, you may only choose from 58 | the site's installed languages. 59 | 60 | !!! tip "Types" 61 | The five options: **captions**; **subtitles**; **descriptions**; **chapters**; and **metadata** come from 62 | the [HTML standard's `` element](https://html.spec.whatwg.org/multipage/media.html#the-track-element). 63 | As per their definitions, captions and subtitles will be displayed as optional text over the video, 64 | available through the usual [cc] icon in the viewer controls. Descriptions, chapters, and metadata 65 | will not be displayed as they are intended for programmatic use. 66 | 67 | ## Tracing the components of this feature 68 | 69 | | Feature Component | Source | 70 | |---|---| 71 | | Define Field type "Media track" | Islandora module | 72 | | Add "Media track" fields to audio and video media types | Islandora Starter Site | 73 | | Define IslandoraFileMediaFormatterBase, which finds Media Track fields on media, and adds them as playable tracks | Islandora module | 74 | | Define "Audio with Captions" field formatter, extending IslandoraFileMediaFormatterBase | Islandora Audio | 75 | | Define "Video with Captions" field formatter, extending IslandoraFileMediaFormatterBase | Islandora Video | 76 | | Select these field formatters for the Default and Source display modes for audio and video media | Islandora Starter Site | 77 | 78 | -------------------------------------------------------------------------------- /docs/user-documentation/uploading-large-files.md: -------------------------------------------------------------------------------- 1 | # Large Files 2 | 3 | ## Large Files and Drupal 4 | 5 | If you want to upload large (> 1GB) files, you'll need to tune the following settings in your 6 | PHP config (the following assumes Apache and a config file `php.ini`): 7 | 8 | - `upload_max_filesize` – The maximum allowed upload file size. 9 | - `post_max_size` – The maximum allowed POST data size. 10 | - `max_input_time` – Maximum allowed input time. 11 | - `max_execution_time` – The maximum allowed time the scripts are allowed to run. 12 | - `default_socket_timeout` - Default timeout (in seconds) for socket based streams. 13 | 14 | However, large file transfer over HTTP still has a host of issues once you properly configure your server. 15 | Uploads are not resumable and subject to connectivity issues. 16 | If you really want to upload large files, you should consider some alternatives such as 17 | 18 | - Using the [TUS file upload protocol](https://www.drupal.org/project/tus) module, which will let you upload large files in forms. 19 | - Using [flysystem](https://www.drupal.org/project/flysystem)'s ftp and sftp plugins to make files available if you can run an FTP server. 20 | 21 | ## Large Files and Fedora 22 | 23 | If loading large (e.g. range 30-45 GB) files into Fedora, you may need to change the 24 | `fcrepo.session.timeout` property, which defaults to 3 minutes (180,000 ms). Documentation is on the 25 | [Properties page on the Fedora wiki](https://wiki.lyrasis.org/display/FEDORAM6M1P0/Properties). 26 | 27 | ## Large Files and FITS 28 | 29 | If using FITS, you may need to change the following in `/var/lib/tomcat9/webapps/fits/WEB-INF/classes/fits-service.properties`: 30 | 31 | ``` 32 | # Maximum allowable size of uploaded file 33 | max.upload.file.size.MB=2000 34 | # Maximum size of HTTP Request object. Must be equal to or larger than the value for max.upload.file.size.MB 35 | max.request.size.MB=2000 36 | # Maximum size of an uploaded file kept in memory. Otherwise temporarily persisted to disk. 37 | max.in.memory.file.size.MB=4 38 | ``` 39 | 40 | -------------------------------------------------------------------------------- /docs/user-documentation/url-aliases.md: -------------------------------------------------------------------------------- 1 | # URL Aliases 2 | 3 | A URL alias is an alternate URL pattern that resolves to a Drupal entity, 4 | such as a node, media, taxonomy term, or user. For example, you could set 5 | "/welcome" as an alias for "/node/1". Aliases are part of Drupal Core and 6 | can be extended by contrib modules. One such module is Pathauto, which 7 | enables automatic alias generation based on patterns, and the patterns may 8 | involve "Tokens" (such as [node:title]). 9 | 10 | This page will attempt to cover the Islandora Starter Site's use of aliases 11 | and what we consider to be best practices. A full description of creating 12 | and managing aliases is out of scope. 13 | 14 | 15 | ## Best practices with URL aliases 16 | 17 | While every site may choose to set up their aliases differently, we cannot 18 | prescibe a universal setup. 19 | 20 | A common "nice-to-have" is the presence of the slug `/islandora/` in the 21 | URL which identifies the content as "Islandora". 22 | 23 | A potential "best practice" is that if your site uses persistent identifiers 24 | such as DOIs or Handles, that those identifiers make up part of the URL alias. 25 | 26 | 27 | ## Use of URL aliases in Islandora Starter Site 28 | 29 | The Islandora Starter Site includes the Pathauto module, which we consider 30 | that most sites will want to use in some way. However its default configuration 31 | should not be interpreted as prescriptive. You are encouraged to use persistent 32 | identifiers if you have them! 33 | 34 | The default Pathauto pattern for Repository Items is `/islandora/[node:title]` 35 | with the pathauto configuration trimming the alias at 100 characters. 36 | 37 | 38 | ## Preserving Legacy URLs 39 | 40 | Sites migrating from Islandora Legacy may wish for their objects to still 41 | be available through their old URLs, with the pattern `/islandora/object/[PID]`. 42 | 43 | Options for doing this include: 44 | 45 | * Populating `field_pid` with the legacy PID, and using Pathauto to create URL 46 | aliases of the pattern `/islandora/object/[node:field_pid]`. However, you will 47 | need to set up something for new objects that don't have Legacy PIDs. 48 | * Use discoverygarden's ["PID Redirect"](https://github.com/discoverygarden/pid_redirect) 49 | module, which creates "301 Moved Permanently" redirects from legacy URLs to 50 | the appropriate node, based on `field_pid`. 51 | * Manually managing redirects in your webserver. 52 | -------------------------------------------------------------------------------- /docs/user-documentation/usage-stats.md: -------------------------------------------------------------------------------- 1 | Drupal 8 supports various web analytics integrations such as [Google Analytics](https://www.drupal.org/project/google_analytics) and [Matomo](https://www.drupal.org/project/matomo). For privacy reasons, Islandora integrates Matomo web analytics platforms by default. 2 | 3 | The Matomo server is installed here: http://localhost:8000/matomo. The default configurations can be found in `http://localhost:8000/admin/config/system/matomo`. You can log in to the Matomo server using username `admin` and password `islandora`. The dashboard will look like this: 4 | 5 | ![screenshot of Matomo dashboard](../assets/usage_stats_dashboard.jpg) 6 | 7 | To see page views, login to Matomo and go to Behaviour >> Pages. 8 | 9 | ## Further Reading 10 | * [Matomo User Guides](https://matomo.org/docs/) -------------------------------------------------------------------------------- /docs/user-documentation/versioning.md: -------------------------------------------------------------------------------- 1 | # Versioning 2 | As a user of an Islandora repository, you may be wondering - Is this content being versioned? Could I restore from a previous version if I needed to? Can I see a list of versions for an object? 3 | The answer to these questions is two-fold, and largely yes. The architecture of Islandora provides users with a Drupal implementation and a Fedora implementation which are connected in Islandora. 4 | 5 | !!! note "Islandora Software Versioning" 6 | Looking for information about versions of Islandora itself? The latest Islandora follows [semantic versioning](https://semver.org/). Previously, Islandora's versions were tied to the version of Drupal and numbered in order of release, such as [Islandora 6.x-13.1](https://wiki.lyrasis.org/display/ISLANDORA6131/Islandora) or [Islandora 7.x-1.13](https://wiki.lyrasis.org/display/ISLANDORA/Start). [More information](../technical-documentation/versioning.md). 7 | 8 | ## Drupal Revisioning 9 | Drupal provides a concept of revisions which allows you to track the differences between multiple versions of your content and revert to older ones. The list of revisions for a node, media, or taxonomy term are available at the entity's page, with `/revisions` appended to the URL. There are [Drupal docs](https://www.drupal.org/docs/8/administering-a-drupal-8-site/node-revisions) on revisioning. 10 | 11 | ## Fedora and Memento 12 | Fedora implements the [Memento](http://mementoweb.org/about/) specification for versioning resources, which is a time-based HTTP framework. Fedora provides [documentation](https://wiki.lyrasis.org/display/FEDORA5x/Versioning) as well as an [API implementation](https://wiki.lyrasis.org/display/FEDORA5x/RESTful+HTTP+API+-+Versioning). 13 | 14 | ## Basic Data Flow 15 | 1. A node or media object is created or updated in Drupal. 16 | 2. When an entity is revisionable, and it isn't the initial creation, it [adds a flag](https://github.com/Islandora/islandora/blob/8.x-1.x/src/EventGenerator/EventGenerator.php#L109) to the event object that gets passed to Alpaca. 17 | 3. The [islandora-indexing-fcrepo module](https://github.com/Islandora/Alpaca/tree/dev/islandora-indexing-fcrepo) of Alpaca looks for that flag and fires a call to the [versioning endpoint](https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/app.php#L52) of [Milliner](https://github.com/Islandora/Crayfish/tree/dev/Milliner). 18 | 4. Milliner uses the [Chullo library](https://github.com/Islandora/chullo/blob/dev/src/FedoraApi.php#L320) to [create a version](https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/Service/MillinerService.php#L551) in Fedora. 19 | -------------------------------------------------------------------------------- /docs/user-documentation/versioning.wiki: -------------------------------------------------------------------------------- 1 | 2 | = Versioning = 3 | 4 | As a user of an Islandora repository, you may be wondering - Is this content being versioned? Could I restore from a previous version if I needed to? Can I see a list of versions for an object? The answer to these questions is two-fold, and largely yes. The architecture of Islandora provides users with a Drupal implementation and a Fedora implementation which are connected in Islandora. 5 | 6 | !!! note “Islandora Software Versioning” Looking for information about versions of Islandora itself? The latest Islandora follows [https://semver.org/ semantic versioning]. Previously, Islandora’s versions were tied to the version of Drupal and numbered in order of release, such as [https://wiki.lyrasis.org/display/ISLANDORA6131/Islandora Islandora 6.x-13.1] or [https://wiki.lyrasis.org/display/ISLANDORA/Start Islandora 7.x-1.13]. [[../technical-documentation/versioning|More information]]. 7 | 8 | 9 | == Drupal Revisioning == 10 | 11 | Drupal provides a concept of revisions which allows you to track the differences between multiple versions of your content and revert to older ones. The list of revisions for a node are available at http://localhost:8000/node/1/revisions. There are [https://www.drupal.org/docs/8/administering-a-drupal-8-site/node-revisions Drupal docs] on revisioning. Media objects are also versioned in Drupal but there is not a UI component for this - [https://github.com/Islandora/documentation/issues/1035 see related issue]. 12 | 13 | 14 | == Fedora and Memento == 15 | 16 | Fedora implements the [http://mementoweb.org/about/ Memento] specification for versioning resources, which is a time-based HTTP framework. Fedora provides [https://wiki.lyrasis.org/display/FEDORA5x/Versioning documentation] as well as an [https://wiki.lyrasis.org/display/FEDORA5x/RESTful+HTTP+API+-+Versioning API implementation]. 17 | 18 | 19 | == Basic Data Flow == 20 | 21 | # A node or media object is created or updated in Drupal. 22 | # When an entity is revisionable, and it isn’t the initial creation, it [https://github.com/Islandora/islandora/blob/8.x-1.x/src/EventGenerator/EventGenerator.php#L109 adds a flag] to the event object that gets passed to Alpaca. 23 | # The [https://github.com/Islandora/Alpaca/tree/dev/islandora-indexing-fcrepo islandora-indexing-fcrepo module] of Alpaca looks for that flag and fires a call to the [https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/app.php#L52 versioning endpoint] of [https://github.com/Islandora/Crayfish/tree/dev/Milliner Milliner]. 24 | # Milliner uses the [https://github.com/Islandora/chullo/blob/dev/src/FedoraApi.php#L320 Chullo library] to [https://github.com/Islandora/Crayfish/blob/dev/Milliner/src/Service/MillinerService.php#L551 create a version] in Fedora. 25 | -------------------------------------------------------------------------------- /docs/user-documentation/video-docs.md: -------------------------------------------------------------------------------- 1 | # Video Documentation 2 | 3 | ## Overview 4 | 5 | Islandora Quick Lessons are a series of short videos demonstrating how to do common tasks in Islandora. 6 | 7 | New videos are added to [the playlist](https://www.youtube.com/playlist?list=PL4seFC7ELUtripxWi_2RIBKCWqI0uif93) regularly. 8 | 9 | ## General Information 10 | 11 | - [What is Islandora?](https://youtu.be/nG6aidmQVZ4): A quick overview of what Islandora is and why people use it. 12 | - [Create a GitHub Issue](https://youtu.be/eHBIYlRxEtk): How to submit an issue to the Islandora issue queue on GitHub, where you can report a bug, share your use case, request an improvement, or request a new feature. 13 | 14 | ## Installation & Virtual Machines 15 | 16 | - [Building a Virtual Machine](https://youtu.be/cFNWgfRY_Ec): How to build a new VM using the Islandora [ansible playbook](https://github.com/Islandora-Devops/islandora-playbook). 17 | - [Importing a Virtual Machine](https://youtu.be/Zv0XWz1kU5Q): How to import a VM from a downloaded .ova. 18 | - [Using an FTP Client on a VM](https://youtu.be/fBf0NuCEERw): How to configure an Islandora VM to work with an FTP client like [Cyberduck](https://cyberduck.io/) or [WinSCP](https://winscp.net/eng/download.php). 19 | - [Composer Module Install](https://youtu.be/ckbLy_1O5sI): How to use Composer to install new Drupal modules in your VM. 20 | 21 | ## Site Building Basics 22 | 23 | - [Add a User](https://youtu.be/XSokAFRVBuE): How to make a new user who can add Islandora content. 24 | - [Creating a Basic Page](https://youtu.be/uuECIWG0RQY): How to create a regular Drupal page. 25 | - [Creating a Custom Block](https://youtu.be/4VUI9pOXpzE): How to create a custom content Block and place it on your site. 26 | - [Adding a Menu Item](https://youtu.be/IN_5DYq-lwU): How to add a new entry in your site's navigation. 27 | - [Setting a Home Page](https://youtu.be/PCK0oStyKHg): How to assign a particular Drupal node as the Home Page for your site. 28 | 29 | ## Working with Islandora Content 30 | 31 | - [Add Content](https://youtu.be/G52is7iFkG4): How to add items to your Islandora repository. 32 | - [Making a Collection](https://youtu.be/9jFVAE6l4so): How to create a new Islandora collection. 33 | - [Adding a Taxonomy Term](https://youtu.be/FEb2yOWg140): How to add a new term to an existing Taxonomy in Islandora. 34 | - [Regenerating a Derivative](https://youtu.be/g3xg1zDlBe0): How to force Islandora to re-create a derivative for a node. 35 | - [Customizing a Form](https://youtu.be/tOW27DZY9hs): How to modify fields, modify the ingest form, and modify the metadata display for Islandora content. 36 | - [Adding a New Context](https://youtu.be/T4yIfn_Se_s): How to add a new Context, causing a site Action to be performed based on conditions. 37 | - [Changing an Action](https://youtu.be/pkG6IRkh4wU): How to change how an existing Action behaves, to be performed based on a Context. 38 | - [Batch Ingest with Migrate](https://youtu.be/gXBgLkiOi0A): How to use Drupal Migrate to bulk-load Islandora content with metadata, without using the command line. 39 | 40 | 41 | ## Working with Views 42 | 43 | - [Basic Views](https://youtu.be/Ge14g8nBUBQ): How to make a very basic View filtered by a taxonomy term. 44 | - [Advanced Views](https://youtu.be/inPRZeQGnKI): How to bring together several settings and tools to make a more advanced image view. 45 | - [Batch Editing](https://youtu.be/ZMp0lPelOZw): How to use Views Bulk Edit to create a batch editing view for Islandora. 46 | - [Export and Import a View](https://youtu.be/0NXrzSzxhLc): How to copy a custom View from one Islandora site to another. 47 | - [Islandora Webinar: Islandora and Drupal Views](https://www.youtube.com/watch?v=VfuRHXFD89c): a 1-hour session on working with Views. 48 | - [Summer of Islandora: Drupal Views for Islandora Users](https://www.youtube.com/watch?v=sJfojxRRsgQ): a 30-minute session on manipulating Views. 49 | 50 | ## Additional Topics 51 | 52 | - [How to Build Documentation](http://youtu.be/YgSXicNow5w): How to make a local copy of documentation to test and make changes. 53 | - [Changing Themes](http://youtu.be/AMQOW0D2dhM): How to change the theme for your Islandora site, including replacing Blocks and updating Contexts. -------------------------------------------------------------------------------- /make-nav-tree.py: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/python3 2 | 3 | import yaml 4 | from treelib import Node, Tree 5 | 6 | def expand_yaml_to_tree(data, tree, parent = None): 7 | label = list(data.keys())[0] 8 | if parent == None: 9 | tree.create_node(label, label) 10 | else: 11 | tree.create_node(label, label, parent = parent) 12 | if type(data[label]) == list: 13 | for branch in data[label]: 14 | tree = expand_yaml_to_tree(branch, tree, label) 15 | return tree 16 | 17 | with open('mkdocs.yml','r') as mkdocs: 18 | full_file_contents = yaml.safe_load(mkdocs) 19 | forest = [] 20 | for top_level_item in full_file_contents['nav']: 21 | tree = Tree() 22 | tree = expand_yaml_to_tree(top_level_item, tree) 23 | forest.append(tree) 24 | 25 | for tree in forest: 26 | tree.show() 27 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Babel==2.11.0 2 | certifi==2024.7.4 3 | charset-normalizer==3.0.1 4 | click==8.1.3 5 | colorama==0.4.6 6 | ghp-import==2.1.0 7 | gitdb==4.0.10 8 | GitPython==3.1.41 9 | idna==3.7 10 | Jinja2==3.1.6 11 | Markdown==3.3.7 12 | MarkupSafe==2.1.2 13 | mergedeep==1.3.4 14 | mkdocs==1.4.2 15 | mkdocs-git-revision-date-localized-plugin==1.1.0 16 | mkdocs-material==9.0.12 17 | mkdocs-material-extensions==1.1.1 18 | mkdocs-redirects==1.2.1 19 | packaging==23.0 20 | Pygments==2.15.0 21 | pymdown-extensions==10.0 22 | python-dateutil==2.8.2 23 | pytz==2022.7.1 24 | PyYAML==6.0.1 25 | pyyaml_env_tag==0.1 26 | regex==2022.10.31 27 | requests==2.32.4 28 | six==1.16.0 29 | smmap==5.0.0 30 | urllib3==2.5.0 31 | watchdog==2.2.1 32 | --------------------------------------------------------------------------------