[rulkc] [PATCH v2 07/16] themes: add landau-hacker theme
Dmitry Rokosov
rockosov at rulkc.org
Fri Jul 17 20:17:04 MSK 2026
From: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Nikita Shubin <nikita.shubin at maquefel.me>
Signed-off-by: Dmitry Rokosov <rockosov at rulkc.org>
---
themes/landau-hacker/LICENSE | 674 ++++++++++++++++++
themes/landau-hacker/README.md | 19 +
themes/landau-hacker/archetypes/default.md | 5 +
themes/landau-hacker/archetypes/events.md | 38 +
themes/landau-hacker/archetypes/news.md | 9 +
themes/landau-hacker/layouts/404.html | 39 +
.../_default/_markup/render-codeblock.html | 7 +
.../layouts/_default/baseof.html | 43 ++
.../landau-hacker/layouts/_default/list.html | 14 +
.../layouts/_default/single.html | 3 +
.../layouts/_markup/render-codeblock.html | 7 +
themes/landau-hacker/layouts/index.html | 3 +
.../layouts/partials/head-additions.html | 0
themes/landau-hacker/static/css/hacker.css | 290 ++++++++
themes/landau-hacker/static/favicon.svg | 3 +
themes/landau-hacker/static/images/bkg.png | Bin 0 -> 1218 bytes
themes/landau-hacker/static/images/bullet.png | Bin 0 -> 603 bytes
themes/landau-hacker/static/rulkc.png | Bin 0 -> 8749 bytes
themes/landau-hacker/theme.yaml | 15 +
19 files changed, 1169 insertions(+)
create mode 100644 themes/landau-hacker/LICENSE
create mode 100644 themes/landau-hacker/README.md
create mode 100644 themes/landau-hacker/archetypes/default.md
create mode 100644 themes/landau-hacker/archetypes/events.md
create mode 100644 themes/landau-hacker/archetypes/news.md
create mode 100644 themes/landau-hacker/layouts/404.html
create mode 100644 themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/_default/baseof.html
create mode 100644 themes/landau-hacker/layouts/_default/list.html
create mode 100644 themes/landau-hacker/layouts/_default/single.html
create mode 100644 themes/landau-hacker/layouts/_markup/render-codeblock.html
create mode 100644 themes/landau-hacker/layouts/index.html
create mode 100644 themes/landau-hacker/layouts/partials/head-additions.html
create mode 100644 themes/landau-hacker/static/css/hacker.css
create mode 100644 themes/landau-hacker/static/favicon.svg
create mode 100644 themes/landau-hacker/static/images/bkg.png
create mode 100644 themes/landau-hacker/static/images/bullet.png
create mode 100644 themes/landau-hacker/static/rulkc.png
create mode 100644 themes/landau-hacker/theme.yaml
diff --git a/themes/landau-hacker/LICENSE b/themes/landau-hacker/LICENSE
new file mode 100644
index 000000000000..f288702d2fa1
--- /dev/null
+++ b/themes/landau-hacker/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>.
diff --git a/themes/landau-hacker/README.md b/themes/landau-hacker/README.md
new file mode 100644
index 000000000000..05c2ea74845c
--- /dev/null
+++ b/themes/landau-hacker/README.md
@@ -0,0 +1,19 @@
+# landau-hacker – тема для Hugo сайта LANDAU
+
+**landau-hacker** – это адаптация темы [Hacker](https://github.com/pages-themes/hacker) от GitHub Pages под движок [Hugo](https://gohugo.io/). Тема используется на официальном сайте проекта [LANDAU](https://landau.one).
+
+## Особенности
+
+- Минималистичный «технический» дизайн с зелёным акцентом.
+- Тёмный фон, моноширинные шрифты.
+- Адаптивная вёрстка, поддержка относительных ссылок (`relativeURLs`).
+- Встроенные архетипы для **новостей** и **событий**.
+- Страница 404 в стиле темы.
+
+## Установка
+
+### 1. Скопировать тему в проект
+
+```bash
+git clone https://gitflic.ru/project/maquefel/landau-hacker themes/landau-hacker
+```
diff --git a/themes/landau-hacker/archetypes/default.md b/themes/landau-hacker/archetypes/default.md
new file mode 100644
index 000000000000..43dca9a75622
--- /dev/null
+++ b/themes/landau-hacker/archetypes/default.md
@@ -0,0 +1,5 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+draft: true
+---
diff --git a/themes/landau-hacker/archetypes/events.md b/themes/landau-hacker/archetypes/events.md
new file mode 100644
index 000000000000..381be1ccae03
--- /dev/null
+++ b/themes/landau-hacker/archetypes/events.md
@@ -0,0 +1,38 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+description: ""
+type: events
+draft: true
+---
+
+# 🎙️ {Заголовок события}
+
+## «{Подзаголовок / тема}»
+
+---
+
+📅 **Дата:** {ДД месяц ГГГГ}
+⏰ **Время:** {ЧЧ:ММ}
+📍 **Формат:** Очно / Online (гибрид)
+👥 **Организатор:** [RULKC](https://rulkc.org) (Russian Linux Kernel Community)
+
+---
+
+## 🧭 О встрече
+
+{Краткое описание...}
+
+---
+
+## 📝 Регистрация и контакты
+
+🔗 {ссылка на регистрацию}
+
+---
+
+**Контактное лицо:** RULKC
+📧 [rulinuxkc at gmail.com](mailto:rulinuxkc at gmail.com)
+💬 [t.me/linux_kernel_O](https://t.me/linux_kernel_O)
+
+[⬅️ Вернуться на главную страницу LANDAU](/)
diff --git a/themes/landau-hacker/archetypes/news.md b/themes/landau-hacker/archetypes/news.md
new file mode 100644
index 000000000000..0683b469e0ca
--- /dev/null
+++ b/themes/landau-hacker/archetypes/news.md
@@ -0,0 +1,9 @@
+---
+title: "{{ replace .File.ContentBaseName "-" " " | title }}"
+date: {{ .Date }}
+description: ""
+type: news
+draft: true
+---
+
+{Текст новости...}
diff --git a/themes/landau-hacker/layouts/404.html b/themes/landau-hacker/layouts/404.html
new file mode 100644
index 000000000000..e939055ba75c
--- /dev/null
+++ b/themes/landau-hacker/layouts/404.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html lang="{{ site.Language.Lang | default "ru" }}">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>404 — Страница не найдена · {{ site.Title }}</title>
+ <meta name="description" content="Запрошенная страница не существует на сайте LANDAU">
+ <link rel="canonical" href="{{ .Permalink }}">
+ <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}">
+ <link rel="stylesheet" href="{{ "/css/hacker.css" | relURL }}">
+</head>
+<body>
+ <header>
+ <div class="container">
+ <a id="a-title" href="{{ "/" | relURL }}">
+ <h1>{{ site.Title }}</h1>
+ </a>
+ <h2>{{ site.Params.description }}</h2>
+ </div>
+ </header>
+
+ <div class="container">
+ <section id="main_content">
+ <h1>404</h1>
+ <p>Страница не найдена. Возможно, она была перемещена или удалена.</p>
+ <p>Проверьте правильность адреса или вернитесь на <a href="{{ "/" | relURL }}">главную страницу</a>.</p>
+ <hr>
+ <p><small>Если вы уверены, что страница должна существовать, свяжитесь с нами через <a href="https://t.me/linux_kernel_O">Telegram-канал</a>.</small></p>
+ </section>
+ </div>
+
+ <footer>
+ <div class="container">
+ <p class="version">ver.{{ with site.Params.version }}{{ . }}{{ else }}dev{{ end }}</p>
+ </div>
+ </footer>
+</body>
+</html>
diff --git a/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html b/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
new file mode 100644
index 000000000000..e86da3c3f73b
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/_markup/render-codeblock.html
@@ -0,0 +1,7 @@
+aaaaaaaaaa{{- warnf "codeblock hook triggered for %s" .Position -}}
+{{- $lang := .Attributes.lang | default "" -}}
+{{- if eq $lang "mermaid" -}}
+ <pre class="mermaid">{{ .Inner | safeHTML }}</pre>
+{{- else -}}
+ <pre><code class="language-{{ $lang }}">{{ .Inner | safeHTML }}</code></pre>
+{{- end -}}
\ No newline at end of file
diff --git a/themes/landau-hacker/layouts/_default/baseof.html b/themes/landau-hacker/layouts/_default/baseof.html
new file mode 100644
index 000000000000..57080b56d4f2
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/baseof.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="{{ site.Language.Lang | default "ru" }}">
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }} · {{ site.Title }}{{ end }}</title>
+ <meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ site.Params.description }}{{ end }}">
+ <link rel="canonical" href="{{ .Permalink }}">
+ <meta property="og:type" content="{{ if .IsHome }}website{{ else }}article{{ end }}">
+ <meta property="og:title" content="{{ if .IsHome }}{{ site.Title }}{{ else }}{{ .Title }}{{ end }}">
+ <meta property="og:url" content="{{ .Permalink }}">
+ <meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{ site.Params.description }}{{ end }}">
+ {{ with .OutputFormats.Get "rss" -}}
+ <link rel="alternate" type="application/rss+xml" href="{{ .RelPermalink }}" title="{{ site.Title }}">
+ {{- end }}
+ <link rel="icon" type="image/svg+xml" href="{{ "/favicon.svg" | relURL }}">
+ <link rel="stylesheet" href="{{ "/css/hacker.css" | relURL }}">
+ {{- partial "head-additions.html" . -}}
+</head>
+<body>
+ <header>
+ <div class="container">
+ <a id="a-title" href="{{ "/" | relURL }}">
+ <h1>{{ site.Title }}</h1>
+ </a>
+ <h2>{{ site.Params.description }}</h2>
+ </div>
+ </header>
+
+ <div class="container">
+ <section id="main_content">
+ {{ block "main" . }}{{ end }}
+ </section>
+ </div>
+
+ <footer>
+ <div class="container">
+ <p class="version">ver.{{ with site.Params.version }}{{ . }}{{ else }}dev{{ end }}</p>
+ </div>
+ </footer>
+</body>
+</html>
diff --git a/themes/landau-hacker/layouts/_default/list.html b/themes/landau-hacker/layouts/_default/list.html
new file mode 100644
index 000000000000..2111000f61d9
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/list.html
@@ -0,0 +1,14 @@
+{{ define "main" }}
+{{ .Content }}
+
+{{ with .Pages.ByDate.Reverse }}
+<ul>
+ {{ range . }}
+ <li>
+ <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ {{- with .Date }} — <time datetime="{{ .Format "2006-01-02" }}">{{ .Format "2 January 2006" }}</time>{{ end }}
+ </li>
+ {{ end }}
+</ul>
+{{ end }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/_default/single.html b/themes/landau-hacker/layouts/_default/single.html
new file mode 100644
index 000000000000..9983b08160de
--- /dev/null
+++ b/themes/landau-hacker/layouts/_default/single.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+{{ .Content }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/_markup/render-codeblock.html b/themes/landau-hacker/layouts/_markup/render-codeblock.html
new file mode 100644
index 000000000000..e86da3c3f73b
--- /dev/null
+++ b/themes/landau-hacker/layouts/_markup/render-codeblock.html
@@ -0,0 +1,7 @@
+aaaaaaaaaa{{- warnf "codeblock hook triggered for %s" .Position -}}
+{{- $lang := .Attributes.lang | default "" -}}
+{{- if eq $lang "mermaid" -}}
+ <pre class="mermaid">{{ .Inner | safeHTML }}</pre>
+{{- else -}}
+ <pre><code class="language-{{ $lang }}">{{ .Inner | safeHTML }}</code></pre>
+{{- end -}}
\ No newline at end of file
diff --git a/themes/landau-hacker/layouts/index.html b/themes/landau-hacker/layouts/index.html
new file mode 100644
index 000000000000..9983b08160de
--- /dev/null
+++ b/themes/landau-hacker/layouts/index.html
@@ -0,0 +1,3 @@
+{{ define "main" }}
+{{ .Content }}
+{{ end }}
diff --git a/themes/landau-hacker/layouts/partials/head-additions.html b/themes/landau-hacker/layouts/partials/head-additions.html
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/themes/landau-hacker/static/css/hacker.css b/themes/landau-hacker/static/css/hacker.css
new file mode 100644
index 000000000000..736bb29580e0
--- /dev/null
+++ b/themes/landau-hacker/static/css/hacker.css
@@ -0,0 +1,290 @@
+/*
+ * LANDAU site theme.
+ *
+ * Lifted from github.com/pages-themes/hacker
+ * commit e3c8d1ad288894be216002a5bc29fc611aeab9ac (2024-01-16)
+ * licensed CC0-1.0 (per upstream LICENSE file).
+ *
+ * SCSS sources flattened into plain CSS:
+ * _sass/_default_colors.scss (variables inlined)
+ * _sass/jekyll-theme-hacker.scss (main rules)
+ * _sass/rouge-base16-dark.scss (code highlighting; appended at end)
+ *
+ * Background images live alongside under /images/{bkg,bullet}.png
+ * and are referenced via "../images/<file>.png" so this file is portable.
+ *
+ * Update procedure: see CLAUDE.md, "Theme update".
+ */
+
+body {
+ margin: 0;
+ padding: 0;
+ background: #151515 url("../images/bkg.png") 0 0;
+ color: #eaeaea;
+ font-size: 16px;
+ line-height: 1.5;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+}
+
+/* General & 'Reset' Stuff */
+
+.container {
+ width: 90%;
+ max-width: 1000px;
+ margin: 0 auto;
+}
+
+section {
+ display: block;
+ margin: 0 0 20px 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin: 0 0 20px;
+}
+
+li {
+ line-height: 1.4;
+}
+
+/* Header */
+
+header {
+ background: rgba(0, 0, 0, 0.1);
+ width: 100%;
+ border-bottom: 1px dashed #b5e853;
+ padding: 20px 0;
+ margin: 0 0 40px 0;
+}
+
+header h1 {
+ font-size: 30px;
+ line-height: 1.5;
+ margin: 0 0 0 -40px;
+ font-weight: bold;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ color: #b5e853;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
+ 0 0 5px rgba(181, 232, 83, 0.1),
+ 0 0 10px rgba(181, 232, 83, 0.1);
+ letter-spacing: -1px;
+ -webkit-font-smoothing: antialiased;
+}
+
+ at media (max-width: 1000px) {
+ header h1 {
+ margin-left: 0;
+ }
+}
+
+header h1:before {
+ content: "./ ";
+ font-size: 24px;
+}
+
+header h2 {
+ font-size: 18px;
+ font-weight: 300;
+ color: #666;
+}
+
+#downloads .btn {
+ display: inline-block;
+ text-align: center;
+ margin: 0;
+}
+
+/* Main Content */
+
+#main_content {
+ width: 100%;
+ -webkit-font-smoothing: antialiased;
+}
+
+section img {
+ max-width: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-weight: normal;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+ color: #b5e853;
+ letter-spacing: -0.03em;
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
+ 0 0 5px rgba(181, 232, 83, 0.1),
+ 0 0 10px rgba(181, 232, 83, 0.1);
+}
+
+#main_content h1 { font-size: 30px; }
+#main_content h2 { font-size: 24px; }
+#main_content h3 { font-size: 18px; }
+#main_content h4 { font-size: 14px; }
+
+#main_content h5 {
+ font-size: 12px;
+ text-transform: uppercase;
+ margin: 0 0 5px 0;
+}
+
+#main_content h6 {
+ font-size: 12px;
+ text-transform: uppercase;
+ color: #999;
+ margin: 0 0 5px 0;
+}
+
+dt {
+ font-style: italic;
+ font-weight: bold;
+}
+
+ul li {
+ list-style-image: url('../images/bullet.png');
+}
+
+blockquote {
+ color: #aaa;
+ padding-left: 10px;
+ border-left: 1px dotted #666;
+}
+
+pre {
+ background: rgba(0, 0, 0, 0.9);
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ padding: 10px;
+ font-size: 16px;
+ color: #b5e853;
+ border-radius: 2px;
+ word-wrap: normal;
+ overflow: auto;
+ overflow-y: hidden;
+}
+
+code.highlighter-rouge {
+ background: rgba(0, 0, 0, 0.9);
+ border: 1px solid rgba(255, 255, 255, 0.15);
+ padding: 0px 3px;
+ margin: 0px -3px;
+ color: #aa759f;
+ border-radius: 2px;
+}
+
+table {
+ width: 100%;
+ margin: 0 0 20px 0;
+}
+
+th {
+ text-align: left;
+ border-bottom: 1px dashed #b5e853;
+ padding: 5px 10px;
+}
+
+td {
+ padding: 5px 10px;
+}
+
+hr {
+ height: 0;
+ border: 0;
+ border-bottom: 1px dashed #b5e853;
+ color: #b5e853;
+}
+
+/* Buttons */
+
+.btn {
+ display: inline-block;
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.3), rgba(35, 35, 35, 0.3) 50%, rgba(10, 10, 10, 0.3) 50%, rgba(0, 0, 0, 0.3));
+ padding: 8px 18px;
+ border-radius: 50px;
+ border: 2px solid rgba(0, 0, 0, 0.7);
+ border-bottom: 2px solid rgba(0, 0, 0, 0.7);
+ border-top: 2px solid rgba(0, 0, 0, 1);
+ color: rgba(255, 255, 255, 0.8);
+ font-family: Helvetica, Arial, sans-serif;
+ font-weight: bold;
+ font-size: 13px;
+ text-decoration: none;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.75);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
+}
+
+.btn:hover {
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.6), rgba(35, 35, 35, 0.6) 50%, rgba(10, 10, 10, 0.8) 50%, rgba(0, 0, 0, 0.8));
+}
+
+.btn .icon {
+ display: inline-block;
+ width: 16px;
+ height: 16px;
+ margin: 1px 8px 0 0;
+ float: left;
+}
+
+/* Links */
+
+a {
+ color: #63c0f5;
+ text-shadow: 0 0 5px rgba(104, 182, 255, 0.5);
+}
+
+/* Clearfix */
+
+.cf:before, .cf:after {
+ content: "";
+ display: table;
+}
+
+.cf:after {
+ clear: both;
+}
+
+.cf {
+ zoom: 1;
+}
+
+#a-title {
+ text-decoration: none;
+}
+
+/* Footer (LANDAU addition; not part of upstream pages-themes/hacker) */
+
+footer {
+ margin: 60px 0 0;
+ border-top: 1px dashed #b5e853;
+ padding: 16px 0 24px;
+ background: rgba(0, 0, 0, 0.1);
+}
+
+footer .version {
+ margin: 0;
+ text-align: center;
+ font-size: 10px;
+ color: #444;
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
+}
+
+/* Code highlighting (rouge-base16-dark, flattened) */
+
+.highlight { color: #d0d0d0; }
+.highlight table td { padding: 5px; }
+.highlight table pre { margin: 0; }
+.highlight .w { color: #d0d0d0; }
+.highlight .err { color: #151515; background-color: #ac4142; }
+.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs { color: #888; }
+.highlight .cp { color: #f4bf75; }
+.highlight .o, .highlight .ow { color: #f4bf75; }
+.highlight .p, .highlight .pi { color: #d0d0d0; }
+.highlight .gi { color: #90a959; }
+.highlight .gd { color: #ac4142; }
+.highlight .gh { color: #6a9fb5; font-weight: bold; }
+.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv { color: #aa759f; }
+.highlight .kc, .highlight .kt, .highlight .kd { color: #d28445; }
+.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 { color: #90a959; }
+.highlight .sr { color: #75b5aa; }
+.highlight .si, .highlight .se { color: #8f5536; }
+.highlight .nt, .highlight .nn, .highlight .nc, .highlight .no { color: #f4bf75; }
+.highlight .na { color: #6a9fb5; }
+.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx { color: #90a959; }
+.highlight .ss { color: #90a959; }
diff --git a/themes/landau-hacker/static/favicon.svg b/themes/landau-hacker/static/favicon.svg
new file mode 100644
index 000000000000..91a33eef7b27
--- /dev/null
+++ b/themes/landau-hacker/static/favicon.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
+ <text x="50%" y="50%" font-size="56" text-anchor="middle" dominant-baseline="central">⚛️</text>
+</svg>
diff --git a/themes/landau-hacker/static/images/bkg.png b/themes/landau-hacker/static/images/bkg.png
new file mode 100644
index 0000000000000000000000000000000000000000..d10e5caf1adb7466673bc9cef83621fe855caa3f
GIT binary patch
literal 1218
zcmeAS at N?(olHy`uVBq!ia0y~yU=jggMrNQ$#TNBtK#DEEC&X1sN=jN<TJhgIUIqr1
za!(h>kczmscWgJUHsE1R2ws}X9=R$~%X@*3=-vhL at -NfkR)!pBoqVTzzlmJ$gw$h(
za!N&gzAjH}?UE-yuB at ->I#KvPao+dRzrL at oCvVpee)R8SO|Rip8+r3Dza~8XxNqSP
zmGuR0<=?XLN*y=&ko at A*R?n;zmFGjmpL|X=el)GDnT?nCc-hJ9h-*>(U-v7SP21O(
zoNu0S!J*))p{S5clIq(!Rnv%W88O`}e-}D7AF~mxZ<pM6Cil`MzxnU%D at vtJGAgdP
zGBvvE1 at fMbnNsq?Bl1W-kCe%R#FxsACj_I99By9o>fpV+3kwX-$FQx)Y;JvA%`)@d
zWYLYgd8JI0aw{r!Iv89Q>eyImcyRi at 1&bblZJ%(NN9SER*F|RI`9Vy^n|kYj&a|m<
z<qcb&UnO2J|6SDIt00$O30vx5C#=V``Mk at b+qoAOOjKVO{UEfP^J}Beo*03xYk_Kd
zS8VSRdCSXubd61LitBTrLB0E{L%$ouGhS8EyJ6)ZwdXs?3x8twHvY>H+i{|PR}_n7
z-gd`kwp)J%TC%IUg`6V4t}fWH9jMCX-LAENwM{str7XO1;E!GNEuasI-gOzw-pnlj
z>{){B-p0ScV3upi-pM7+*5to^wpdM0Lo6uhXKvGLxTUb-aiDN)U^44#klW=8|4*sV
zntfrzKU=lq{IC4u?*i3*Ut)0K at G9flAeW??UW>QI-$6b&yzF|LRw2jj$QO!RxR2R@
z!p-JEk`UjzM<raFm`!#*;7Hu<*xVKtGV!QV@`uJ#;#ypF at o#ElK?eTJu~*2?=(N*m
zz95#7=dk$h0!QZF`l|i)TVMX-Y`qcH+#5e(^=+V_f3$|oiblPIRr9!9^=n>%QUGt5
zsq{^Wh=(VtSvB4F14E?hZ{X9Y?R-}fa at G1cS_<EQd{(?RZONXWleFXa{d=3gV+$~p
z6ml>4|1{K5DvW*TQF%BQWRm-W8rcnHXW5F_LnOa!0te-Gud{_`k1m{6m9unPa(^B$
zKx8W_XRUv at r+&lLzc+3*l|BZA<&8P3LiGe?mL9UxX48rf2YHj at p3l_yh=pvc)~tHC
z{nO?fprlo3bGdkWi`e7<jurW<Pi@?Ne}QB2JZ<5I_*+a<b+qresfdEKvi1FOoLzS?
zTl2c>f5A45eIR!{NSV4~V*iRMLf15OnS&>IfjrQ$5*USNy<-2E*PZ71vSAxg$R}ir
z*HrJV2QIesUSGbBCF#9c#svfK2|7o#H8-glPWYpw_zvjL75X#RJY~u`5Y-X(HrD(=
zUCM<84_%p-W@|H8MF_Nfy!EQ%2FOzxtQJYFtLIN<Wl3w@=f_nBG=E8fj+N8u$u^sh
zS~AYze*-j2ASC3YSZPVr&u|sdhe_8L0OM%!m(S0uUTbZAwDjNUwXMySTY(yRWS04@
z{qG^R!8u_^+?k`6YvX_k=FRgvrCYbGS{-$&RrPqsYG9l{e(hWT^e4}5w$j521-+O5
aGpK*M_1*RT+dN>Q#Ng at b=d#Wzp$P!*bu5qo
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/static/images/bullet.png b/themes/landau-hacker/static/images/bullet.png
new file mode 100644
index 0000000000000000000000000000000000000000..c8f8de1a7e0d469d77b8852396dd10f338ae23f2
GIT binary patch
literal 603
zcmeAS at N?(olHy`uVBq!ia0vp^5<tu)zy>7${dCd>QY`6?zK#qG8~eHcB(ehe3dtTp
zz6=aiY77hwEes65fI<x~7#K<o7#Ln9FfdrnU|<k0n6oR;1}MRn<n8VPq=De4^X_^e
z#a`m+>&pI+kyVsc_(xbi&_G6SPZ!4!i_=@D?9F0w6md%rmzMVCWO3ZMStxs>APeV`
z6HToPk{)y4eARTTV}i&**7yU5F8RqPByJ7f7<BN_8{S9{vwtah#WUv4eLuT8{h3tX
z<H~7M{j`@(37X6IrtD$Lr%%7W{P|aCwbJ_V&o42redq6UWICyG_$t at 2q=LO|&5T=e
zd8VJfEp%ad{)&z+4d<Rmg?8bqH{5J#bt<@-!&Yr;A(vcZ(W3t8|F3w?7U^`O9x2|4
z_0Bt`e%s3Q9+5cw^Up5fUGe|Vv(%ZH{1H8>l(V(z*fP#y%N{ZA*k8}SM*o+)sk0^|
zVWo&jS?rFxude<7%Cf>m>EMbm?l6V<?Z+4Y-_E>rx6ksBe>HsTzdZg`C*I{YbAygX
z`No(wBmKJvw<YfHzmO)pFR=F4ze6Ehr<5mNx07+IG`S?3$6NcWj%l}S&i11mj+KA=
z+wA^w_sw{w^pE at JEMQ2hmbgZgq$HN4S|t~y0x1R~14DCN14CT{(-0#=D+5z2LrZM~
zAj6>3<wPrrhTQy=%(P0}8h%I?SOPV0fNaP~OiImRu(R82THXN^WAJqKb6Mw<&;$T2
C>*sg?
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/static/rulkc.png b/themes/landau-hacker/static/rulkc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ae262dd97b6e6db38463f1433cd8dad6a7d1c32
GIT binary patch
literal 8749
zcmb7q2UJtrwst(A2#OFu5NR3&L7EilRYFIpp%-ZZ>BSH_Sdh?-)KH}<gbvaI1QqEe
zC<0QWLPTmLG$BI%c+P*{yYIZ?9pmjW=GY^9XRkHaEZ_X*+B at F(whkl1MFs!>z^JDS
zHU$7ql>L&^r>IwK-mlb9PqgkDw=@8N`qVQ&ola73#@^M`G}hD9yyPF~2fgd<1^@^l
zBavMO-Rj&uj%H<`42EFlfPUlrs)q^psvtr)V@*X~uHFe;k??r`q_kC at q2?rAw5SD-
zT^<bPf1dU=-=*UdUrN7$1fnE_Um~_XwK5SmRW=t++-w{)Z at hZ0Jjc!TDZONt<9V7|
z=IaP%=j`<C3S8N^a7apR_>Ui990coy<zsFd{nxHBMpsg#=j#x12zNQL{B6~M><od}
zA9*2fo}FP)3$zbDNDdlsy6^rt*&A9QZz!6HvD$RDkTw6p`2|tznJ%$pXCdzwU{ML1
z#9obds(V%~8kGN4=&99PmiNq;OHvrnb<AZD{vPn-JyzahU|*qNmSGLU1qF8FhYSN-
z4=JySz9V0D(sS7i0i6=fN0O&#gYR2(H+QA_w8Q at RQFvdZda?G#{f}2yl2h0f{<t~&
zst2Z%wjVRZbLWR%*4Y8%PnlR}V2E0Y-yn@<i#jD|);65)1(SLvMt>ea7xyY8zF|sb
zVSZ|Uw#$9y=m at a=DsU#)xHg*Vpi|BUI$-LVdK_rB|GGl&uWKDdb?MYEIdM}cH-vhT
z?w;N)ExOe|n3+$|i%EBg0|1u*dSDInkeQA7&^)%?e99K?Mc8BV**`$Mr$K>XG2qJ%
z8d~vi87N0|uB%*v$<&RlEZW!=wC7miVPdZG1CB3EYn(8eobmwv%1?|BUM0maJP-=J
zwtwT^)bf7Zt*HF^%CMS(mCaBUzSIMkujCEC$TeF$8V-X^yv#w-0{|yqIh_Uo9<lr>
zF~)xYehITa;7_?p{R36hg--k_rv(6jUs6Q-r(8-006d^>XHVEjK~(g>itPRzEjiN>
z&1|Oyp1HN^fNu+ZI_?}5ylL=;p!7c;`t{(i8DTwQpM~zCXLP{MKuCeacZf#``Uo_b
z2Hg|3y(rL#%Rxz=75Z#Ea|JYS5OUr!*P5?cM*n0M at i+Ru!kg_mJwpUr6`0*LF}ede
zb=l?)l$Jw&=>M{)UyJ*t-(NZ!zlGuoRN%{_`FycQbN=0oesZNpTZ?@X2+!!xZ({u#
z&W}A!m!ws1ElE*C-y-jAq at EK|`-0&ADqDKw&>6Pjg~uL!uOq2O9<IBI#K8ZjS^s5P
z<`mmE?}|G~gCc(1un#6a-GlC<d2Q`z^tB!9qB9a5V-~dzotJj1Z~+gjL^Byg9I+7x
zH6pbgQZJ9Nkz~P=8GLKNA{NQ7lj3YpY+jDy?2akUe}!fYJ4)eEQe7V_>W--+Rn}lu
z=Q*XJ5lU4*ljRn&mBMzunXR?|92^{M>we65Ch~|nNM^_PH)p!v45ke%&5%f>1z_Uo
z;Up1|&_zRw-#9QxU!5l6=X)0=@`lZBSfpcD;OjRVNg!&(B!eIaHgQe4Ukgo%Q-0HA
z_L9>-qwTOX{}f!tmUApA>^{>J<^6$oI=oobs*dOuiRNUbrp3HE(q<oRxFVeK>j(IO
zeb|+Ka8vZ0(=6P#G9uEz>fmt1af21P;H{U=fHk7;QMu3cBT}Eq;rgd;7p8L*)v_YB
zX|-C24%f8ZT8mGHxb at Zx(iqX~FoKM2;!uI~><bsUUbjB+e at _5)vqf_HSn<gXOjTl&
zUzc1}1b&pqQGpQ7A!kW3t+2>--cX7aSJSm1vQhPV#A1B$lmpzoc2PU^+>vS-Iu|$F
zLLA!dleMHcZzzf at Y_>FNb{SQ4C!F^p6dil(rk at qZpZGJ`{+4j%BEIxG8fFtwz at BO?
z*So4&d}|?Ns`HqYM(C`DQt))fvLu_d?SLUo5$%#{Hm?|HB<vM;$T<HCneFS`ldq<f
z+Io#4;knZ`P;Q13zfC1TOmR<;zK1MYQ5y`^F+V6T8nWt&I<iy=-}`9+&N$&s|My`2
zcZ|50w45FTnr!jIJLJmwEwEYe(rS#A=%f}X<XEH8wxB_rY~w+aEOli_?!EvFY;95n
zlwQR?a__7B{RgP=vnT!pp}zr9jN%syqorhYfdt3_oDt4hR{XsVEshW>^ngaYWvdGn
zjlo!vpU-N(Qxen(wS0U!Id%yCCwl!W&3<Y4%b2SPwr@;^_l$C7H;&2~>@oKgY6O^`
zpjThs9sjB|(RO^emMYsQZg`dLZQc!OmkUo`(0obNT0$y|JJ+I`oJzSupf(oGmoxNt
zz13OOt~b8m)RQ^&TW1xR{bAE;Qlh;v)8IDb?nE%i65n8<)zHyqc*GLZk*fsv#g~)B
z?J?#)v&}xI`D35I`Yl#kT0T2Y)7gCiA~hne&4Wvgc-voDTFTtFnPYJf262G~iPDYk
zoO&Nl;e?AWhsF2%KQ8Lw$~mUrX3=~!^M%Cok4D9O$@G`WmGzm4h#+sY_ at Vcg#6(zu
zoISc<r!<*V%#RM13%kx+ at TT@DZB4Lyh$<^59vbmZFaS}e_$fGX;pixtOO6+(%ieN)
zMDFTz?ny}FN6&dc;ZmmMjK4JsHG+?>8qxUCONfZrhEH0%N7~`1TCRztk!w14cFGl1
zu;Fd;gz9N4M*qcRxl!w8Z|iRXptk3pj<X*Mnw<!Eg{tu!;@$>E^&W5hh{|W|Nu2b1
z=Fgw4WlCJ7rpaYl4y*Gqf_oM_hoFWx8YQDw(=UE|O~<#+zU#j(p~JH`O3+M^7j8fz
z%<$^mDVjgHey?c{*ktVkWejFQn7!t>_MEU`6Pp3&jc9l~1M__660%m^GCJMtW6Nw2
zH78kJ9p=|g1(%Bo&%Mc?Y4&i{L=rrba}9In4I=uCh}?Lp&YT)W3#wE^%hqwc9Q9rV
z9kE5z)v~n7Q$(P-sv@{?&TqPiEwwLIugp}Xd(biT8II27_NszBCgV`;A^z)jdc?u~
z?UK4core_X=Plg-2~Ca92qwwvgKzq^sV;vU#aGyMktYtDyIkDI0?0KV5D_&GPgZyW
z at A8;9y+GU(n(*;}2I5rqhf~q4v>KGJ>n^#Y at 1OULeQ0+gOoZnxy{UZc$YN3O^rPj~
z1vTQ0J*%7a0;AyQGH1)!4E%0t<nj*Lf%NjQS#3LGBT>BV^LR&%rYCXJ-lT}_%6{#6
z<Ou<8{or}nRK8Vzq$tsYpGk at Typ2PrSY5TqAmxI^rq%V-&Zc|*2j~8YYpB}?7|7?`
z${Lk?0TZdNBCfee-b(1-5(_<BNj>n9`|}x21P$hF#MuPT5+AN3A@=dH at CGF~qRDqs
zdf8$U<Kkz_ZsDspO*)>q`e<R#SGZc$srNz8dcY$V=9MJYS*F=`|I;+ at 0A7<-)Av>@
zUYzsR<>EUERnO975+|C}(N#1D{(OhW^Vt+s$=XIZu6?I_#ADrOD9rmG9B__p+qx{F
ze6SgD4Jv4VL6}OZNHy>mlTwty&-vYhG^|_-E+=SWzbL$O{w at ECai)T>*vB{Y-F!FR
zNjec!9-q|NyI3&C9Hu>P6DOT;GHP-KVKp&!q=4SNQ%Z$EX6`GXxJSHWHUopCl=sp<
z3B9M;;{qQ8w1PlA%ztsWzn2q!UwXgS53;v|+ at qhI7Qr`|*Uoj6PPDukWV*-_0s97j
z`htz5c&_yx<&?nyrj7*Jw`)|et`6 at WtPR;*yd@&*&BJW58M=^@>x;R24|}Lar7mvn
zg^|H=b);Z|n<G{#>W&{&`m_LBCvbn*kr#5j at Q9UYS^wIJKyDt$yXn|>F7D&2a?*!|
zNWN2g^o;q{wk=p&d;3T$tApNTE=xiqr9F6KhOg<Td0>}Rnu&gE1l_;!v;ShP&uUr)
zxQooaF^CQp3oJaXz-E_^P`x%AMdoeZ?+;3Q!LfZ|KAhMYr*iyb at eFC=xIiU*hW+q@
zxAo_aJwo8djNK5E=_tq7Z%s}FNdqdQX!%$|FTh5PWPGCXNAcD$aBOy-IeyP<0#p96
z&jXK*)bX8pxzeAhY!qAroAD;URcM}8ywl+K_GsJDEme&1KZHigq4Ysz`FhPhr- at -$
zgmR;IxK(IqIQ?PXd<RZ4A3m(nxLHW)$&ba*V_pWELT6N+xdvwBTr8IxncC%MDxqOU
z(&xINz)&PlgUp|7?`z%n!Ot$k at 1~2=qy-BL{C#$T2kYI%;Wm-k2|rW?%sM^ZMsB;G
z-<Friz7E1C{&@X;g{U%;r0w$Qw^czwK!z{vhTviQnDlcgVcTub>AH at Bj0{_d)Jg}N
zjfR_BJyT=CtwAF6gTA2jMIS6FkA-2PxH45u(XBp})RFzU4J*f>KK}VXOu$xkR8Qim
zcU|owwI#V4H^(ARG0@?JPXHKB{hpWnD&~JL=zk08|7P$16&?RZC1RW{dzk?OzAJT2
z&hOLitLLLS1T{1BP>l`~b#Sm77 at Umn|0KXlF8}}u64uwsIjRXA2N(yied0tg@|RQD
z&i->pq;9{pepB2a&Rz`K_c*h1G)=>R7y8V&&Rj4-PwCVjyV**GiTx{&OfO4vUM=PT
zr^BI7jK at xig(5W6>;J(IF~zUv;eZ$qh^9oms3qss=Y?@uN)T$-^z3scUvz1CO+pP@
zQu^hLZO}D4^VyyNDs&oO{|8I_)n^6ipS%f)<_BfT1jz-XrpHdz^mzb7WptXxN4#$p
z^lhsG6_knxy`XzIg_#graG19FK_}{{=JeOeTJX{;;#whU`tGf<RDIxGJ`)1Fba>tU
zp%5Fe_EIRsPCDFNU5L;_rzxkCnX7#H2pSh1?>NgV%~f%AUaQnkI<+ at N+oQxsY_g<-
zezMFxB}%kbiz_Zsmxv(MXh{vVv%i{S0j}_ac=!j~W!^}gyZZpP0lvqqf1n(#B-HQ`
z+4;V?PqddFKuX2^|F)63q<=N4Y>b;&5neB?rFvzFZgZGdiXtv|+EkWKs$%sLu<epg
zlQ^gtNZ9tO&x=<;-(y3{ZFgYk2;cfnNr$(3$U01nZG&MEZ_AC?Gq#XEXVE!2LQTq*
zBkNPQ{QU<Y1T)!_4e}OX-$dm_$)SnfS}$Nk+ik>c$;PSej?_7R&=lA_w5wG%Ut0I=
z@#VlmzL!gmIaPA&27s6c at w$%zf3Ia!KWF*_l8fxX%}eFuP2fowJOwsCdhb$tL*>P=
zx^hMav8il+P#XX2X>ZnXTCsfeC_7RT2<b&xPi0<bhwgO+nJXl7Y6`h6e?vJRTD at JL
zk$9N3boi!C4kZW}1IPLN?>T?9v+6us- at UgkJVWD_LOJz-C{)R)l6S(>@kaI_uM~t~
zsu0Bx9Mx~k{;aHffgOn~B6!Zb`Ma5)(P7r_|4KEZC~oMZ6Z?UiqtLAlFUgkYxzi$N
zAwVf%R-{#kkb;fwJmI%lp85StJp{ZkWU}mfaJaW{-3z=_f*`4Y0#!BVzpNwY9N)dy
zf#4E^@OPjF7xZ7Q8`~(ZdrB(FzMRW at T^#7+(PpC$-V}M-bo6R?Gzt9-Jp^{W1I}<C
zS?4ee|4>)M9%LYJXmDKMd_hA9l_yfnq5Wu-RVrlQmNyh2bS~ogzqj&#g26M7?|Cc$
zwnlUjK2_9GMaNu~NldQdO8OHHsO<GH-&GDYMxc1`wzN_b5}es~L$Gfy%mmW+)uY5q
zI4Kr=tPMV<-e!?js at 79%{P}}l3kJCtm+v?9OpB=fp*7q1W+RU+xKw2OL};B_-`q8U
zjle3etIsu$wov~avj4WX5`+1|{wb3H1EMaN)SzbsbhwOiri&4z^9q at lK_oLsrwVQj
zV+JlR82JGP_ula5beDY{w&V)!5|3$XlAj7T!igo9lOCW(lC5xM=o~NK{Bhb@*Iz+(
z3B(lCD%@jyc;{o5!d~xHH(f$3 at WwIn)=#+7ZigKVdo13fn;0nS0u#&Jibw2>Y_B>v
zL!*bcrL<o}XWK#zyz1xS2;Dx!H7;uI%m#`sG6D~77g+AwNVn%!FG%5qVTq#2E2^@W
z0qN&d&HmSpk+Dq3?FxVIr?rLo^xImjyNhYu1SKvf&cYk7!`3|?$xb44CFee)*7gp?
z6q?uEpHgghw7?dLx?}{YI=L=M!c#Ji%QHO9XBu6!oH+PnERfoABuDKC9JZ%3q~xH^
zdlOYJWUfUn^ho&+7?RGa>!B6*EQ^D6-d_G`#@X=$VQS;{8&3bLI%riM at D^16N;zqH
zW$_W<yIg9 at ndW|cM9tV6Z^C6%%!YZ-FmdY*e(GsE+&`7e4A7_hO-cFy*@_-;oEUR#
z;550qDw_T}(OsHZC`6MTk1Xj0mNgId at aSiBAI6u6pxVm0+7l%K46MHyiW(R(#S;-Y
z;k(`iw6AY`4!A1}MDb4djtPjAt$y_Sm{dMnk!_LC4?9b19P(i}$q4{pd#k{&`PW|6
zU;9=6RPp|)Wad~kMixFLlH)2?zk9o(G1%hbFZs?FUV%Z9qXBv6)2<pFmm8D6g)YRp
zxw&Qh`dP|byFrv6jR{dcUN%MT#Dl*ShbXI7*0}X7P1^dYTtOM8D1Q%UrX?%m!Yd?a
z3Z&cyg{0Sz2Q9tcUFORc!lR8(!(No4U!bO|ywx<A-zK^NM%LraufeP@@0&o}Pigo&
zbP6IC?YyBzS%Z%XsgLVHWxWQ|h50=*Z{;iQUXacugf3(|JK|iW6s`ponodx>tC}BP
z()}>!4%vN|8FhVExwa5BqJM>Dd8r((9ag|7_<%tu{T!mlxeuXB9Oi>WzTH29VTt?V
z4<xz2VK&9e6g9qV{onz;uRY0a{Jhk(B2KHcWjVCb;7+?rZoSb_xXVig*y;x?mRKv@
z*zUF22o265lGj+`--f=w8CuX{3J&XA-0ET$+qImW<H=SIC6Pq^d~mEthuE<$JG&`+
z%hj~f4^xsz-8oTEHDs4*D<r~)-lwH$<zZPZIvLjSjUYc-<Gr{Px*(RaSmirF_kqSG
z1$0i}SsQA47rolMxV4g`{cu6pkOiri1iqaQ20PbVxj!yOXb$X0noNjLwRf2w1TWc4
z!HA<jW<!9X%0nl<Mc}rN+1_i9V8&H&xlhVA*Fb^#y at i6Y_HPWXu&|D-H|IpdxtCiL
z5)!mHm3HRQVUO1^4<qn}BA^$%LS_>KR4qMOdF at 6a6T?i^@b;Qn at gaFbX5>oES^|*_
zkMD<Z_TXA;!mYLE7eEb@!{U3&e$f8CqX1>z=qpELGN|DdY`zd$LC!&V2ixzzKQ&q*
zqUB1RgD$au2eFl1j6QGuRVNy^tvc#K1OhqNF`MyNq69N?m at 71D6SL_jJ=0+bDdbcN
zUXRIgj0){QxJIQY&cfy;tq-^A(8pJXrb90iThus^c&PAU^BRWALCJ97fmWDZpJK}R
z!tinSab&`B=y}e?>)H?|JLjX$HO!RzdKa<1COjfpbsdOoUBgi13 at DR{{WLXew{KI9
zlMwgd_WSqn`&o(olAPqvkgbrP$D%&#?8sow-O+(ydZIcXWLE)*ymWd&pCU%U_*QAp
z!-v;hsHV2e40d2gdQQP`5<SM(25jG`;I>EBX(2~WBYZ%G@%^J*sZ|GRCM`~{qE|if
z`(0a?yU-ZUjg5qlmx&Ayo<%lOqqtQNscQ#W6o@;-QeL7}^R1_bZ9)s+erCyqXz at X-
zy~QT^@5&`;#}5~l;SI_5JPVzM<`d^pK0mN{B^6cNWA1OBVy7QaT%bB-<cm$dO!6sd
z3 at AQ10hah^^w!g;71hylN#6NLJjH%w&oSzNpk#id+ytIUBpZ>jc##r5qsmp1_tAG{
zq8 at G=YZ-HYM+vyX+rW2xg{oFs&3-mID#IkW0F at v13EmfAiY2P~Us^KX{gQ;?ioi!-
zE7 at 3~UfKwCpq#oFX&kmNZ|zdJu^hUvVZE0Xtv}VK+7|_ThKt`R^fjbx at P$O1s}s|I
zWswH+I(kdIxC=2%^|p6z7_WI>_Ov_I_7$Q^gFetn0T*kUk at W{uoKZDswJ%5GThj!2
zQz=H;;kNwes^%e0Ql)$b!=kf$-zw04uGmCUB*g;K`K+Q@@2k5m6`?Gl!2u~*J8Vb-
zb<9-GNUR-r)B9C?&(I2v9d`@Q$bsk=f^6J{`eACwQ8bp at qCo33pV<%oNYt$$d%0Oz
zJ5Jiy%@?D^IgkY at iyfH<p%p|j#S_Zk_!4gqws7C;-tK5LhuMg-=jNFZ=|H5wemk_q
z#KFms2u^pXL~PRh&r7Fgo=10 at g9Z7l<na5HYoK;&&N8mx?SXAV_VAa8dx?FEQ)SD`
zjL_h_%DfaO%%(rEO at ck~#?sdmixq_<JXP`WVOBOECz25I-8-y(*K7hGcO&f1kupw6
z6S4^1<Cub}ovy$dL(&SC^FN0!RB{F_o&~nugvcRu^{{51d&W|YYEwU%Cx;#G+3(8$
z53V!O&Bepyud7bIf_qcrod63NSltPexb|Fc3A0&&%HrZ0y6;}{K1+m(ESgg=Iz&JD
zq%!x=_^f|uvSdzXHR)r$OLX9Sy{nNzLRS*)rc~^~sy at Aus~7S6(WU6<Go=+~FZLi4
zM#JlNQ!s-)RNc)VhAXq6z%oPxZg`XpC at dj?zYOwP?KE|Bv%HcvP>&_@?I*8gq--}*
zF=<NbTtv$)l$6^eA~_Wr+P51QqP%(Id;TY*k at a3tEgJ9=&mIM;#EBUW$aA3LMvy)H
zPRi=k0k%tY2%qZt#n*^&rBBk^Bs~F2F&u!+!$;PQpnK_y at -BlzL-1QUGIwuj&g9A5
zeec;9z>er&&!HBhygc12$D5{BT3S8f)2lhw)*xgn_Qd at i7wNV9Y9HYA>m4uEdMob?
zH1;Z}kv0D9uGw=#1 at Yp;tCwf}F^lrGa!xH-k9QU~sp#NdnfdYcbU<c&zde>nv84{A
zdip^kc&VnLp~1)?wDZiDO(ooRK|3MS_MDMmTID_w--VW(F{B%j`+=oAK;`EMaMuo*
z?z=-Rh+JofhdGdHk6v~@ny;BOU12RZcagO*G1;;Rvt2)rEFZ#1U~1OlIukwL1cbbS
z&C{KE#^>?J`Sa(u-){%CqhM at EBm1chv(;J5olR^mb;%c}U_6i`6p<`3Ny_iPG3`s(
zi=;48)v0phVvWT6HNeHN#MImSp%>co5kzv=a5Llh?AL4f{T|r-WX+l)bT1OWFM!mI
zXhGtuTO=E)l`-194_mvVOl&!M{qY1f<v31`F>NUm8=SM at 1<Uq%1#mi!{wV)Xz(nuu
z#x$8v&o3_s-*`ezFK+kp<xnpbT)R|>#{(4Oma?CAFFvetm9}ClDIUFW8T3#EH;W>O
zZS`p|n<w<Qtze=h8-1uD{-jJP4(ip_Y`*(^r%@CYiItg$YO$uSF?sFqkBj2A9r~9^
z_EYw2<YQWhN}INtV#R7#LjTK)_hqJs4-x(NUi@~48<uEv`oX7g>dD`}<sEM at jC)yF
z+LoF<V^lXOG0iEwKzHfl8I<{lysl}vVi7+(=w(0CN-JF}<vU}(TO9$vLs}Z(JHV>F
z9v-ckW`fL1fD(rW2iaW<)+<-vO&?aF4P5F!l0l>r!3*tc!&OF5HS^u2ojFWNMQT8`
zP1B)2<@kuz9QI&2RN8z3?0O$H!bm at MH)YXVt}z$9q$eCOa&UV^1ZbV-M$_R6^{ZU%
zA6}NRo67fvK1cIQM+LuNGECHR-M){Z;zKCJ-mYZxej!|nk{dt`VGxxKj95$s<f%}L
z2IRRP?&o7FX?ujI8t^s)V>5iW#efH*E>{oiJm=~&obnM7V=?s(S3nz at y)LC_UY4zy
zWKhGEE8k?@XCJTZPMbE0b}m$VCT(Tz<ljvk5Bj1$t7#7N8`*-}!!hV!*~YMW*C$aw
z at 6@9=YXT~ks;xx#I?yRHjkh^xzpL@|O+WFObFTj=It9azdO(v=6MOTM7SwfZjJ8{e
zHfw^}Uzk=z-sr7Sv{j=bV<a_r4M4Y3CKGib{P}i<9LRGw$d?=`O#Le;O8f$BUafo;
z{Uma&mQ#*f>^82E#v;f1tJ}|AkSVHwqjK0=t5<pY3MafWXWExK$3b at d8iq+RrLjyq
z+O}-UEh>zn`2BDK)Btkjp31iVmj9GMAdue&d4+$tun at 65;#is$>4A~xwx7zU?r1hV
zAsja%)?xN7OEh|5u-H(y6d>l!C-Sj4WOtmxjiSC?ig});dxhGa&jsYgYcNNMj`&v~
zsc+A at e^Ao8!LC|ggED^Y*9=skbC2VyEMK<5mZb#%>P7w+{`mXbR7(xw6YA#yjK97G
f`0Lg94h3+k$F_;1I5wDi1E8mM8(eeq&V&C4EVA$x
literal 0
HcmV?d00001
diff --git a/themes/landau-hacker/theme.yaml b/themes/landau-hacker/theme.yaml
new file mode 100644
index 000000000000..008f010b397e
--- /dev/null
+++ b/themes/landau-hacker/theme.yaml
@@ -0,0 +1,15 @@
+name: "LANDAU Hacker"
+license: "CC0-1.0"
+licenselink: "https://gitflic.ru/project/maquefel/landau-hacker/LICENSE"
+description: "Порт темы Hacker от GitHub Pages с доработками для LANDAU"
+homepage: "https://landau.one"
+tags: ["blog", "dark", "minimal", "technical"]
+features: ["blog", "news", "events"]
+min_version: "0.112.0"
+
+author:
+ name: "RULKC"
+
+original:
+ name: "pages-themes/hacker"
+ repo: "https://github.com/pages-themes/hacker"
--
2.48.1
More information about the rulkc
mailing list