mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
Previously they were only exposed by the language server, but now the command line will print the old and new text.
113 lines
4.6 KiB
ReStructuredText
113 lines
4.6 KiB
ReStructuredText
Overview
|
|
========
|
|
|
|
.. warning::
|
|
.. container:: experimental-admonition
|
|
|
|
.. image:: experimental.svg
|
|
|
|
**Blueprint is still experimental.** Future versions may have breaking changes, and most GTK tutorials use XML syntax.
|
|
|
|
|
|
Blueprint is a markup language and compiler for GTK 4 user interfaces.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
:caption: Contents:
|
|
|
|
setup
|
|
translations
|
|
flatpak
|
|
reference/index
|
|
packaging
|
|
|
|
|
|
.. code-block:: blueprint
|
|
|
|
using Gtk 4.0;
|
|
|
|
template MyAppWindow : ApplicationWindow {
|
|
default-width: 600;
|
|
default-height: 300;
|
|
title: _("Hello, Blueprint!");
|
|
|
|
[titlebar]
|
|
HeaderBar {}
|
|
|
|
Label {
|
|
label: bind MyAppWindow.main_text;
|
|
}
|
|
}
|
|
|
|
Blueprint helps you build user interfaces in GTK quickly and declaratively.
|
|
It has modern IDE features like code completion and hover documentation, and
|
|
the compiler points out mistakes early on so you can focus on making your app
|
|
look amazing.
|
|
|
|
Features
|
|
--------
|
|
|
|
- **Easy setup.** A porting tool is available to help port your projects from
|
|
XML. The compiler's only dependency is Python, and it can be included as
|
|
a meson subproject. :doc:`See the Setup page for more information. <setup>`
|
|
- **Concise syntax.** No more clumsy XML! Blueprint is designed from the ground
|
|
up to match GTK's widget model, including templates, child types, signal
|
|
handlers, and menus.
|
|
- **Easy to learn.** The syntax should be very familiar to most people. Take a look at the :doc:`reference <reference/index>` to get started.
|
|
- **Modern tooling.** Blueprint ships a `Language Server <https://microsoft.github.io/language-server-protocol/>`_ for IDE integration.
|
|
|
|
Links
|
|
-----
|
|
|
|
- `Source code <https://gitlab.gnome.org/jwestman/blueprint-compiler>`_
|
|
- `Workbench <https://github.com/sonnyp/Workbench>`_ lets you try, preview and export Blueprint
|
|
- `GNOME Builder <https://developer.gnome.org/documentation/introduction/builder.html>`_ provides builtin support
|
|
- `Vim syntax highlighting plugin by thetek42 <https://github.com/thetek42/vim-blueprint-syntax>`_
|
|
- `Vim syntax highlighting plugin by gabmus <https://gitlab.com/gabmus/vim-blueprint>`_
|
|
- `GNU Emacs major mode by DrBluefall <https://github.com/DrBluefall/blueprint-mode>`_
|
|
- `Visual Studio Code plugin by bodil <https://github.com/bodil/vscode-blueprint>`_
|
|
|
|
History
|
|
-------
|
|
|
|
1. `Simplify our UI declarative language, a strawman proposal <https://discourse.gnome.org/t/simplify-our-ui-declarative-language-a-strawman-proposal/2913>`_
|
|
2. `A Markup Language for GTK <https://www.jwestman.net/2021/10/22/a-markup-language-for-gtk.html>`_
|
|
3. `Introducing Blueprint: A New Way to Craft User Interfaces <https://www.jwestman.net/2021/12/02/introducing-blueprint-a-new-way-to-craft-user-interfaces.html>`_
|
|
4. `Next Steps for Blueprint <https://www.jwestman.net/2022/04/12/next-steps-for-blueprint.html>`_
|
|
|
|
Built with Blueprint
|
|
--------------------
|
|
|
|
- `AdwSteamGtk <https://github.com/Foldex/AdwSteamGtk>`_
|
|
- `Blurble <https://gitlab.gnome.org/World/Blurble>`_
|
|
- `Bottles <https://github.com/bottlesdevs/Bottles>`_
|
|
- `Commit <https://github.com/sonnyp/Commit/>`_
|
|
- `Dialect <https://github.com/dialect-app/dialect>`_
|
|
- `Extension Manager <https://github.com/mjakeman/extension-manager>`_
|
|
- `favagtk <https://gitlab.gnome.org/johannesjh/favagtk>`_
|
|
- `Feeds <https://gitlab.gnome.org/World/gfeeds>`_
|
|
- `File Shredder <https://github.com/ADBeveridge/raider>`_
|
|
- `Geopard <https://github.com/ranfdev/Geopard>`_
|
|
- `Giara <https://gitlab.gnome.org/World/giara>`_
|
|
- `Girens <https://gitlab.gnome.org/tijder/girens>`_
|
|
- `Gradience <https://github.com/GradienceTeam/Gradience>`_
|
|
- `Health <https://gitlab.gnome.org/World/Health>`_
|
|
- `HydraPaper <https://gitlab.com/gabmus/HydraPaper>`_
|
|
- `Identity <https://gitlab.gnome.org/YaLTeR/identity>`_
|
|
- `Junction <https://github.com/sonnyp/Junction/>`_
|
|
- `Login Manager Settings <https://github.com/realmazharhussain/gdm-settings>`_
|
|
- `Maniatic Launcher <https://github.com/santiagocezar/maniatic-launcher/>`_
|
|
- `NewCaw <https://github.com/CodedOre/NewCaw>`_
|
|
- `Paper <https://gitlab.com/posidon_software/paper>`_
|
|
- `Passes <https://github.com/pablo-s/passes>`_
|
|
- `Playhouse <https://github.com/sonnyp/Playhouse>`_
|
|
- `Plitki <https://github.com/YaLTeR/plitki>`_
|
|
- `Raider <https://github.com/ADBeveridge/raider>`_
|
|
- `Retro <https://github.com/sonnyp/Retro>`_
|
|
- `Solanum <https://gitlab.gnome.org/World/Solanum>`_
|
|
- `Swatch <https://gitlab.gnome.org/GabMus/swatch>`_
|
|
- `Tangram <https://github.com/sonnyp/Tangram/>`_
|
|
- `Text Pieces <https://github.com/liferooter/textpieces>`_
|
|
- `Video Trimmer <https://gitlab.gnome.org/YaLTeR/video-trimmer>`_
|
|
- `WhatIP <https://gitlab.gnome.org/GabMus/whatip>`_
|
|
- `Workbench <https://github.com/sonnyp/Workbench>`_
|