github silexlabs/Silex v3.10.0

48 minutes ago

Silex v3.10.0 is out, on v3.silex.me and as a desktop app below. Silex Desktop now keeps the history of your websites with git, publishes to GitLab, FTP and SFTP.

This is a major step for Silex Desktop: four months of work since v3.9.0, six test versions, 99 merged changes by 16 people, and the first stable version with the parts funded by NLnet.

Before you update

  • Pages are now published as folders: /about/ instead of /about.html. Links inside your website are updated, but links from other websites to the old .html addresses will break
  • The online version no longer publishes by FTP or as a zip file. To publish to your own web host, use Silex Desktop or GitLab (how to publish by FTP or SFTP)
  • The online version can no longer open websites stored on an FTP server. Your files stay on your server. To keep editing such a website, move it to Silex Desktop (how to move it)
  • Publishing by FTP or SFTP from Silex Desktop deletes the files on the server that are not in your website: publish to a new or empty folder (how it works)
  • When you open a website made with an older version, Silex shows a window with the changes it needs to make. For example, "Pagination items | first" becomes "Page item". Click "Update and save my website". "Leave without updating" takes you back to your websites and changes nothing. The window is in English and French
  • CMS: on a collection page, the current item is now "Page item". It works with Eleventy and Zola. Silex replaces the old "Pagination items | first" for you when you update your website
  • The second number of the slice filter is now a length, like in Liquid. Check the lists that use it (#1939)

What's new

  • Git history and a new dashboard. Silex Desktop makes a git commit in the folder of your website each time you save, when git is installed on your computer. In the new dashboard, each website card shows if the website is live and what needs you, for example changes not sent yet. The template cards open the template gallery on silex.me (#1815, #1885, #1897, #1915). Funded by NLnet (see what's funded)
  • Publish to GitLab from Silex Desktop. Silex sends your website to your GitLab project with its build files and a tag, then shows what GitLab answers. You can add your own build steps (#1828, #1827). How it works. Funded by NLnet (see what's funded)
  • Integrations screen. One place in Silex Desktop for your GitLab accounts and your FTP servers. From there you choose where to publish, open a website from an account, and create a project or link an existing one. Silex also downloads the official GitLab tool (glab) for you, so you do not need a terminal (#1946, #1951). Funded by NLnet (see what's funded)
  • Publish to FTP and SFTP from Silex Desktop. Add your servers once, then choose the server and the folder when you publish (#1957)
  • Zola inside Silex Desktop. Zola comes with the app and builds your website on your computer, with nothing to install. A new setting, "Static site generator", chooses the program that builds your website. Keep "Automatic": Zola in Silex Desktop, Eleventy in the online version. Eleventy still works in Silex Desktop if Node.js is installed on your computer (#1952, #1957)
  • Images without alt text. Silex warns you about images that have no alt text, and you can mark an image as decorative (#1833, #1923). Thanks @SparshM07 and @DangTAnh
  • Better for AI agents. The MCP server of Silex Desktop is easier to use for AI agents, including small local models (#1796, #1918, #1896, #1917). Thanks @DangTAnh
  • Silex in your language. Silex Desktop has a Language setting: English, French, or the language of your computer. The editor can now be translated, and a few of its texts are already in French (#1885, #1848). Thanks Peter Bouda

Fixes

  • Silex Desktop: Save, Undo, Redo and Close in the menu work again (#1795)
  • macOS: a downloaded Silex is no longer reported as damaged (#1938)
  • Linux: the app runs on older distributions, because it is now built on Ubuntu 22.04 (#1956)
  • Linux: if you installed the .deb or the .rpm, updates now install (#1810)
  • Silex Desktop refuses requests to its local servers from the other websites you visit (#1883)
  • Self-hosted Silex: the server keeps every file inside its storage folder (#1882)
  • Self-hosted Silex: the server uses the address set in its configuration (#1798, #1801)
  • Error reports no longer include the names of your servers, folders or user account (#1962)
  • The 3.10 update sets "Page item" on every collection page, also the ones you have not opened yet (#1963)

Known issues

  • Silex Desktop does not publish to Codeberg, other Forgejo servers or SourceHut yet. It is planned
  • Silex Desktop does not install the npm packages of a website. A website with its own Eleventy configuration and plugins does not build in Silex Desktop yet
  • A website that uses its own Eleventy filters cannot be published from Silex Desktop yet
  • Silex Desktop cannot give you your website as a zip file yet. It is planned
  • Silex is not signed by Apple or Microsoft yet. On macOS, the first time you open it, click OK, open System Settings > Privacy & Security, scroll down to the message about Silex, and click "Open Anyway". On Windows, SmartScreen shows a warning: click "More info", then "Run anyway"

Thanks

Thanks to the people who wrote code for this version:

Thanks to the people who reported the bugs fixed in this version:

Thanks to Brice Martin for testing this version on Windows. He found problems with GitLab sign-in, with publishing on Windows, and with collection pages after the update


What's Changed

Features

  • make websites work the same online and in Silex Desktop, and publish to FTP / SFTP from Desktop (#1957) - Alex Hoyau
  • add Zola as a publication target (#1952) - Alex Hoyau
  • install glab from the integrations screen (#1951) - Alex Hoyau
  • integrations screen (#1946) - Alex Hoyau
  • MCP improvements for agents, including small local models (#1918) - Alex Hoyau
  • add basic functionality for localization + sample strings (#1848) - Peter Bouda
  • warn about images missing alt text (#1833) - Sparsh Maurya
  • allow marking an image as decorative (empty alt) - DangTAnh
  • add delay, ease-out-back and more properties to the transition stack (#1895) - vict0r
  • template cards link to silex.me, direct link to the Codeberg build (#1915) - Alex Hoyau
  • tell the Linux distribution and desktop in error reports (#1904) - Alex Hoyau
  • add a per-site state indicator in the application (#1897) - Alex Hoyau
  • add revert to the Display options (#1894) - vict0r
  • new dashboard in Vue (#1885) - Alex Hoyau
  • add tag and datetime trait in element settings (#1843) - Musfiqur Rahman Saimon
  • trace the API routes and fix the telemetry that counted nobody (#1852) - Alex Hoyau
  • multi-forge publishing — deploy to GitLab, Forgejo, SourceHut on publish (#1828) - Alex Hoyau
  • generate the publication pipeline from build.json (#1827) - Alex Hoyau
  • use 11ty for all sites, even without data source (#1830) - Alex Hoyau
  • add text-underline-offset, transform-origin and more transition properties (#1838) - Ayush Dubey
  • add horizontal center button to component toolbar (#1807) - Sparsh Maurya
  • version websites with git on every save (#1815) - Alex Hoyau
  • linux ships the reproducible reference binary, telemetry dsn becomes a bundle resource (#1790) - Alex Hoyau

Bug Fixes

  • create the Page item state of every collection page in the 3.10 migration (#1963) - Alex Hoyau
  • keep publication errors out of the error reports (#1962) - Alex Hoyau
  • issues found by the 3.10 prerelease QA (#1961) - Alex Hoyau
  • handle silent failures in the Symbols panel (#1936) - Mittal Singh
  • make the slice filter's second option a length, like Liquid (#1939) - SRC-Saif Ullah Jafri
  • ad-hoc sign the macOS app so a downloaded build is not reported as damaged (#1938) - Alex Hoyau
  • use a CSS generic family as the fallback of Google fonts (#1922) - Alex Hoyau
  • hide Sign out when storage disables logout (#1935) - Giri N S
  • keep composite style values in their own field (#1937) - vict0r
  • load the selected weights on the published website (#1930) - Arnav Singh
  • remove grid from the display options in the style manager (#1921) - SRC-Saif Ullah Jafri
  • sweep never-downloaded zips from tmp dir (#1916) - Ankit Sharma
  • map settings keys, warning names, and selection ids (#1917) - DangTAnh
  • do not echo the error message in the download error page (#1919) - Alex Hoyau
  • keep layer drop selection in the same undo step (#1899) - ZhangXiao
  • make undo shortcut work when focus is in a side panel (#1893) - ZhangXiao
  • canary.4 QA fixes for Codeberg publication and opening folders (#1914) - Alex Hoyau
  • prefix the links of a site served from a folder on Codeberg and GitLab Pages (#1912) - Alex Hoyau
  • name page files the same way when publishing a site with a data source (#1911) - Alex Hoyau
  • point the links to the documentation at its new addresses (#1905) - Alex Hoyau
  • keep the whole AppImage environment away from the programs Silex runs (#1903) - Alex Hoyau
  • keep the AppImage libraries away from git and ssh (#1901) - Alex Hoyau
  • error on no-op remove/undo/redo, case-insensitive fonts_remove (#1896) - DangTAnh
  • select container and eleventy blocks on drop (#1900) - Alex Hoyau
  • keep file paths inside the storage folder (#1882) - Alex Hoyau
  • import templates by URL when connected to another GitLab instance (#1863) - Mohammed Shoaib Choudry
  • allow leaving preview mode with Escape key (#1844) - Musfiqur Rahman Saimon
  • synchronize live canvas DOM (#1862) - Sparsh Maurya
  • make native selects readable in the desktop app (#1889) - Alex Hoyau
  • keep the chosen unit of a size variable (#1890) - Alex Hoyau
  • show the address the host gives, not a stale one (#1888) - Alex Hoyau
  • block DNS rebinding and cross-site requests on local servers (#1883) - Alex Hoyau
  • fix cursor on blocks in webviews (#1881) - Alex Hoyau
  • say how silex was installed, and stop counting every launch twice (#1859) - Alex Hoyau
  • let blocks be dragged again after a page change (#1857) - Alex Hoyau
  • unlink selected component (#1861) - mikemikimike
  • show the content field on a pseudo-element of any selector (#1836) - Alex Hoyau
  • hide center button for body wrapper (#1853) - Sparsh Maurya
  • emit text-align justify instead of justified (#1851) - ZhangXiao
  • confirm before deleting a page from the pages panel (#1849) - Musfiqur Rahman Saimon
  • omit empty lang and fall back to page name for title (#1829) - Sparsh Maurya
  • load config files through file URLs (#1825) - Sparsh Maurya
  • server parity — honor permalink at publish, git init on main (#1826) - Alex Hoyau
  • sign linux bundles with an absolute path (#1819) - Alex Hoyau
  • honor SILEX_HOST and SILEX_PROTOCOL in URL fallback (#1801) - Alex Hoyau
  • respect host URL configuration (#1798) - Aysajan Eziz
  • reliable gitlab connector sessions (#1712) (#1797) - Alex Hoyau
  • mcp tool names and reliable style targeting for ai agents (#1796) - Alex Hoyau
  • allow tauri event api from the localhost webview (acl) (#1795) - Alex Hoyau

Other Changes

  • ci(desktop): build Linux on Ubuntu 22.04 so the binary runs on older glibc (#1956) - Alex Hoyau
  • ci(desktop): build every platform on demand (#1947) - Alex Hoyau
  • refactor(editor): always publish pages as folders and link them as /page/ (#1913) - Alex Hoyau
  • refactor(editor): drop a branch that does nothing in the save queue (#1831) - Alex Hoyau
  • docs(readme): fix desktop download links and add the release feed (#1817) - Alex Hoyau
  • ci(desktop): name every linux updater target and ship the reference binary (#1818) - Alex Hoyau
  • refactor(server-rust): drop the SaaS connector abstraction, sessions and jobs (#1812) - Alex Hoyau
  • docs(desktop): document system prerequisites and real dev/build commands (#1811) - Alex Hoyau
  • ci(desktop): publish deb and rpm updater targets in latest.json (#1810) - Alex Hoyau
  • Chore/readme contribs (#1809) - Alex Hoyau
  • Data source UX and code refactoring (#1804) - Alex Hoyau
  • Fix/supabase keep edge types (#1802) - Alex Hoyau
  • Fixes in expressions (#1803) - Alex Hoyau

New Contributors

  • Ankit Sharma
  • Arnav Singh
  • Aysajan Eziz
  • Ayush Dubey
  • DangTAnh
  • Giri N S
  • Mittal Singh
  • Mohammed Shoaib Choudry
  • Musfiqur Rahman Saimon
  • Peter Bouda
  • SRC-Saif Ullah Jafri
  • Sparsh Maurya
  • ZhangXiao
  • mikemikimike
  • vict0r

Contributors

  • Alex Hoyau
  • Ankit Sharma
  • Arnav Singh
  • Aysajan Eziz
  • Ayush Dubey
  • DangTAnh
  • Giri N S
  • Mittal Singh
  • Mohammed Shoaib Choudry
  • Musfiqur Rahman Saimon
  • Peter Bouda
  • SRC-Saif Ullah Jafri
  • Sparsh Maurya
  • ZhangXiao
  • mikemikimike
  • vict0r

Try it

Available now on https://v3.silex.me

Desktop app

Install Silex on your computer.

Full Changelog: v3.9.0...v3.10.0

Silex is an OW2 project, supported by its sponsors on Open Collective. Funded by NLnet through the NGI Zero Commons Fund (see what's funded).

The code is free software (AGPL) and built in public. Want to help? Say hi on the forum or pick a good first issue

Don't miss a new Silex release

NewReleases is sending notifications on new releases.