QR Code Maker update
This commit is contained in:
parent
dd416f8bdf
commit
59ca2379f2
@ -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 {
|
||||
|
||||
@ -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">×</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 = '';
|
||||
|
||||
BIN
mkdocs/docs/assets/built.png
Normal file
BIN
mkdocs/docs/assets/built.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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>© 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() {
|
||||
|
||||
BIN
mkdocs/site/assets/built.png
Normal file
BIN
mkdocs/site/assets/built.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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"
|
||||
}
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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>© 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() {
|
||||
|
||||
@ -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>© 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() {
|
||||
|
||||
@ -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.
Loading…
x
Reference in New Issue
Block a user