arclight 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +12 -0
  3. data/.gitignore +5 -0
  4. data/.rubocop.yml +66 -0
  5. data/.solr_wrapper +5 -0
  6. data/.travis.yml +30 -2
  7. data/CONTRIBUTING.md +43 -0
  8. data/Gemfile +36 -0
  9. data/LICENSE.txt +1 -0
  10. data/README.md +85 -12
  11. data/Rakefile +14 -3
  12. data/app/assets/images/blacklight/compact.svg +25 -0
  13. data/app/assets/images/blacklight/logo.png +0 -0
  14. data/app/assets/javascripts/arclight/arclight.js +9 -0
  15. data/app/assets/javascripts/arclight/collection_context.js +18 -0
  16. data/app/assets/javascripts/arclight/collection_navigation.js +114 -0
  17. data/app/assets/javascripts/arclight/collection_scrollspy.js +6 -0
  18. data/app/assets/javascripts/arclight/component_ancestors.js +56 -0
  19. data/app/assets/javascripts/arclight/oembed_viewer.js +39 -0
  20. data/app/assets/javascripts/arclight/truncator.js.erb +23 -0
  21. data/app/assets/stylesheets/arclight/application.scss +13 -0
  22. data/app/assets/stylesheets/arclight/bootstrap_overrides.scss +3 -0
  23. data/app/assets/stylesheets/arclight/modules/collection_search.scss +3 -0
  24. data/app/assets/stylesheets/arclight/modules/hierarchy_and_online_contents.scss +174 -0
  25. data/app/assets/stylesheets/arclight/modules/highlights.scss +10 -0
  26. data/app/assets/stylesheets/arclight/modules/layout.scss +33 -0
  27. data/app/assets/stylesheets/arclight/modules/mastheads.scss +60 -0
  28. data/app/assets/stylesheets/arclight/modules/repositories.scss +29 -0
  29. data/app/assets/stylesheets/arclight/modules/repository_card.scss +54 -0
  30. data/app/assets/stylesheets/arclight/modules/search_results.scss +75 -0
  31. data/app/assets/stylesheets/arclight/modules/show_collection.scss +78 -0
  32. data/app/assets/stylesheets/arclight/modules/sidebar.scss +16 -0
  33. data/app/assets/stylesheets/arclight/variables.scss +2 -0
  34. data/app/controllers/arclight/repositories_controller.rb +40 -0
  35. data/app/controllers/concerns/arclight/field_config_helpers.rb +86 -0
  36. data/app/factories/blacklight_field_configuration_factory.rb +29 -0
  37. data/app/helpers/arclight_helper.rb +173 -0
  38. data/app/models/arclight/parent.rb +24 -0
  39. data/app/models/arclight/parents.rb +34 -0
  40. data/app/models/arclight/requests/google_form.rb +44 -0
  41. data/app/models/concerns/arclight/catalog.rb +22 -0
  42. data/app/models/concerns/arclight/search_behavior.rb +46 -0
  43. data/app/models/concerns/arclight/solr_document.rb +131 -0
  44. data/app/presenters/arclight/index_presenter.rb +10 -0
  45. data/app/presenters/arclight/show_presenter.rb +27 -0
  46. data/app/views/arclight/.keep +0 -0
  47. data/app/views/arclight/repositories/_in_person_repository.html.erb +19 -0
  48. data/app/views/arclight/repositories/_repository.html.erb +62 -0
  49. data/app/views/arclight/repositories/index.html.erb +4 -0
  50. data/app/views/arclight/repositories/show.html.erb +38 -0
  51. data/app/views/arclight/requests/_google_form.html.erb +11 -0
  52. data/app/views/arclight/viewers/_oembed.html.erb +7 -0
  53. data/app/views/catalog/_arclight_document_index_header.html.erb +13 -0
  54. data/app/views/catalog/_arclight_document_index_header_hierarchy_default.html.erb +0 -0
  55. data/app/views/catalog/_arclight_document_index_header_online_contents_default.html.erb +0 -0
  56. data/app/views/catalog/_arclight_document_show_header.html.erb +15 -0
  57. data/app/views/catalog/_arclight_document_show_header_collection.html.erb +12 -0
  58. data/app/views/catalog/_arclight_index_compact_default.html.erb +15 -0
  59. data/app/views/catalog/_arclight_online_content_indicator.html.erb +5 -0
  60. data/app/views/catalog/_arclight_rangelimit.html.erb +24 -0
  61. data/app/views/catalog/_arclight_viewer_default.html.erb +1 -0
  62. data/app/views/catalog/_collection_contents.html.erb +12 -0
  63. data/app/views/catalog/_collection_count.html.erb +7 -0
  64. data/app/views/catalog/_collection_downloads.html.erb +17 -0
  65. data/app/views/catalog/_collection_online_contents.html.erb +17 -0
  66. data/app/views/catalog/_collection_overview.html.erb +7 -0
  67. data/app/views/catalog/_component_overview.html.erb +46 -0
  68. data/app/views/catalog/_context_card.html.erb +27 -0
  69. data/app/views/catalog/_context_sidebar.html.erb +8 -0
  70. data/app/views/catalog/_custom_metadata.html.erb +16 -0
  71. data/app/views/catalog/_home.html.erb +1 -0
  72. data/app/views/catalog/_index_breadcrumb_default.html.erb +3 -0
  73. data/app/views/catalog/_index_default.html.erb +17 -0
  74. data/app/views/catalog/_index_header.html.erb +7 -0
  75. data/app/views/catalog/_index_header_hierarchy_default.html.erb +42 -0
  76. data/app/views/catalog/_index_header_online_contents_default.html.erb +1 -0
  77. data/app/views/catalog/_index_hierarchy_default.html.erb +28 -0
  78. data/app/views/catalog/_index_online_contents_default.html.erb +6 -0
  79. data/app/views/catalog/_results_histogram.html.erb +10 -0
  80. data/app/views/catalog/_search_results.html.erb +31 -0
  81. data/app/views/catalog/_search_results_repository.html.erb +6 -0
  82. data/app/views/catalog/_search_within_form.html.erb +16 -0
  83. data/app/views/catalog/_show_breadcrumbs_default.html.erb +7 -0
  84. data/app/views/catalog/_show_collection.html.erb +40 -0
  85. data/app/views/catalog/_show_component_sidebar.html.erb +12 -0
  86. data/app/views/catalog/_show_default.html.erb +32 -0
  87. data/app/views/catalog/_show_header.html.erb +5 -0
  88. data/app/views/catalog/_show_sidebar.html.erb +30 -0
  89. data/app/views/catalog/index.html.erb +8 -0
  90. data/app/views/layouts/catalog_result.html.erb +7 -0
  91. data/app/views/shared/_breadcrumbs.html.erb +15 -0
  92. data/app/views/shared/_context_sidebar.html.erb +8 -0
  93. data/app/views/shared/_header_navbar.html.erb +54 -0
  94. data/app/views/shared/_main_menu_links.html.erb +6 -0
  95. data/arclight.gemspec +17 -4
  96. data/bin/rails +13 -0
  97. data/config/locales/arclight.en.yml +65 -0
  98. data/config/routes.rb +6 -0
  99. data/lib/arclight.rb +5 -0
  100. data/lib/arclight/custom_component.rb +98 -0
  101. data/lib/arclight/custom_document.rb +93 -0
  102. data/lib/arclight/digital_object.rb +26 -0
  103. data/lib/arclight/engine.rb +55 -0
  104. data/lib/arclight/exceptions.rb +18 -0
  105. data/lib/arclight/indexer.rb +9 -0
  106. data/lib/arclight/normalized_date.rb +45 -0
  107. data/lib/arclight/normalized_id.rb +25 -0
  108. data/lib/arclight/normalized_title.rb +30 -0
  109. data/lib/arclight/repository.rb +91 -0
  110. data/lib/arclight/shared_indexing_behavior.rb +97 -0
  111. data/lib/arclight/shared_terminology_behavior.rb +65 -0
  112. data/lib/arclight/solr_ead_indexer_ext.rb +159 -0
  113. data/lib/arclight/version.rb +3 -1
  114. data/lib/arclight/viewer.rb +45 -0
  115. data/lib/arclight/viewers/oembed.rb +56 -0
  116. data/lib/arclight/year_range.rb +102 -0
  117. data/lib/generators/arclight/install_generator.rb +63 -0
  118. data/lib/generators/arclight/templates/arclight.js +2 -0
  119. data/lib/generators/arclight/templates/arclight.scss +3 -0
  120. data/lib/generators/arclight/templates/catalog_controller.rb +347 -0
  121. data/lib/generators/arclight/templates/config/downloads.yml +13 -0
  122. data/lib/generators/arclight/templates/config/repositories.yml +42 -0
  123. data/lib/generators/arclight/update_generator.rb +22 -0
  124. data/lib/tasks/index.rake +87 -0
  125. data/package.json +24 -0
  126. data/solr/conf/_rest_managed.json +3 -0
  127. data/solr/conf/admin-extra.html +31 -0
  128. data/solr/conf/elevate.xml +36 -0
  129. data/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  130. data/solr/conf/protwords.txt +21 -0
  131. data/solr/conf/schema.xml +631 -0
  132. data/solr/conf/scripts.conf +24 -0
  133. data/solr/conf/solrconfig.xml +393 -0
  134. data/solr/conf/spellings.txt +2 -0
  135. data/solr/conf/stopwords.txt +58 -0
  136. data/solr/conf/stopwords_en.txt +58 -0
  137. data/solr/conf/synonyms.txt +31 -0
  138. data/solr/conf/xslt/example.xsl +132 -0
  139. data/solr/conf/xslt/example_atom.xsl +67 -0
  140. data/solr/conf/xslt/example_rss.xsl +66 -0
  141. data/solr/conf/xslt/luke.xsl +337 -0
  142. data/tasks/arclight.rake +68 -0
  143. data/template.rb +15 -0
  144. data/vendor/assets/javascripts/responsiveTruncator.js +69 -0
  145. data/vendor/assets/javascripts/stickyfill.js +480 -0
  146. metadata +301 -6
@@ -0,0 +1,114 @@
1
+ (function (global) {
2
+ var CollectionNavigation;
3
+ /**
4
+ * Converts documents that should be used in a hierarchy, to highlighted
5
+ * localized siblings.
6
+ */
7
+ function convertDocsForContext(id, $doc) {
8
+ var newDocs;
9
+ var $currentDoc;
10
+ var $previousDocs;
11
+ var $nextDocs;
12
+ var headers = $doc.find('article header[data-document-id="' + id + '"]')
13
+ if (headers.length == 0) {
14
+ $.error('Document is missing id=' + id);
15
+ }
16
+ $currentDoc = $(headers[0].parentNode); // need article element
17
+ $currentDoc.addClass('al-hierarchy-highlight');
18
+
19
+ // We want to show 0-1 or 0-2 siblings depending on where highlighted component is
20
+ $previousDocs = $currentDoc.prevUntil().slice(0, 2);
21
+ $nextDocs = $currentDoc.nextUntil().slice(0, 2);
22
+
23
+ if ($previousDocs.length > 0 && $nextDocs.length > 0) {
24
+ // Case where there are siblings on both sides, show 1 each
25
+ newDocs = $('<div>');
26
+ newDocs.append($previousDocs.first());
27
+ newDocs.append($currentDoc);
28
+ newDocs.append($nextDocs.first());
29
+ } else if ($previousDocs.length > 0) {
30
+ // Case where there are only previous siblings, show 2 of them
31
+ newDocs = $('<div>');
32
+ newDocs.append($previousDocs.get().reverse()); // previous is not in the order we need
33
+ newDocs.append($currentDoc);
34
+ } else {
35
+ // Case where there are only next siblings, show 2 of them
36
+ newDocs = $('<div>');
37
+ newDocs.append($currentDoc);
38
+ newDocs.append($nextDocs);
39
+ }
40
+ // Cleanup to remove collapsible children stuff
41
+ newDocs.find('.al-toggle-view-more').remove();
42
+ newDocs.find('.collapse').remove();
43
+ newDocs.find('hr').remove();
44
+ return newDocs;
45
+ }
46
+
47
+ CollectionNavigation = {
48
+ init: function (el) {
49
+ var $el = $(el);
50
+ var data = $el.data();
51
+ // Add a placeholder so flashes of text are not as significant
52
+ var placeholder = '<div class="al-hierarchy-placeholder">' +
53
+ '<h3 class="col-md-9"></h3>' +
54
+ '<p class="col-md-6"></p>' +
55
+ '<p class="col-md-12"></p>' +
56
+ '<p class="col-md-3"></p>' +
57
+ '</div>';
58
+ placeholder = new Array(3).join(placeholder);
59
+ $el.html(placeholder);
60
+ $.ajax({
61
+ url: data.arclight.path,
62
+ data: {
63
+ 'f[component_level_isim][]': data.arclight.level,
64
+ 'f[has_online_content_ssim][]': data.arclight.access,
65
+ 'f[collection_sim][]': data.arclight.name,
66
+ 'f[parent_ssi][]': data.arclight.parent,
67
+ search_field: data.arclight.search_field,
68
+ view: data.arclight.view || 'hierarchy'
69
+ }
70
+ }).done(function (response) {
71
+ var resp = $.parseHTML(response);
72
+ var $doc = $(resp);
73
+ var showDocs = $doc.find('article.document');
74
+ var newDocs = $doc.find('#documents');
75
+
76
+ // Add a highlight class for the article matching the highlight id
77
+ if (data.arclight.highlightId) {
78
+ newDocs = convertDocsForContext(data.arclight.highlightId, $doc);
79
+ }
80
+
81
+ $el.hide().html(newDocs).fadeIn(500);
82
+ if (showDocs.length > 0) {
83
+ $el.trigger('navigation.contains.elements');
84
+ }
85
+ Blacklight.do_bookmark_toggle_behavior();
86
+ });
87
+ }
88
+ };
89
+
90
+ global.CollectionNavigation = CollectionNavigation;
91
+ }(this));
92
+
93
+ Blacklight.onLoad(function () {
94
+ 'use strict';
95
+
96
+ $('.al-contents').each(function (i, element) {
97
+ CollectionNavigation.init(element); // eslint-disable-line no-undef
98
+ });
99
+
100
+ $('.al-contents').on('navigation.contains.elements', function (e) {
101
+ var toEnable = $('[data-hierarchy-enable-me]');
102
+ toEnable.removeClass('disabled');
103
+ toEnable.text('Contents');
104
+
105
+ $(e.target).find('.collapse').on('show.bs.collapse', function (ee) {
106
+ var $newTarget = $(ee.target);
107
+ $newTarget.find('.al-contents').each(function (i, element) {
108
+ CollectionNavigation.init(element); // eslint-disable-line no-undef
109
+ // Turn off additional ajax requests on show
110
+ $newTarget.off('show.bs.collapse');
111
+ });
112
+ });
113
+ });
114
+ });
@@ -0,0 +1,6 @@
1
+ Blacklight.onLoad(function () {
2
+ 'use strict';
3
+
4
+ $('.al-sticky-sidebar').Stickyfill();
5
+ $('body').scrollspy({ target: '.al-sidebar-navigation-overview' });
6
+ });
@@ -0,0 +1,56 @@
1
+ (function (global) {
2
+ var ComponentAncestors = {
3
+ init: function (el) {
4
+ var $el = $(el);
5
+ var data = $el.data();
6
+ var ancestors = $('<div>');
7
+ var collectionId = data.arclightAncestors.shift();
8
+ var allDone = $.Deferred();
9
+
10
+ data.arclightAncestors.forEach(function (id, i) {
11
+ var requestId = collectionId + id;
12
+ var currentDiv = $('<div class="documents-hierarchy extra-indent al-hierarchy-level-' + (i) + '">');
13
+ ancestors.append(currentDiv);
14
+
15
+ $.ajax({
16
+ url: data.arclightPath,
17
+ data: {
18
+ q: 'id:' + requestId,
19
+ search_field: 'all_fields',
20
+ view: 'hierarchy'
21
+ }
22
+ }).done(function (response) {
23
+ var resp = $.parseHTML(response);
24
+ var $doc = $(resp);
25
+ var thisAncestor = $doc.find('article.document-position-0');
26
+
27
+ // Remove collapsible stuff
28
+ thisAncestor.find('.al-toggle-view-more').remove();
29
+ thisAncestor.find('.collapse').remove();
30
+ thisAncestor.find('hr').remove();
31
+
32
+ currentDiv.append(thisAncestor);
33
+ if (i + 1 === data.arclightAncestors.length) {
34
+ allDone.resolve();
35
+ }
36
+ });
37
+ });
38
+
39
+ // Wait for all requests to finish
40
+ allDone.done(function () {
41
+ $el.html(ancestors);
42
+ });
43
+ }
44
+ };
45
+
46
+ global.ComponentAncestors = ComponentAncestors;
47
+ }(this));
48
+
49
+
50
+ Blacklight.onLoad(function () {
51
+ 'use strict';
52
+
53
+ $('[data-arclight-ancestors]').each(function (i, e) {
54
+ ComponentAncestors.init(e); // eslint-disable-line no-undef
55
+ });
56
+ });
@@ -0,0 +1,39 @@
1
+ Blacklight.onLoad(function () {
2
+ 'use strict';
3
+ var onlineContentTabSelector = '[data-arclight-online-content-tab="true"]';
4
+ var oEmbedViewerSelector = '[data-arclight-oembed="true"]';
5
+
6
+ $(onlineContentTabSelector).on('shown.bs.tab', function() {
7
+ var $viewerElements = $(oEmbedViewerSelector);
8
+ if($viewerElements.length === 0) {
9
+ return;
10
+ }
11
+
12
+ $viewerElements.each(function (i, element) {
13
+ var $el = $(element);
14
+ var data = $el.data();
15
+ var resourceUrl = data.arclightOembedUrl;
16
+ $.ajax({
17
+ url: resourceUrl,
18
+ dataType: 'html'
19
+ }).done(function (response) {
20
+ var links = $('<div>' + response.match(/<link .*>/g).join('') + '</div>'); // Parse out link elements so image assets are not loaded
21
+ var oEmbedEndPoint = links.find('link[rel="alternate"][type="application/json+oembed"]').prop('href');
22
+
23
+ if(!oEmbedEndPoint || oEmbedEndPoint.length === 0) {
24
+ return;
25
+ }
26
+
27
+ $.ajax({
28
+ url: oEmbedEndPoint
29
+ }).done(function (oEmbedResponse) {
30
+ if(oEmbedResponse.html) {
31
+ $el.hide()
32
+ .html(oEmbedResponse.html)
33
+ .fadeIn(500);
34
+ }
35
+ });
36
+ });
37
+ });
38
+ });
39
+ });
@@ -0,0 +1,23 @@
1
+ Blacklight.onLoad(function () {
2
+ 'use strict';
3
+
4
+ // Any element on page load
5
+ $('[data-arclight-truncate="true"]').each(function (i, e) {
6
+ $(e).responsiveTruncate({
7
+ more: "<%= I18n.t 'arclight.truncation.view_more' %>",
8
+ less: "<%= I18n.t 'arclight.truncation.view_less' %>"
9
+ });
10
+ });
11
+
12
+ // When elements get loaded from hierarchy
13
+ $('.al-contents').on('navigation.contains.elements', function () {
14
+ $('a[data-toggle="pill"]').on('shown.bs.tab', function () {
15
+ $('[data-arclight-truncate="true"]').each(function (_, el) {
16
+ $(el).responsiveTruncate({
17
+ more: "<%= I18n.t 'arclight.truncation.view_more' %>",
18
+ less: "<%= I18n.t 'arclight.truncation.view_less' %>"
19
+ });
20
+ });
21
+ });
22
+ });
23
+ });
@@ -0,0 +1,13 @@
1
+ @import 'bootstrap/variables';
2
+ @import 'bootstrap_overrides';
3
+ @import 'variables';
4
+ @import 'modules/collection_search';
5
+ @import 'modules/highlights';
6
+ @import 'modules/hierarchy_and_online_contents';
7
+ @import 'modules/layout';
8
+ @import 'modules/mastheads';
9
+ @import 'modules/repositories.scss';
10
+ @import 'modules/repository_card.scss';
11
+ @import 'modules/search_results';
12
+ @import 'modules/show_collection';
13
+ @import 'modules/sidebar';
@@ -0,0 +1,3 @@
1
+ .nav.nav-pills {
2
+ margin-bottom: $spacer;
3
+ }
@@ -0,0 +1,3 @@
1
+ .al-collection-count {
2
+ padding-top: 20px;
3
+ }
@@ -0,0 +1,174 @@
1
+ .documents-hierarchy,
2
+ .documents-online_contents {
3
+ .document-title-heading {
4
+ font-size: $font-size-h5;
5
+ }
6
+
7
+ .document-title-containers {
8
+ &:after {
9
+ padding-right: 3px;
10
+ }
11
+ }
12
+
13
+ .al-toggle-view-all {
14
+ color: $gray-light;
15
+
16
+ &:before {
17
+ color: $gray-light;
18
+ content: "\2022";
19
+ padding-right: 3px;
20
+ }
21
+ }
22
+
23
+ .al-hierarchy-children-status {
24
+ text-align: right;
25
+ }
26
+
27
+ // Component title + children badge
28
+ .documentHeader {
29
+ border-bottom: $border-width dashed #ccc;
30
+ margin-bottom: ($spacer / 2);
31
+ margin-top: ($spacer * 2);
32
+ }
33
+
34
+ // Headings and text
35
+ .al-document-abstract-or-scope {
36
+ font-size: 0.85rem;
37
+ line-height: 1.25;
38
+ }
39
+
40
+ .al-hierarchy-sub-heading {
41
+ color: $gray-light;
42
+ font-size: $font-size-xs;
43
+ font-weight: normal;
44
+ text-transform: uppercase;
45
+ }
46
+
47
+ // Series level
48
+ .blacklight-series .document-title-heading,
49
+ .blacklight-file .document-title-heading,
50
+ .blacklight-otherlevel .document-title-heading {
51
+ font-size: $font-size-h5;
52
+ font-weight: 400;
53
+ margin-bottom: ($spacer / 2);
54
+
55
+ > a {
56
+ color: $gray-dark;
57
+ }
58
+ }
59
+
60
+ .blacklight-series,
61
+ .blacklight-file {
62
+ // Additional for levels below series
63
+ .blacklight-subseries .document-title-heading,
64
+ .blacklight-file .document-title-heading,
65
+ .blacklight-otherlevel .document-title-heading {
66
+ font-size: $font-size-h6;
67
+
68
+ .documentHeader {
69
+ margin-top: $spacer;
70
+ }
71
+ }
72
+
73
+ // Icongraphy for each level
74
+ .blacklight-subseries .document-title-heading,
75
+ .al-hierarchy-level-1 .blacklight-file .document-title-heading,
76
+ .al-hierarchy-level-1 .blacklight-otherlevel .document-title-heading {
77
+ border-left: ($border-width * 2) solid #999;
78
+ padding-left: 10px;
79
+ }
80
+
81
+ .al-hierarchy-level-2 .document-title-heading,
82
+ .al-hierarchy-level-2 .blacklight-file .document-title-heading {
83
+ border-left: 0;
84
+ padding-left: 0;
85
+
86
+ &:before {
87
+ color: $gray-light;
88
+ content: "\a6";
89
+ padding-right: 6px;
90
+ }
91
+ }
92
+
93
+ .al-hierarchy-level-3 .document-title-heading,
94
+ .al-hierarchy-level-3 .blacklight-file .document-title-heading {
95
+ &:before {
96
+ content: "\205D";
97
+ }
98
+ }
99
+ }
100
+ }
101
+
102
+ .al-hierarchy-highlight {
103
+ background: $state-warning-bg;
104
+ }
105
+
106
+ // Placeholder styling
107
+ .al-hierarchy-placeholder {
108
+ margin-top: $spacer;
109
+
110
+ h3 {
111
+ background-color: $gray-lighter;
112
+ border-radius: 5px;
113
+ height: $font-size-h3;
114
+ }
115
+
116
+ p {
117
+ background-color: $gray-lighter;
118
+ border-radius: 5px;
119
+ height: $font-size-base;
120
+ }
121
+ }
122
+
123
+ // Component show page, Collection context section
124
+ #collection-context {
125
+ h1 {
126
+ font-size: $font-size-h5;
127
+ }
128
+
129
+ .documents-hierarchy,
130
+ .documents-online_contents {
131
+ .documentHeader {
132
+ margin-top: 1.5rem;
133
+ }
134
+ }
135
+
136
+ // Top-level context
137
+ .al-hierarchy-level-0 .document-title-heading {
138
+ // background-color: red;
139
+ font-size: $font-size-h5;
140
+ font-weight: 400;
141
+ margin-bottom: ($spacer / 2);
142
+
143
+ > a {
144
+ color: $gray-dark;
145
+ }
146
+ }
147
+
148
+ // All subsequent levels
149
+ @for $i from 1 through 12 {
150
+ .al-hierarchy-level-#{$i} .document-title-heading {
151
+ font-size: $font-size-h6;
152
+ font-weight: 400;
153
+
154
+ > a {
155
+ color: $gray-dark;
156
+ }
157
+ }
158
+ }
159
+ }
160
+
161
+ // Indentation styling for all level hierarchies
162
+ @mixin hierarchy-levels {
163
+ @for $i from 1 through 12 {
164
+ .al-hierarchy-level-#{$i} {
165
+ margin-left: 10px;
166
+ // provides for n indention
167
+ &.extra-indent {
168
+ margin-left: ($i * 10) + px;
169
+ }
170
+ }
171
+ }
172
+ }
173
+
174
+ @include hierarchy-levels;
@@ -0,0 +1,10 @@
1
+ .al-document-highlight {
2
+ padding-top: 10px;
3
+ padding-left: 10px;
4
+ font-size: $font-size-xs;
5
+ font-style: italic;
6
+ em {
7
+ background-color: yellow;
8
+ font-weight: bold;
9
+ }
10
+ }