adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
adunofaiur edited this page May 31, 2014 · 3 revisions

Table of Contents

MetadataViewModel

MetadataViewModels are held in an object called metadataFields. In order to display metadata in a custom interface, your application must be able to parse these objects for metadata. See MICE.buildMetadatatable for an example.

MetadataLoader.render()

The simplest way to get displayable metadata is to call MetadataLoader.render(). MetadataLoader.render() accepts four or five parameters:

1. renderer - a function built by the user to display metadata gathered by the MetadataLoader. After creating a MetadataViewModel, MetadataLoader will call the renderer, supplying it with the task and metadataFields parameters. See MICE.render in mice.js for an example.

2. container - an HTML node to render metadata in. This container can be accessed in your rendered function by calling task.visual.

3. url - the target webpage's url

4. isRoot - a boolean flag that communicates whether the metadata being requested is the parent of other metadata in container'. When in doubt, set to true.

5. clipping - an optional metadata clipping. If you already have parsed metadata to render, pass it in here.

API Documentation

Loading Metadata and Meta-Metadata

SEMANTIC_SERVICE_URL
  • The base URL to the BigSemantics web service. By default, this points to the service hosted at the Interface Ecology Lab. Alternatively, you can check out the BigSemanticsService project, host your own instance of the service, and points this variable to it so that the library can use it.
MetadataLoader.getMetadata(url, callback)
  • Extracts metadata for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the extracted metadata, as an object.
  • The extracted metadata objects are also called "documents". All extracted metadata objects will be placed in a document collection.
MetadataLoader.getMmdByUrl(url, callback)
  • Loads the meta-metadata wrapper for the given URL from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.getMmdByName(name, callback)
  • Loads the meta-metadata wrapper with the given name from the service, and call the callback function when it is ready. The passed in callback function should accept one parameter which is the corresponding meta-metadata object, as an object.
MetadataLoader.clearDocumentCollection()
  • Clears the collection of documents (metadata objects) that have been loaded or rendered.

Preparing Metadata for Presentation

MetadataLoader.isRenderedDocument(url)
  • Checks if a given URL has been rendered already. This can be useful if you want to avoid presenting encountered documents repeatedly to the user. Returns true if the document has been encountered, otherwise false.
MetadataLoader.isFieldVisible(mmdField, metadata, url, parentField)
  • Checks if a metadata field should be rendered or not. It uses not only the field value, but also the associated presentation rules, types of the field, and the encompassing field to determine. Returns true if the field should be rendered, otherwise false.
MetadataLoader.getMetadataViewModel(parentField, mmdKids, metadata, depth ,child_value_as_label, taskUrl)
Constructs and returns a MetadataViewModel object, which recursively integrates extracted metadata and the corresponding meta-metadata wrapper.
MetadataLoader.hasVisibleMetadata(viewModelFields)
  • Checks if a set of MetadataViewModel objects contain contents that need to be rendered. This can be useful when the application needs to skip rendering empty containers. Returns true if there are contents that should be rendered, otherwise false.

Utility functions

MetadataLoader.getImageSource(viewModel)
  • Extracts the source URL of an image from its MetadataViewModel object.
MetadataLoader.toDisplayCase(s)
  • Converts a type or field name from underscore_separated_format to Display Ready Forms.
MetadataLoader.cleanText(s)
  • Cleans newlines and other control characters from the input string.