Strip personal data from templates so the theme ships clean for any deployer. Collection pages now use generatePageOnEmptyData so empty post types show encouraging placeholders instead of 404s. Navigation is conditional on enabled post types and installed plugins. Sidebar widgets split into individual components with plugin-aware visibility. Slashes page explains required plugins for root-level page creation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
878 B
JavaScript
35 lines
878 B
JavaScript
/**
|
|
* Blogroll Status Data
|
|
* Checks if the blogroll API backend is available at build time.
|
|
* Used for conditional navigation — the blogroll page itself loads data client-side.
|
|
*/
|
|
|
|
import EleventyFetch from "@11ty/eleventy-fetch";
|
|
|
|
const INDIEKIT_URL = process.env.SITE_URL || "https://example.com";
|
|
|
|
export default async function () {
|
|
try {
|
|
const url = `${INDIEKIT_URL}/blogrollapi/api/status`;
|
|
console.log(`[blogrollStatus] Checking API: ${url}`);
|
|
const data = await EleventyFetch(url, {
|
|
duration: "15m",
|
|
type: "json",
|
|
});
|
|
console.log("[blogrollStatus] API available");
|
|
return {
|
|
available: true,
|
|
source: "indiekit",
|
|
...data,
|
|
};
|
|
} catch (error) {
|
|
console.log(
|
|
`[blogrollStatus] API unavailable: ${error.message}`
|
|
);
|
|
return {
|
|
available: false,
|
|
source: "unavailable",
|
|
};
|
|
}
|
|
}
|