CURL would generally be better to use, but it might not exist.
fopen is more available, but http/URL usage may be blocked by config.
Relevant lines:
$targetFile = @fopen($targetUrl, 'rb');
| |
if ($targetFile === false) {
| |
throw new CommandError("Failed to download ZIP file from $targetUrl");
| |
}
|
Based on input from Ionys320: https://github.com/BookStackApp/BookStack/issues/5538#issuecomment-3819764070
]]>APP_PROXIES variable.
It explains it's use case, and gives some examples in a few cases. Loosely based on .env.example.complete
]]>If you're able to host this elsewhere, we could maybe list in the readme and/or create a page on the hacks site for additional hacks created externally.
]]>.page-content for links to /attachments/{id}. It looks up attachment names in #page-attachments, then replaces each inline link with a structured preview card (.attachment-preview) containing a header (file icon, filename link, extension badge, download action) and a body that renders the appropriate preview: PDF in a resizable <object>, DOCX via docx.renderAsync, XLSX via XLSX.utils.sheet_to_html, images/video/audio via native elements, or a fallback message if unsupported.
This change adds a self-contained install flow that builds a theme-like dist/ folder, copies required frontend assets into dist/public, and installs the custom head template into dist/layouts/parts. It also cleans up the temporary node_modules after copying and aligns the docs and metadata with the new output structure.