QR Code Maker update

This commit is contained in:
admin 2025-07-22 12:25:12 -06:00
parent dd416f8bdf
commit 59ca2379f2
31 changed files with 401 additions and 270 deletions

View File

@ -1013,6 +1013,105 @@ body {
color: #666;
}
/* Search Result Item with QR Button */
.search-result-item {
position: relative;
padding: 12px;
border-bottom: 1px solid #e0e0e0;
}
.search-result-item:last-child {
border-bottom: none;
}
.search-result-item .make-qr-btn {
position: absolute;
top: 12px;
right: 12px;
padding: 4px 8px;
font-size: 12px;
}
/* QR Code Modal Styles */
.qr-modal {
z-index: 11000; /* Ensure QR modal is above everything else */
}
.qr-modal-content {
max-width: 400px;
text-align: center;
z-index: 11001; /* Even higher for the content */
position: relative;
}
.qr-modal-body {
padding: 30px;
}
.qr-code-image {
max-width: 256px;
height: auto;
margin: 0 auto 20px;
display: block;
border: 4px solid var(--light-color);
border-radius: var(--border-radius);
}
.qr-code-info {
margin-top: 20px;
}
.qr-code-info p {
margin-bottom: 10px;
color: var(--secondary-color);
font-size: 14px;
}
.qr-code-url {
color: var(--primary-color);
text-decoration: none;
word-break: break-all;
font-size: 14px;
}
.qr-code-url:hover {
text-decoration: underline;
}
.qr-loading {
padding: 40px;
}
/* Adjust search result layout to accommodate button */
.docs-search-results-list .search-result {
display: block;
padding-right: 100px; /* Make room for QR button */
}
/* Mobile responsiveness for QR button */
@media (max-width: 768px) {
.search-result-item .make-qr-btn {
position: static;
display: block;
width: 100%;
margin-top: 10px;
}
.docs-search-results-list .search-result {
padding-right: 12px;
}
.qr-modal-content {
width: 95%;
max-width: 350px;
z-index: 11001; /* Maintain high z-index on mobile */
}
.qr-modal {
z-index: 11000; /* Maintain high z-index on mobile */
}
}
/* Mobile responsiveness */
@media (max-width: 768px) {
.docs-search-container {
@ -1020,7 +1119,7 @@ body {
width: 100%;
margin: 10px 0;
padding: 0 0px;
/* Remove z-index */
z-index:10002/* Remove z-index */
}
.docs-search-wrapper {

View File

@ -215,18 +215,128 @@ export class MkDocsSearch {
resultsCount.textContent = 'No results';
} else {
resultsCount.textContent = `${results.length} result${results.length > 1 ? 's' : ''}`;
resultsContainer.innerHTML = results.map(result => `
<a href="${result.url}" class="search-result" target="_blank" rel="noopener">
<div class="search-result-title">${this.escapeHtml(result.title)}</div>
<div class="search-result-snippet">${result.snippet}</div>
<div class="search-result-path">${result.location}</div>
</a>
resultsContainer.innerHTML = results.map((result, index) => `
<div class="search-result-item">
<a href="${result.url}" class="search-result" target="_blank" rel="noopener">
<div class="search-result-title">${this.escapeHtml(result.title)}</div>
<div class="search-result-snippet">${result.snippet}</div>
<div class="search-result-path">${result.location}</div>
</a>
<button class="btn btn-sm btn-secondary make-qr-btn" data-url="${result.url}" data-index="${index}">
<span class="btn-icon">📱</span>
<span class="btn-text">Make QR</span>
</button>
</div>
`).join('');
// Add event listeners to QR buttons
this.attachQRButtonListeners();
}
resultsElement.classList.remove('hidden');
}
// Add new method to handle QR button clicks
attachQRButtonListeners() {
const qrButtons = document.querySelectorAll('.make-qr-btn');
qrButtons.forEach(button => {
button.addEventListener('click', (e) => {
e.preventDefault();
e.stopPropagation();
const url = button.getAttribute('data-url');
this.showQRCodeModal(url);
});
});
}
// Add method to show QR code modal
showQRCodeModal(url) {
// Create or get existing QR modal
let modal = document.getElementById('qr-code-modal');
if (!modal) {
modal = this.createQRModal();
document.body.appendChild(modal);
}
// Ensure modal has correct z-index and class
modal.classList.add('qr-modal');
modal.style.zIndex = '11000'; // Force above all overlays
// Update modal content
const qrImage = modal.querySelector('.qr-code-image');
const qrUrl = modal.querySelector('.qr-code-url');
const qrLoading = modal.querySelector('.qr-loading');
// Show modal and loading state
modal.classList.remove('hidden');
qrLoading.style.display = 'block';
qrImage.style.display = 'none';
// Update URL display
qrUrl.textContent = url;
qrUrl.href = url;
// Generate QR code
const qrApiUrl = `/api/qr?text=${encodeURIComponent(url)}&size=256`;
qrImage.src = qrApiUrl;
qrImage.onload = () => {
qrLoading.style.display = 'none';
qrImage.style.display = 'block';
};
qrImage.onerror = () => {
qrLoading.innerHTML = '<p style="color: var(--danger-color);">Failed to generate QR code</p>';
};
}
// Add method to create QR modal
createQRModal() {
const modal = document.createElement('div');
modal.id = 'qr-code-modal';
modal.className = 'modal qr-modal'; // Ensure both classes for styling
modal.innerHTML = `
<div class="modal-content qr-modal-content">
<div class="modal-header">
<h2>QR Code</h2>
<button class="modal-close" id="close-qr-modal">&times;</button>
</div>
<div class="modal-body qr-modal-body">
<div class="qr-loading">
<div class="spinner"></div>
<p>Generating QR code...</p>
</div>
<img class="qr-code-image" alt="QR Code" style="display: none;">
<div class="qr-code-info">
<p>Scan this QR code to open:</p>
<a class="qr-code-url" target="_blank" rel="noopener"></a>
</div>
</div>
</div>
`;
// Add close functionality
const closeBtn = modal.querySelector('#close-qr-modal');
closeBtn.addEventListener('click', () => {
modal.classList.add('hidden');
});
// Close on background click
modal.addEventListener('click', (e) => {
if (e.target === modal) {
modal.classList.add('hidden');
}
});
// Close on Escape key
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape' && !modal.classList.contains('hidden')) {
modal.classList.add('hidden');
}
});
return modal;
}
closeResults(inputElement, resultsElement) {
resultsElement.classList.add('hidden');
inputElement.value = '';

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -7,10 +7,10 @@
"stars_count": 0,
"forks_count": 0,
"open_issues_count": 10,
"updated_at": "2025-07-19T15:31:47-06:00",
"updated_at": "2025-07-20T10:26:01-06:00",
"created_at": "2025-05-28T14:54:59-06:00",
"clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git",
"ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git",
"default_branch": "main",
"last_build_update": "2025-07-19T15:31:47-06:00"
"last_build_update": "2025-07-20T10:26:01-06:00"
}

View File

@ -4,10 +4,10 @@
"description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.",
"html_url": "https://github.com/anthropics/claude-code",
"language": "PowerShell",
"stars_count": 24630,
"forks_count": 1348,
"open_issues_count": 2163,
"updated_at": "2025-07-19T21:51:01Z",
"stars_count": 24785,
"forks_count": 1360,
"open_issues_count": 2190,
"updated_at": "2025-07-20T17:36:39Z",
"created_at": "2025-02-22T17:41:21Z",
"clone_url": "https://github.com/anthropics/claude-code.git",
"ssh_url": "git@github.com:anthropics/claude-code.git",

View File

@ -4,10 +4,10 @@
"description": "VS Code in the browser",
"html_url": "https://github.com/coder/code-server",
"language": "TypeScript",
"stars_count": 72971,
"forks_count": 6111,
"stars_count": 72988,
"forks_count": 6112,
"open_issues_count": 139,
"updated_at": "2025-07-19T21:22:59Z",
"updated_at": "2025-07-20T17:46:07Z",
"created_at": "2019-02-27T16:50:41Z",
"clone_url": "https://github.com/coder/code-server.git",
"ssh_url": "git@github.com:coder/code-server.git",

View File

@ -4,13 +4,13 @@
"description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.",
"html_url": "https://github.com/gethomepage/homepage",
"language": "JavaScript",
"stars_count": 24890,
"forks_count": 1543,
"stars_count": 24903,
"forks_count": 1544,
"open_issues_count": 2,
"updated_at": "2025-07-19T20:23:14Z",
"updated_at": "2025-07-20T17:37:56Z",
"created_at": "2022-08-24T07:29:42Z",
"clone_url": "https://github.com/gethomepage/homepage.git",
"ssh_url": "git@github.com:gethomepage/homepage.git",
"default_branch": "dev",
"last_build_update": "2025-07-19T12:12:42Z"
"last_build_update": "2025-07-20T12:13:09Z"
}

View File

@ -4,13 +4,13 @@
"description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD",
"html_url": "https://github.com/go-gitea/gitea",
"language": "Go",
"stars_count": 49633,
"stars_count": 49648,
"forks_count": 5914,
"open_issues_count": 2730,
"updated_at": "2025-07-19T20:29:59Z",
"open_issues_count": 2728,
"updated_at": "2025-07-20T16:44:42Z",
"created_at": "2016-11-01T02:13:26Z",
"clone_url": "https://github.com/go-gitea/gitea.git",
"ssh_url": "git@github.com:go-gitea/gitea.git",
"default_branch": "main",
"last_build_update": "2025-07-18T14:02:57Z"
"last_build_update": "2025-07-20T01:49:36Z"
}

View File

@ -4,13 +4,13 @@
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.",
"html_url": "https://github.com/knadh/listmonk",
"language": "Go",
"stars_count": 17349,
"forks_count": 1674,
"open_issues_count": 103,
"updated_at": "2025-07-19T19:01:50Z",
"stars_count": 17355,
"forks_count": 1673,
"open_issues_count": 98,
"updated_at": "2025-07-20T13:46:34Z",
"created_at": "2019-06-26T05:08:39Z",
"clone_url": "https://github.com/knadh/listmonk.git",
"ssh_url": "git@github.com:knadh/listmonk.git",
"default_branch": "master",
"last_build_update": "2025-07-17T13:58:21Z"
"last_build_update": "2025-07-20T12:18:04Z"
}

View File

@ -4,10 +4,10 @@
"description": "Create & scan cute qr codes easily \ud83d\udc7e",
"html_url": "https://github.com/lyqht/mini-qr",
"language": "Vue",
"stars_count": 1288,
"stars_count": 1291,
"forks_count": 172,
"open_issues_count": 12,
"updated_at": "2025-07-19T16:11:51Z",
"open_issues_count": 13,
"updated_at": "2025-07-20T11:49:09Z",
"created_at": "2023-04-21T14:20:14Z",
"clone_url": "https://github.com/lyqht/mini-qr.git",
"ssh_url": "git@github.com:lyqht/mini-qr.git",

View File

@ -4,13 +4,13 @@
"description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.",
"html_url": "https://github.com/n8n-io/n8n",
"language": "TypeScript",
"stars_count": 120972,
"forks_count": 36362,
"open_issues_count": 983,
"updated_at": "2025-07-19T21:52:44Z",
"stars_count": 121441,
"forks_count": 36499,
"open_issues_count": 987,
"updated_at": "2025-07-20T17:49:04Z",
"created_at": "2019-06-22T09:24:21Z",
"clone_url": "https://github.com/n8n-io/n8n.git",
"ssh_url": "git@github.com:n8n-io/n8n.git",
"default_branch": "master",
"last_build_update": "2025-07-18T21:42:36Z"
"last_build_update": "2025-07-20T14:58:33Z"
}

View File

@ -4,10 +4,10 @@
"description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 Open Source Airtable Alternative",
"html_url": "https://github.com/nocodb/nocodb",
"language": "TypeScript",
"stars_count": 55862,
"forks_count": 4023,
"stars_count": 55879,
"forks_count": 4026,
"open_issues_count": 677,
"updated_at": "2025-07-19T21:43:09Z",
"updated_at": "2025-07-20T17:42:16Z",
"created_at": "2017-10-29T18:51:48Z",
"clone_url": "https://github.com/nocodb/nocodb.git",
"ssh_url": "git@github.com:nocodb/nocodb.git",

View File

@ -4,10 +4,10 @@
"description": "Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models.",
"html_url": "https://github.com/ollama/ollama",
"language": "Go",
"stars_count": 146966,
"forks_count": 12450,
"stars_count": 147025,
"forks_count": 12459,
"open_issues_count": 1920,
"updated_at": "2025-07-19T21:40:59Z",
"updated_at": "2025-07-20T17:32:08Z",
"created_at": "2023-06-26T19:39:32Z",
"clone_url": "https://github.com/ollama/ollama.git",
"ssh_url": "git@github.com:ollama/ollama.git",

View File

@ -4,10 +4,10 @@
"description": "Documentation that simply works",
"html_url": "https://github.com/squidfunk/mkdocs-material",
"language": "Python",
"stars_count": 23942,
"forks_count": 3816,
"stars_count": 23952,
"forks_count": 3817,
"open_issues_count": 7,
"updated_at": "2025-07-19T18:43:32Z",
"updated_at": "2025-07-20T17:36:49Z",
"created_at": "2016-01-28T22:09:23Z",
"clone_url": "https://github.com/squidfunk/mkdocs-material.git",
"ssh_url": "git@github.com:squidfunk/mkdocs-material.git",

View File

@ -223,7 +223,7 @@
}
.stat-label {
color: var(--text-light);
color: var(--text-dark);
font-size: 0.875rem;
}
@ -611,6 +611,7 @@
opacity: 0.9;
margin-bottom: 0.75rem;
line-height: 1.4;
color: #dfbfe6;
}
.site-status {
@ -1034,7 +1035,7 @@
<div class="hero-badge">🚀 Campaign Documentation Reimagined</div>
<h1>Power Tools for Modern Campaign Documentation</h1>
<p class="hero-subtitle">
Give your canvassers instant answers at the door. Turn your campaign knowledge into a searchable,
Give your canvassers instant answers at the door. Turn your campaign website & knowledge into a searchable,
mobile-first documentation system that actually works in the field. Your data, your servers, your control.
</p>
<div class="hero-cta">
@ -1092,7 +1093,7 @@
<div class="problem-card">
<div class="problem-icon">🔒</div>
<h3>No Data Control</h3>
<p>Your voter data on US servers. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
<p>Your data is locked behind expensive subscriptions. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
</div>
<div class="problem-card">
<div class="problem-icon">📵</div>
@ -1199,6 +1200,24 @@
<img src="assets/coder_square.png" alt="Split view showing markdown editor on left, live preview on right with campaign branding" class="mobile-screenshot">
</div>
</div>
<div class="solution-showcase">
<div class="showcase-content">
<h3>Beautiul Websites</h3>
<p>Build and deploy beautiful websites & documentation using the tools already used by the worlds largest organizations.</p>
<ul class="feature-list">
<li>Social media cards</li>
<li>Fully customizable</li>
<li>Custom pages and landers</li>
<li>Integrated blogging</li>
<li>Supports 60+ languages</li>
</ul>
</div>
<div class="screenshot-placeholder">
<img src="assets/built.png" alt="Map interface showing color-coded houses, with popup showing voter details and previous interaction history" class="mobile-screenshot">
</div>
</div>
</div>
</section>
@ -1217,7 +1236,7 @@
<div>
<h3>Smart Documentation Hub</h3>
<div class="tool-description">MkDocs + Code Server</div>
</div>
mkdocs/docs/blog </div>
</div>
<p>Create beautiful, searchable documentation that your team will actually use.</p>
<ul class="tool-features">
@ -1489,7 +1508,7 @@
<section class="testimonial-section">
<div class="testimonial-content">
<h2>Real Sites, Real Results</h2>
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-light);">
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-dark);">
Live sites powered by Changemaker Lite in production today
</p>
@ -1580,51 +1599,6 @@
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="footer-content">
<div class="footer-section">
<h4>Product</h4>
<ul class="footer-links">
<li><a href="/features">Features</a></li>
<li><a href="/pricing">Pricing</a></li>
<li><a href="/demo">Live Demo</a></li>
<li><a href="/case-studies">Case Studies</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Resources</h4>
<ul class="footer-links">
<li><a href="/docs">Documentation</a></li>
<li><a href="/tutorials">Video Tutorials</a></li>
<li><a href="/api">API Reference</a></li>
<li><a href="/community">Community Forum</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Company</h4>
<ul class="footer-links">
<li><a href="/about">About Us</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/open-source">Open-Source</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Connect</h4>
<ul class="footer-links">
<li><a href="https://github.com/changemaker-lite">GitHub</a></li>
<li><a href="https://twitter.com/cmlite">Twitter</a></li>
<li><a href="/newsletter">Newsletter</a></li>
<li><a href="/support">Support</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 Changemaker Lite. Open source and proud. Built with ❤️ for progressive campaigns in Canada.</p>
</div>
</footer>
<script>
// Add scroll effect to header
window.addEventListener('scroll', function() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View File

@ -7,10 +7,10 @@
"stars_count": 0,
"forks_count": 0,
"open_issues_count": 10,
"updated_at": "2025-07-19T15:31:47-06:00",
"updated_at": "2025-07-20T10:26:01-06:00",
"created_at": "2025-05-28T14:54:59-06:00",
"clone_url": "https://gitea.bnkops.com/admin/changemaker.lite.git",
"ssh_url": "git@gitea.bnkops.com:admin/changemaker.lite.git",
"default_branch": "main",
"last_build_update": "2025-07-19T15:31:47-06:00"
"last_build_update": "2025-07-20T10:26:01-06:00"
}

View File

@ -4,10 +4,10 @@
"description": "Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.",
"html_url": "https://github.com/anthropics/claude-code",
"language": "PowerShell",
"stars_count": 24630,
"forks_count": 1348,
"open_issues_count": 2163,
"updated_at": "2025-07-19T21:51:01Z",
"stars_count": 24785,
"forks_count": 1360,
"open_issues_count": 2190,
"updated_at": "2025-07-20T17:36:39Z",
"created_at": "2025-02-22T17:41:21Z",
"clone_url": "https://github.com/anthropics/claude-code.git",
"ssh_url": "git@github.com:anthropics/claude-code.git",

View File

@ -4,10 +4,10 @@
"description": "VS Code in the browser",
"html_url": "https://github.com/coder/code-server",
"language": "TypeScript",
"stars_count": 72971,
"forks_count": 6111,
"stars_count": 72988,
"forks_count": 6112,
"open_issues_count": 139,
"updated_at": "2025-07-19T21:22:59Z",
"updated_at": "2025-07-20T17:46:07Z",
"created_at": "2019-02-27T16:50:41Z",
"clone_url": "https://github.com/coder/code-server.git",
"ssh_url": "git@github.com:coder/code-server.git",

View File

@ -4,13 +4,13 @@
"description": "A highly customizable homepage (or startpage / application dashboard) with Docker and service API integrations.",
"html_url": "https://github.com/gethomepage/homepage",
"language": "JavaScript",
"stars_count": 24890,
"forks_count": 1543,
"stars_count": 24903,
"forks_count": 1544,
"open_issues_count": 2,
"updated_at": "2025-07-19T20:23:14Z",
"updated_at": "2025-07-20T17:37:56Z",
"created_at": "2022-08-24T07:29:42Z",
"clone_url": "https://github.com/gethomepage/homepage.git",
"ssh_url": "git@github.com:gethomepage/homepage.git",
"default_branch": "dev",
"last_build_update": "2025-07-19T12:12:42Z"
"last_build_update": "2025-07-20T12:13:09Z"
}

View File

@ -4,13 +4,13 @@
"description": "Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD",
"html_url": "https://github.com/go-gitea/gitea",
"language": "Go",
"stars_count": 49633,
"stars_count": 49648,
"forks_count": 5914,
"open_issues_count": 2730,
"updated_at": "2025-07-19T20:29:59Z",
"open_issues_count": 2728,
"updated_at": "2025-07-20T16:44:42Z",
"created_at": "2016-11-01T02:13:26Z",
"clone_url": "https://github.com/go-gitea/gitea.git",
"ssh_url": "git@github.com:go-gitea/gitea.git",
"default_branch": "main",
"last_build_update": "2025-07-18T14:02:57Z"
"last_build_update": "2025-07-20T01:49:36Z"
}

View File

@ -4,13 +4,13 @@
"description": "High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.",
"html_url": "https://github.com/knadh/listmonk",
"language": "Go",
"stars_count": 17349,
"forks_count": 1674,
"open_issues_count": 103,
"updated_at": "2025-07-19T19:01:50Z",
"stars_count": 17355,
"forks_count": 1673,
"open_issues_count": 98,
"updated_at": "2025-07-20T13:46:34Z",
"created_at": "2019-06-26T05:08:39Z",
"clone_url": "https://github.com/knadh/listmonk.git",
"ssh_url": "git@github.com:knadh/listmonk.git",
"default_branch": "master",
"last_build_update": "2025-07-17T13:58:21Z"
"last_build_update": "2025-07-20T12:18:04Z"
}

View File

@ -4,10 +4,10 @@
"description": "Create & scan cute qr codes easily \ud83d\udc7e",
"html_url": "https://github.com/lyqht/mini-qr",
"language": "Vue",
"stars_count": 1288,
"stars_count": 1291,
"forks_count": 172,
"open_issues_count": 12,
"updated_at": "2025-07-19T16:11:51Z",
"open_issues_count": 13,
"updated_at": "2025-07-20T11:49:09Z",
"created_at": "2023-04-21T14:20:14Z",
"clone_url": "https://github.com/lyqht/mini-qr.git",
"ssh_url": "git@github.com:lyqht/mini-qr.git",

View File

@ -4,13 +4,13 @@
"description": "Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.",
"html_url": "https://github.com/n8n-io/n8n",
"language": "TypeScript",
"stars_count": 120972,
"forks_count": 36362,
"open_issues_count": 983,
"updated_at": "2025-07-19T21:52:44Z",
"stars_count": 121441,
"forks_count": 36499,
"open_issues_count": 987,
"updated_at": "2025-07-20T17:49:04Z",
"created_at": "2019-06-22T09:24:21Z",
"clone_url": "https://github.com/n8n-io/n8n.git",
"ssh_url": "git@github.com:n8n-io/n8n.git",
"default_branch": "master",
"last_build_update": "2025-07-18T21:42:36Z"
"last_build_update": "2025-07-20T14:58:33Z"
}

View File

@ -4,10 +4,10 @@
"description": "\ud83d\udd25 \ud83d\udd25 \ud83d\udd25 Open Source Airtable Alternative",
"html_url": "https://github.com/nocodb/nocodb",
"language": "TypeScript",
"stars_count": 55862,
"forks_count": 4023,
"stars_count": 55879,
"forks_count": 4026,
"open_issues_count": 677,
"updated_at": "2025-07-19T21:43:09Z",
"updated_at": "2025-07-20T17:42:16Z",
"created_at": "2017-10-29T18:51:48Z",
"clone_url": "https://github.com/nocodb/nocodb.git",
"ssh_url": "git@github.com:nocodb/nocodb.git",

View File

@ -4,10 +4,10 @@
"description": "Get up and running with Llama 3.3, DeepSeek-R1, Phi-4, Gemma 3, Mistral Small 3.1 and other large language models.",
"html_url": "https://github.com/ollama/ollama",
"language": "Go",
"stars_count": 146966,
"forks_count": 12450,
"stars_count": 147025,
"forks_count": 12459,
"open_issues_count": 1920,
"updated_at": "2025-07-19T21:40:59Z",
"updated_at": "2025-07-20T17:32:08Z",
"created_at": "2023-06-26T19:39:32Z",
"clone_url": "https://github.com/ollama/ollama.git",
"ssh_url": "git@github.com:ollama/ollama.git",

View File

@ -4,10 +4,10 @@
"description": "Documentation that simply works",
"html_url": "https://github.com/squidfunk/mkdocs-material",
"language": "Python",
"stars_count": 23942,
"forks_count": 3816,
"stars_count": 23952,
"forks_count": 3817,
"open_issues_count": 7,
"updated_at": "2025-07-19T18:43:32Z",
"updated_at": "2025-07-20T17:36:49Z",
"created_at": "2016-01-28T22:09:23Z",
"clone_url": "https://github.com/squidfunk/mkdocs-material.git",
"ssh_url": "git@github.com:squidfunk/mkdocs-material.git",

View File

@ -223,7 +223,7 @@
}
.stat-label {
color: var(--text-light);
color: var(--text-dark);
font-size: 0.875rem;
}
@ -611,6 +611,7 @@
opacity: 0.9;
margin-bottom: 0.75rem;
line-height: 1.4;
color: #dfbfe6;
}
.site-status {
@ -1034,7 +1035,7 @@
<div class="hero-badge">🚀 Campaign Documentation Reimagined</div>
<h1>Power Tools for Modern Campaign Documentation</h1>
<p class="hero-subtitle">
Give your canvassers instant answers at the door. Turn your campaign knowledge into a searchable,
Give your canvassers instant answers at the door. Turn your campaign website & knowledge into a searchable,
mobile-first documentation system that actually works in the field. Your data, your servers, your control.
</p>
<div class="hero-cta">
@ -1092,7 +1093,7 @@
<div class="problem-card">
<div class="problem-icon">🔒</div>
<h3>No Data Control</h3>
<p>Your voter data on US servers. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
<p>Your data is locked behind expensive subscriptions. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
</div>
<div class="problem-card">
<div class="problem-icon">📵</div>
@ -1199,6 +1200,24 @@
<img src="assets/coder_square.png" alt="Split view showing markdown editor on left, live preview on right with campaign branding" class="mobile-screenshot">
</div>
</div>
<div class="solution-showcase">
<div class="showcase-content">
<h3>Beautiul Websites</h3>
<p>Build and deploy beautiful websites & documentation using the tools already used by the worlds largest organizations.</p>
<ul class="feature-list">
<li>Social media cards</li>
<li>Fully customizable</li>
<li>Custom pages and landers</li>
<li>Integrated blogging</li>
<li>Supports 60+ languages</li>
</ul>
</div>
<div class="screenshot-placeholder">
<img src="assets/built.png" alt="Map interface showing color-coded houses, with popup showing voter details and previous interaction history" class="mobile-screenshot">
</div>
</div>
</div>
</section>
@ -1217,7 +1236,7 @@
<div>
<h3>Smart Documentation Hub</h3>
<div class="tool-description">MkDocs + Code Server</div>
</div>
mkdocs/docs/blog </div>
</div>
<p>Create beautiful, searchable documentation that your team will actually use.</p>
<ul class="tool-features">
@ -1489,7 +1508,7 @@
<section class="testimonial-section">
<div class="testimonial-content">
<h2>Real Sites, Real Results</h2>
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-light);">
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-dark);">
Live sites powered by Changemaker Lite in production today
</p>
@ -1580,51 +1599,6 @@
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="footer-content">
<div class="footer-section">
<h4>Product</h4>
<ul class="footer-links">
<li><a href="/features">Features</a></li>
<li><a href="/pricing">Pricing</a></li>
<li><a href="/demo">Live Demo</a></li>
<li><a href="/case-studies">Case Studies</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Resources</h4>
<ul class="footer-links">
<li><a href="/docs">Documentation</a></li>
<li><a href="/tutorials">Video Tutorials</a></li>
<li><a href="/api">API Reference</a></li>
<li><a href="/community">Community Forum</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Company</h4>
<ul class="footer-links">
<li><a href="/about">About Us</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/open-source">Open-Source</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Connect</h4>
<ul class="footer-links">
<li><a href="https://github.com/changemaker-lite">GitHub</a></li>
<li><a href="https://twitter.com/cmlite">Twitter</a></li>
<li><a href="/newsletter">Newsletter</a></li>
<li><a href="/support">Support</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 Changemaker Lite. Open source and proud. Built with ❤️ for progressive campaigns in Canada.</p>
</div>
</footer>
<script>
// Add scroll effect to header
window.addEventListener('scroll', function() {

View File

@ -223,7 +223,7 @@
}
.stat-label {
color: var(--text-light);
color: var(--text-dark);
font-size: 0.875rem;
}
@ -611,6 +611,7 @@
opacity: 0.9;
margin-bottom: 0.75rem;
line-height: 1.4;
color: #dfbfe6;
}
.site-status {
@ -1034,7 +1035,7 @@
<div class="hero-badge">🚀 Campaign Documentation Reimagined</div>
<h1>Power Tools for Modern Campaign Documentation</h1>
<p class="hero-subtitle">
Give your canvassers instant answers at the door. Turn your campaign knowledge into a searchable,
Give your canvassers instant answers at the door. Turn your campaign website & knowledge into a searchable,
mobile-first documentation system that actually works in the field. Your data, your servers, your control.
</p>
<div class="hero-cta">
@ -1092,7 +1093,7 @@
<div class="problem-card">
<div class="problem-icon">🔒</div>
<h3>No Data Control</h3>
<p>Your voter data on US servers. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
<p>Your data is locked behind expensive subscriptions. Your strategies in corporate clouds. Your movement's future in someone else's hands.</p>
</div>
<div class="problem-card">
<div class="problem-icon">📵</div>
@ -1199,6 +1200,24 @@
<img src="assets/coder_square.png" alt="Split view showing markdown editor on left, live preview on right with campaign branding" class="mobile-screenshot">
</div>
</div>
<div class="solution-showcase">
<div class="showcase-content">
<h3>Beautiul Websites</h3>
<p>Build and deploy beautiful websites & documentation using the tools already used by the worlds largest organizations.</p>
<ul class="feature-list">
<li>Social media cards</li>
<li>Fully customizable</li>
<li>Custom pages and landers</li>
<li>Integrated blogging</li>
<li>Supports 60+ languages</li>
</ul>
</div>
<div class="screenshot-placeholder">
<img src="assets/built.png" alt="Map interface showing color-coded houses, with popup showing voter details and previous interaction history" class="mobile-screenshot">
</div>
</div>
</div>
</section>
@ -1217,7 +1236,7 @@
<div>
<h3>Smart Documentation Hub</h3>
<div class="tool-description">MkDocs + Code Server</div>
</div>
mkdocs/docs/blog </div>
</div>
<p>Create beautiful, searchable documentation that your team will actually use.</p>
<ul class="tool-features">
@ -1489,7 +1508,7 @@
<section class="testimonial-section">
<div class="testimonial-content">
<h2>Real Sites, Real Results</h2>
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-light);">
<p style="text-align: center; margin-bottom: 3rem; color: var(--text-dark);">
Live sites powered by Changemaker Lite in production today
</p>
@ -1580,51 +1599,6 @@
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="footer-content">
<div class="footer-section">
<h4>Product</h4>
<ul class="footer-links">
<li><a href="/features">Features</a></li>
<li><a href="/pricing">Pricing</a></li>
<li><a href="/demo">Live Demo</a></li>
<li><a href="/case-studies">Case Studies</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Resources</h4>
<ul class="footer-links">
<li><a href="/docs">Documentation</a></li>
<li><a href="/tutorials">Video Tutorials</a></li>
<li><a href="/api">API Reference</a></li>
<li><a href="/community">Community Forum</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Company</h4>
<ul class="footer-links">
<li><a href="/about">About Us</a></li>
<li><a href="/blog">Blog</a></li>
<li><a href="/open-source">Open-Source</a></li>
<li><a href="/contact">Contact</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Connect</h4>
<ul class="footer-links">
<li><a href="https://github.com/changemaker-lite">GitHub</a></li>
<li><a href="https://twitter.com/cmlite">Twitter</a></li>
<li><a href="/newsletter">Newsletter</a></li>
<li><a href="/support">Support</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>&copy; 2024 Changemaker Lite. Open source and proud. Built with ❤️ for progressive campaigns in Canada.</p>
</div>
</footer>
<script>
// Add scroll effect to header
window.addEventListener('scroll', function() {

View File

@ -2,142 +2,142 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://cmlite.org/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/test/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/adv/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/adv/ansible/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/adv/vscode-ssh/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/blog/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/blog/2025/07/03/blog-1/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/blog/2025/07/10/2/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/map/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/server/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/build/site/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/cloudflare-config/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/coder/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/map/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/config/mkdocs/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/how%20to/canvass/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/manual/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/manual/map/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/phil/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/phil/cost-comparison/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/code-server/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/gitea/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/homepage/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/listmonk/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/map/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/mini-qr/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/mkdocs/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/n8n/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/nocodb/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/postgresql/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/services/static-server/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
<url>
<loc>https://cmlite.org/blog/archive/2025/</loc>
<lastmod>2025-07-19</lastmod>
<lastmod>2025-07-20</lastmod>
</url>
</urlset>

Binary file not shown.