Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
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;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Restructure generated site data for searchbar ui by ang-zeyu · Pull Request #1006 · MarkBind/markbind · GitHub
Skip to content

Restructure generated site data for searchbar ui - #1006

Merged
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization
Feb 15, 2020
Merged

Restructure generated site data for searchbar ui#1006
yamgent merged 1 commit into
MarkBind:masterfrom
ang-zeyu:searchbar-ui-organization

Conversation

@ang-zeyu

@ang-zeyuang-zeyu commented Jan 31, 2020

Copy link
Copy Markdown
Contributor

What is the purpose of this pull request? (put "X" next to an item, remove the rest)

• [x] Enhancement to an existing feature

Resolves#994
Requires MarkBind/vue-strap#126 ( searchbar ui for vue-strap )

What is the rationale for this request?
Generated site data for the searchbar needs to be restructured to sift out the keywords from the heading deterministically.

What changes did you make? (Give an overview)
Generated site data:

  • headings now store only the id:'heading text...' pair instead of id:'heading text... | concatenated keywords ...'
  • keywords for headings are now stored in the headingKeywords field
  • Removed concatenateHeadingsAndKeywords which is no longer needed

Provide some example code that this change will affect:

New site data:

constsiteData={enableSearch: this.siteConfig.enableSearch,pages: this.pages.filter(page=>page.searchable).map(page=>({
...page.frontMatter,headings: page.headings,headingKeywords: page.keywords,})),};

Is there anything you'd like reviewers to focus on?
na

Testing instructions:
npm run test should pass

Proposed commit message: (wrap lines at 72 characters)

Restructure generated site data for searchbar ui

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.

However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.

Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.

@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on latest, no conflicts

Keywords tied to a heading are appended to the heading with a prepending
'|' character.
This is so that the '|' character would serve as a visual separator
between the heading and the keyword.
However, it is thus not possible to extract a keyword from its heading
deterministically, as a heading can also include the '|' character.
Let's move the keywords to its own field, allowing the searchbar to
extract a heading's keyword from it.
@ang-zeyu
ang-zeyuforce-pushed the searchbar-ui-organization branch from c2f3d64 to b714c19CompareFebruary 11, 2020 11:00
@ang-zeyu

Copy link
Copy Markdown
ContributorAuthor

Rebased on the latest master, no conflicts / changes otherwise

@yamgent
yamgent merged commit 0dde42d into MarkBind:masterFeb 15, 2020
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve default search UI organization

3 participants

@ang-zeyu@marvinchin@yamgent