Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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" + '
GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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('^' + ".*" + ' GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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('^' + ".*" + ' GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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" + ' GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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('^' + ".*" + ' GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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('^' + ".*" + ' GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, '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); } })(); })(); GitHub - RubyGemsOrg/rubycentral-theme · GitHub
Skip to content

Latest commit

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Ruby Central theme for Ghost

Setup

Clone this repo first, and set it up:

git clone git@github.com:rubycentral/rubycentral-theme.git
cd rubycentral-theme
npm install

Then, set up a local Ghost install for development, and symlink in the theme:

cd ..
mkdir ghost-dev
cd ghost-dev
npm install -g ghost-cli
ghost install local

Next, symlink from the theme checkout to your local Ghost themes folder:

# in /ghost-dev
ln -s [absolute path on your machine]/rubycentral-theme ./content/themes/rubycentral-theme
ghost restart

Now, you need to activate the symlinked theme.

  1. From a fresh install, you'll need to create a fake account, like me@example.com and password 123abc123abc. Go to http://localhost:2368/ghost/#/setup.
  2. Open your local Ghost theme settings, by default localhost:2368/ghost/#/settings/design/change-theme.
  3. Click the "Advanced" button in the top right.
  4. Push "Activate" for rubycentral-theme. If you don't see it, it's not symlinked properly.
  5. Browse to localhost:2368 and you should now see the theme, but with no content. The example posts may not be styled properly, this is ok.

Finally, to seed your local Ghost install with directors, staff, and posts, you will need to import everything in imports/.

  1. Open your local Ghost experimental settings at localhost:2368/ghost/#/settings/labs
  2. Go to [https://rubycentral.ghost.io/ghost/#/settings/labs] and click "Export your content". You should get a .json file locally.
  3. On the same page, click "download redirects" and "download routes" also. We will upload these too.
  4. Click "Open Importer", and then upload the .json file.
  5. Click "Upload redirects YAML/JSON" and choose redirects.yaml.
  6. Click "Upload routes YAML" and choose routes.yaml.
  7. In /rubycentral-theme, start the live reload server and compile your JS/CSS assets, and watch for changes: npm run dev. If you do not do this, your text will look unstyled.
  8. Wait a few moments and run ghost restart. You should now see images and content, including posts.

Development

As you make changes, ideally your browser will automatically reload. You might have to refresh by hand after each change. If you can't see your changes, and you're sure that npm run dev is still going, you'll likely need to disable your browser's caching. Go to the Network tab in your dev tools and toggle "Disable cache".

Architecture decisions

Significant decisions about how the theme is built are documented in docs/adr/. Before making a non-trivial change — adding a dependency, changing how a feature works, picking between approaches — please write an ADR. Use docs/adr/template.md as a starting point. The goal isn't process for its own sake; it's making sure future contributors understand why things are the way they are, not just what they are.

Deployment

The theme will automatically check, zip, and upload to Ghost via GitHub Actions. If you want to try it yourself locally:

# Fix any CSS issues, compile your JS/CSS assets for production, and create a ZIP file
npm run zip
# Scan your theme for potential incompatibilties with gscan
npm run check

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages