Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fd90371b1a | |||
| 65b5d1bd44 | |||
| bb691259bb | |||
| b5434ff46f | 
							
								
								
									
										9
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,8 +1 @@ | ||||
| venv/ | ||||
| site/*.html | ||||
| site/atom_blog.xml | ||||
| site/atom_events.xml | ||||
| poster.html | ||||
| poster.pdf | ||||
| http.access.log | ||||
| http.error.log | ||||
| public | ||||
|   | ||||
							
								
								
									
										661
									
								
								LICENCE
									
									
									
									
									
								
							
							
						
						| @@ -1,661 +0,0 @@ | ||||
|                     GNU AFFERO GENERAL PUBLIC LICENSE | ||||
|                        Version 3, 19 November 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 Affero General Public License is a free, copyleft license for | ||||
| software and other kinds of works, specifically designed to ensure | ||||
| cooperation with the community in the case of network server software. | ||||
|  | ||||
|   The licenses for most software and other practical works are designed | ||||
| to take away your freedom to share and change the works.  By contrast, | ||||
| our General Public Licenses are 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. | ||||
|  | ||||
|   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. | ||||
|  | ||||
|   Developers that use our General Public Licenses protect your rights | ||||
| with two steps: (1) assert copyright on the software, and (2) offer | ||||
| you this License which gives you legal permission to copy, distribute | ||||
| and/or modify the software. | ||||
|  | ||||
|   A secondary benefit of defending all users' freedom is that | ||||
| improvements made in alternate versions of the program, if they | ||||
| receive widespread use, become available for other developers to | ||||
| incorporate.  Many developers of free software are heartened and | ||||
| encouraged by the resulting cooperation.  However, in the case of | ||||
| software used on network servers, this result may fail to come about. | ||||
| The GNU General Public License permits making a modified version and | ||||
| letting the public access it on a server without ever releasing its | ||||
| source code to the public. | ||||
|  | ||||
|   The GNU Affero General Public License is designed specifically to | ||||
| ensure that, in such cases, the modified source code becomes available | ||||
| to the community.  It requires the operator of a network server to | ||||
| provide the source code of the modified version running there to the | ||||
| users of that server.  Therefore, public use of a modified version, on | ||||
| a publicly accessible server, gives the public access to the source | ||||
| code of the modified version. | ||||
|  | ||||
|   An older license, called the Affero General Public License and | ||||
| published by Affero, was designed to accomplish similar goals.  This is | ||||
| a different license, not a version of the Affero GPL, but Affero has | ||||
| released a new version of the Affero GPL which permits relicensing under | ||||
| this license. | ||||
|  | ||||
|   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 Affero 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. Remote Network Interaction; Use with the GNU General Public License. | ||||
|  | ||||
|   Notwithstanding any other provision of this License, if you modify the | ||||
| Program, your modified version must prominently offer all users | ||||
| interacting with it remotely through a computer network (if your version | ||||
| supports such interaction) an opportunity to receive the Corresponding | ||||
| Source of your version by providing access to the Corresponding Source | ||||
| from a network server at no charge, through some standard or customary | ||||
| means of facilitating copying of software.  This Corresponding Source | ||||
| shall include the Corresponding Source for any work covered by version 3 | ||||
| of the GNU General Public License that is incorporated pursuant to the | ||||
| following paragraph. | ||||
|  | ||||
|   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 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 work with which it is combined will remain governed by version | ||||
| 3 of the GNU General Public License. | ||||
|  | ||||
|   14. Revised Versions of this License. | ||||
|  | ||||
|   The Free Software Foundation may publish revised and/or new versions of | ||||
| the GNU Affero 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 Affero 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 Affero 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 Affero 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 Affero 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 Affero General Public License for more details. | ||||
|  | ||||
|     You should have received a copy of the GNU Affero 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 your software can interact with users remotely through a computer | ||||
| network, you should also make sure that it provides a way for users to | ||||
| get its source.  For example, if your program is a web application, its | ||||
| interface could display a "Source" link that leads users to an archive | ||||
| of the code.  There are many ways you could offer source, and different | ||||
| solutions will be better for different programs; see section 13 for the | ||||
| specific requirements. | ||||
|  | ||||
|   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 AGPL, see | ||||
| <https://www.gnu.org/licenses/>. | ||||
							
								
								
									
										22
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | ||||
| output : all | ||||
|  | ||||
| public: | ||||
| 	mkdir public | ||||
|  | ||||
| public/static: static | ||||
| 	cp -r static public/ | ||||
|  | ||||
| public/%.html : %.md | ||||
| 	@cp start.html $@ | ||||
| 	@cat $< | sed 's#.md)#.html)#g' | pandoc -f markdown -t html5 -o- >> $@ | ||||
| 	@cat end.html >> $@ | ||||
|  | ||||
| HTML := $(patsubst %.md,public/%.html,$(wildcard *.md)) | ||||
|  | ||||
| all : public $(HTML) public/static | ||||
|  | ||||
| test: | ||||
| 	echo $(HTML) | ||||
|  | ||||
| clean : | ||||
| 	rm -rf public | ||||
							
								
								
									
										41
									
								
								README.md
									
									
									
									
									
								
							
							
						
						| @@ -1,39 +1,12 @@ | ||||
| # Decentrala | ||||
| This repo builds the website `dmz.rs`. | ||||
|  | ||||
| Redisign of dmz.rs . | ||||
| ## Dependencies | ||||
|  | ||||
| ## Build site | ||||
| - `make` | ||||
| - `pandoc` | ||||
|  | ||||
| Run | ||||
| ## Usage | ||||
|  | ||||
| ``` | ||||
| python atom_gen.py | ||||
| python prep.py | ||||
| python build_pages.py | ||||
| ``` | ||||
| `make` | ||||
|  | ||||
| Complete website will be contained in `site/`. You can copy this to server. | ||||
|  | ||||
| ## Development server | ||||
|  | ||||
| To start a development server, first build site, then run (possibly with `sudo`) | ||||
|  | ||||
| ``` | ||||
| nginx -p . -c nginx.dev.conf | ||||
| ``` | ||||
|  | ||||
| To stop it: | ||||
|  | ||||
| ``` | ||||
| nginx -p . -s stop | ||||
| ``` | ||||
|  | ||||
| ## TODO: | ||||
|  | ||||
| - [x] create page builder | ||||
| - [ ] create blogging system | ||||
| - [ ] create xmpp bot that connects to events section. | ||||
| - [ ] webring system | ||||
|   - [x] make page | ||||
|   - [ ] populate page | ||||
| - [ ] make english version (localisation) | ||||
| The output will appear in the `public` directory. | ||||
|   | ||||
							
								
								
									
										73
									
								
								atom_gen.py
									
									
									
									
									
								
							
							
						
						| @@ -1,73 +0,0 @@ | ||||
| #! /usr/bin/python3 | ||||
|  | ||||
| # needs lowdown and feegden installed | ||||
| # feedgen can be installed with pip | ||||
| # also expects that *.md files are in blog/ directory | ||||
|  | ||||
| from feedgen.feed import FeedGenerator | ||||
| import datetime | ||||
| import subprocess | ||||
| import os | ||||
|  | ||||
| blogs_dir = os.fsencode("blog") | ||||
|  | ||||
| def blogposts_list_gen(): | ||||
|     output_list = [] | ||||
|     for file in os.listdir(blogs_dir): | ||||
|         filename = os.fsdecode(file) | ||||
|         if filename.endswith(".md"): | ||||
|             full_path = "blog/" + filename | ||||
|  | ||||
|             author = subprocess.run("lowdown -X author " + full_path, capture_output=True, shell=True, text=True).stdout.strip() | ||||
|             title = subprocess.run("lowdown -X title " + full_path, capture_output=True, shell=True, text=True).stdout.strip() | ||||
|             time = subprocess.run("lowdown -X time " + full_path, capture_output=True, shell=True, text=True).stdout.strip() | ||||
|             content_html = subprocess.run("lowdown " + full_path, capture_output=True, shell=True, text=True).stdout.strip() | ||||
|  | ||||
|             output_list.append([author, title, time, content_html, full_path]) | ||||
|     return output_list | ||||
|  | ||||
| def events_list_gen(): | ||||
|     output_list = [] | ||||
|     events_file = open("dogadjaji.csv", "r") | ||||
|     for line in events_file.readlines(): | ||||
|             date, time, location, title = line.split(", ") | ||||
|             author = "Decentrala" | ||||
|             content_html = f"Event is taking place at {location} on {date} at {time}. For more information see the forum at https://forum.dmz.rs" | ||||
|  | ||||
|             output_list.append([author, title, content_html]) | ||||
|     events_file.close() | ||||
|     return output_list | ||||
|  | ||||
| def feedgen(blogs, events): | ||||
|     fg_blog = FeedGenerator() | ||||
|     fg_blog.id('http://dmz.rs/') | ||||
|     fg_blog.title('Decentrala Blog') | ||||
|     fg_blog.author( {'name':'Decentrala','email':'dmz@dmz.rs'} ) | ||||
|     fg_blog.link( href='https://dmz.rs/atom_blog.xml', rel='self' ) | ||||
|  | ||||
|     fg_events = FeedGenerator() | ||||
|     fg_events.id('http://dmz.rs/') | ||||
|     fg_events.title('Decentrala Blog') | ||||
|     fg_events.author( {'name':'Decentrala','email':'dmz@dmz.rs'} ) | ||||
|     fg_events.link( href='https://dmz.rs/atom_events.xml', rel='self' ) | ||||
|  | ||||
|     for post in blogs: | ||||
|         fe_blogs = fg_blog.add_entry() | ||||
|         fe_blogs.id("https://dmz.rs/" + post[4][:-3] + ".html") | ||||
|         fe_blogs.author({'name': post[0]}) | ||||
|         fe_blogs.title(post[1]) | ||||
|         fe_blogs.updated(post[2]) | ||||
|         fe_blogs.content(content=post[3], type='html') | ||||
|  | ||||
|     for event in events: | ||||
|         fe_events = fg_events.add_entry() | ||||
|         fe_events.id("https://dmz.rs/pages/events.html") | ||||
|         fe_events.author({'name': event[0]}) | ||||
|         fe_events.title(event[1]) | ||||
|         fe_events.updated(datetime.datetime.now(datetime.timezone.utc)) | ||||
|         fe_events.content(content=event[2], type='html') | ||||
|  | ||||
|     fg_blog.atom_file('site/atom_blog.xml') | ||||
|     fg_events.atom_file('site/atom_events.xml') | ||||
|  | ||||
| feedgen(blogposts_list_gen(), events_list_gen()) | ||||
							
								
								
									
										11
									
								
								blog.py
									
									
									
									
									
								
							
							
						
						| @@ -1,11 +0,0 @@ | ||||
| # just testing markdown library for now | ||||
|  | ||||
| from markdown import markdown as to_markdown | ||||
|  | ||||
| blog = "" | ||||
|  | ||||
| with open('blogs/Lorem Ipsum.md','rt') as file: | ||||
|     blog = file.read() | ||||
|  | ||||
| with open('blogs/Lorem Ipsum.html', 'wt') as file: | ||||
|     file.write(to_markdown(blog)) | ||||
| @@ -1,33 +0,0 @@ | ||||
| import os | ||||
|  | ||||
| PAGES = [ | ||||
|     {'name': 'index', 'titleSR': 'Početna', 'titleEN': 'Home', 'style': 'home'}, | ||||
|     {'name': 'account', 'titleSR': 'Nalog', 'titleEN': 'Account', 'style': 'account'}, | ||||
|     {'name': 'contact', 'titleSR': 'Kontakt', 'titleEN': 'Contact', 'style': 'contact'}, | ||||
|     {'name': 'events', 'titleSR': 'Događaji', 'titleEN': 'Events', 'style': 'events'}, | ||||
|     {'name': 'services', 'titleSR': 'Servisi', 'titleEN': 'Services', 'style': 'services'}, | ||||
|     {'name': 'webring', 'titleSR': 'Webring', 'titleEN': 'Webring', 'style': ''}, | ||||
| ] | ||||
|  | ||||
| def buildPage(pageTitle: str, pageHtml: str, pageStyle: str, template: str) -> str: | ||||
|     template = template.replace('<!--TITLE-->', pageTitle) | ||||
|     style =  '' if not pageStyle else f'<link rel=\"stylesheet\" href=\"/styles/{pageStyle}.css\">' | ||||
|     template = template.replace('<!--ADDITIONAL_STYLE-->', style) | ||||
|     template = template.replace('<!--MAIN-->', pageHtml) | ||||
|     return template | ||||
|  | ||||
| def main(): | ||||
|     os.makedirs('site/en/', exist_ok=True) | ||||
|     with open('template/page-en.html') as fTempEN, open('template/page-sr.html') as fTempSR: | ||||
|         templateSR = fTempSR.read() | ||||
|         templateEN = fTempEN.read() | ||||
|         for page in PAGES: | ||||
|             with open(f'pages/sr/{page["name"]}.html') as f: | ||||
|                 pageHtml = f.read() | ||||
|                 html = buildPage(page['titleSR'], pageHtml, page['style'], templateSR) | ||||
|                 f = open(f'site/{page["name"]}.html', 'w') | ||||
|                 f.write(html) | ||||
|                 f.close() | ||||
|  | ||||
| if __name__ == '__main__': | ||||
|     main() | ||||
							
								
								
									
										12
									
								
								chat.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,12 @@ | ||||
| ## Chat | ||||
|  | ||||
| Za koriscenje XMPP (Jabber) mozete koristiti | ||||
| [Gajim](https://gajim.org/download/){target="blank"} na racunaru , | ||||
| [Conversations](https://conversations.im/){target="blank"} na Andoroid-u | ||||
| (ne pravite nalog na conversations.im serveru, mozete na dmz.rs ili | ||||
| nekom drugom) i [Monal](https://monal-im.org/){target="blank"} na Apple | ||||
| proizvodima. | ||||
|  | ||||
| Mozete nas naci u XMPP grupi | ||||
| [decentrala@conference.dmz.rs](xmpp:decentrala@conference.dmz.rs?join) | ||||
|  | ||||
| @@ -1,20 +0,0 @@ | ||||
| datum, vreme, lokacija, tema | ||||
| 03-05-2023, 12:00, Cvijeta Zuzoric https://www.openstreetmap.org/node/256367543, Otvaranje izlozbe (Q&A) | ||||
| 03-05-2023, 18:00, KC Grad https://www.openstreetmap.org/node/4118716889, Linux install fest | ||||
| 04-05-2023, 17:00, Cvijeta Zuzoric https://www.openstreetmap.org/node/256367543, ULUS izlozba (Q&A) | ||||
| 04-05-2023, 18:00, Polyhedra https://www.openstreetmap.org/node/4856556781, Uvod u racunarske mreze | ||||
| 04-05-2023, 21:00, n/a, Online sastanak sa Zajednicom za slobodnu tehnologiju iz Kikinde | ||||
| 05-05-2023, 15:30, Cvijeta Zuzoric https://www.openstreetmap.org/node/256367543, ULUS izlozba (Q&A) | ||||
| 06-05-2023, 12:00, Cvijeta Zuzoric https://www.openstreetmap.org/node/256367543, ULUS izlozba (Q&A) | ||||
| 07-05-2023, 16:00, Cvijeta Zuzoric https://www.openstreetmap.org/node/256367543, ULUS izlozba (diskusija) | ||||
| 08-05-2023, 19:00, DC Krov https://www.openstreetmap.org/node/10594728522, Linux install day | ||||
| 09-05-2023, 19:00, DC Krov https://www.openstreetmap.org/node/10594728522, Cryptoparty - Uvod u privatnost | ||||
| 11-05-2023, 18:00, Polyhedra https://www.openstreetmap.org/node/4856556781, Uvod u racunarske mreze | ||||
| 01-08-2023, 19:00, DC Krov, Tehno veče | ||||
| 07-08-2023, 19:00, DC Krov, Linux ricing | ||||
| 08-08-2023, 19:00, DC Krov, Lambda račun | ||||
| 14-08-2023, 19:00, DC Krov, Linux distro diskusija | ||||
| 15-08-2023, 19:00, DC Krov, Pirati 777 mora | ||||
| 21-08-2023, 19:00, DC Krov, Python vežbe | ||||
| 22-08-2023, 19:00, DC Krov, Autentifikacija na internetu | ||||
| 28-08-2023, 19:00, DC Krov, Kviz | ||||
| 
 | 
							
								
								
									
										36
									
								
								dogadjaji.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,36 @@ | ||||
| # DECENTRALA | ||||
|  | ||||
| ## Dogadjaji | ||||
|  | ||||
| \> Ponedeljak (5. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Sifre | ||||
| (predavanje) | ||||
|  | ||||
| \> Utorak (6. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Genersianje | ||||
| random podataka (predavanje) | ||||
|  | ||||
| \> Ponedeljak (12. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Uvod u Blender, | ||||
| 3D modelovanje (radionica) | ||||
|  | ||||
| \> Utorak (13. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Cybersecurity | ||||
| odbrana (predavanje) | ||||
|  | ||||
| \> Ponedeljak (19. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), BASH skripte | ||||
| (predavanje) | ||||
|  | ||||
| \> Utorak (20. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Cybersecurity | ||||
| odbrana (predavanje) | ||||
|  | ||||
| \> Ponedeljak (26. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Python vezbe | ||||
| (radionica) | ||||
|  | ||||
| \> Utorak (27. Jun) u 19h u [DC | ||||
| Krovu](https://www.openstreetmap.org/node/2937736453), Cybersecurity | ||||
| odbrana (predavanje) | ||||
|  | ||||
							
								
								
									
										6
									
								
								forum.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,6 @@ | ||||
| ## Forum | ||||
|  | ||||
| Forum je na [forum.dmz.rs](https://forum.dmz.rs) | ||||
|  | ||||
| Nalog na forumu nije povezan sa nalogom na xmpp i mail serveru | ||||
|  | ||||
							
								
								
									
										10
									
								
								index.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,10 @@ | ||||
| Decentrala je zajednica okupljena oko decentralizacije tehnologija i | ||||
| sirenja znanja. | ||||
|  | ||||
| - [DOGAĐAJI](dogadjaji.md) | ||||
| - [FORUM](forum.md) | ||||
| - [CHAT](chat.md) | ||||
| - [NALOG](nalog.md) | ||||
| - [O NAMA](onama.md) | ||||
| - [SERVISI](servisi.md) | ||||
| - [KONTAKT](kontakt.md) | ||||
							
								
								
									
										9
									
								
								kontakt.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,9 @@ | ||||
| ## Kontakt | ||||
|  | ||||
| Mozete nam poslati email na dmz@dmz.rs | ||||
|  | ||||
| Ili nas kontaktiraje na [forumu](/forum.html) ili [chat | ||||
| kanalu](/chat.html) | ||||
|  | ||||
| Takodje mozete i doci na neku od dogadjaja i upoznati nas uzivo | ||||
|  | ||||
							
								
								
									
										14
									
								
								nalog.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,14 @@ | ||||
| ## Nalog | ||||
|  | ||||
| Ako ste napravili nalog na dmz.rs mozete koristi nas xmpp i email | ||||
| server. | ||||
|  | ||||
| Za vise o XMPP pogledajte [Chat](/chat.html) stranicu. | ||||
|  | ||||
| Za primer podesavanja na [Thundebird](https://www.thunderbird.net/) mail | ||||
| klijentu mozete pogledati [sliku](/static/img/mailsettings.png). | ||||
|  | ||||
| -   Registruj se | ||||
| -   Izbrisi nalog | ||||
| -   Promeni lozinku | ||||
|  | ||||
| @@ -1,23 +0,0 @@ | ||||
| # Start nginx in this directory with `nginx -p . -c nginx.conf` | ||||
| # Stop nginx with `nginx -p . -s stop` | ||||
| events {} | ||||
|  | ||||
| http { | ||||
|     # edit this for your system | ||||
|     include /etc/nginx/mime.types; | ||||
|  | ||||
|     server { | ||||
|         listen 9001; | ||||
|         access_log http.access.log; | ||||
|         error_log http.error.log; | ||||
|          | ||||
|         root site/; | ||||
|  | ||||
|         error_page 404 /404.html; | ||||
|         location / { | ||||
|             autoindex off; | ||||
|             default_type "text/html"; | ||||
|             try_files  $uri $uri.html /$uri/index.html /index.html; | ||||
|         } | ||||
|     } | ||||
| } | ||||
							
								
								
									
										32
									
								
								onama.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,32 @@ | ||||
| ## Sta je Decentrala | ||||
|  | ||||
| Decentrala je zajednica okupljena oko decentralizacije tehnologija i | ||||
| sirenja znanja. | ||||
|  | ||||
| ### Znanje | ||||
|  | ||||
| Svako moze drzati predavanje na bilo koju temu, samo se najavite na | ||||
| forumu. | ||||
|  | ||||
| Decentrala veruje da svako treba da ima pristup znanju, zbog cega su | ||||
| predavanja uvek besplatna i bez promocija. | ||||
|  | ||||
| Ako zelite nesto da podelite sa drugima sto ste naucili, prijavite se da | ||||
| drzite jedno ili vise predavanja! | ||||
|  | ||||
| ### Akcija | ||||
|  | ||||
| Organizovanje dogadjaja programiranja ili instalacije servisa koje | ||||
| pomazu u decentralizaciji Interneta. | ||||
|  | ||||
| Organizujemo hackathone kao posebne dogadjaje na kojima se okupljamo da | ||||
| radimo na zajednickom cilju. | ||||
|  | ||||
| ### Druzenje | ||||
|  | ||||
| Drustvene dogadjaje u cilju socijalizacije. | ||||
|  | ||||
| Ako zelite da se druzite sa ljudima zainteresovanim za ravnopravnost | ||||
| koriscenja tehnologija, slobodnog softvera, privatnost i bezbednost, | ||||
| posetite neku od okupljanja Decentrale. | ||||
|  | ||||
| @@ -1,7 +0,0 @@ | ||||
| <p> Ako ste napravili nalog na dmz.rs mozete koristi nas xmpp i email server i ostale servise koji podrzavaju LDAP login. <p> | ||||
| <p> Za vise o XMPP pogledajte <a href="https://wiki.dmz.rs/en/tutorial/conversations">tutorial</a>. <p> | ||||
| <p> Za primer podesavanja na <a href="https://thunderbird.org">Thundebird</a> mail klijentu mozete pogledati <a href="/img/mailsettings.png">sliku</a>. <p> | ||||
|  | ||||
| <p><a href="/account/register/">Registruj se</a><p> | ||||
| <p><a href="/account/unregister/">Izbrisi nalog</a><p> | ||||
| <p><a href="/account/changepassword/">Promeni lozinku</a><p> | ||||
| @@ -1,2 +0,0 @@ | ||||
| Ova stranica je trenutno u izradi... | ||||
|      | ||||
| @@ -1,5 +0,0 @@ | ||||
| <h1>Kontakt</h1> | ||||
| <p>Možeš nam poslati mejl na adresu <a href="mailto:dmz@dmz.rs">dmz@dmz.rs</a> ili se možeš pridružiti našem <a href="https://forum.dmz.rs">Forumu</a>.</p> | ||||
| <p>Takođe smo dostupni i na <a href="https://balkan.fedive.rs/@decentrala">Fediversu!</a></p> | ||||
| <br> | ||||
| <p>U slučaju da si pronašao <em>bug</em> na sajtu, bili bismo ti jako zahvalni ako bi nam ga prijavio/prijalvila.</p> | ||||
| @@ -1,59 +0,0 @@ | ||||
| <h1>Događaji</h1> | ||||
| <table> | ||||
|   <tbody> | ||||
|     <tr> | ||||
|       <th>Datum</th> | ||||
|       <th>Vreme</th> | ||||
|       <th>Mesto</th> | ||||
|       <th>Tema</th> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Ponedeljak, 7. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Linux ricing </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Utorak, 8. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Lambda račun </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Ponedeljak, 14. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Linux distro diskusija </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Utorak, 15. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Pirati 777 mora </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Ponedeljak, 21. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Python vežbe </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Utorak, 22. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Autentifikacija na internetu </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Ponedeljak, 28. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Podesavanje Mail servera </td> | ||||
|     </tr> | ||||
|     <tr> | ||||
|       <td> Utorak, 29. Avgust 2023. </td> | ||||
|       <td> 19:00h </td> | ||||
|       <td> DC Krov </td> | ||||
|       <td> Prevodjenje wiki-a </td> | ||||
|     </tr> | ||||
|   </tbody> | ||||
| </table> | ||||
| @@ -1,23 +0,0 @@ | ||||
| <h1>Dobrodošao!</h1> | ||||
| <p> | ||||
|   Mi smo <em>Decentrala</em> - grupa entuzijasta okupljena oko ideja decentralizacije i slobodnog širenja znanja. | ||||
|   Zvuči interesantno? Evo još nekih stvari o nama: | ||||
| </p> | ||||
| <dl> | ||||
|   <dt>Znanje:</dt> | ||||
|   <dd>Sve naše radionice su besplatne i otvorene za sve zainteresovane. | ||||
|     Ako želiš nešto da podeliš najavi se na našem <a href="https://forum.dmz.rs">Forumu</a> i održi radionicu kod nas! | ||||
|   </dd> | ||||
|   <dt>Akcije:</dt> | ||||
|   <dd>Povremeno organizujemo različite akcije, hakatone, crypto-partije, izložbe i slične događaje otvorene za sve | ||||
|     zainteresovane. </dd> | ||||
|   <dt>Servisi:</dt> | ||||
|   <dd>Na našim serverima pokrećemo razne servise (email, git, wiki i druge) koji su otvoreni za sve i koji se mogu | ||||
|     koristiti sa ili bez našeg naloga.</dd> | ||||
| </dl> | ||||
| <p> | ||||
|   Ako si i dalje zainteresovan, možeš napraviti <a href="/pages/account.html">nalog</a> na našem serveru koji će ti | ||||
|   omogućiti korišćenje svih naših <a href="/pages/services.html">servisa</a>. | ||||
|   Ako želiš prvo da vidiš kako to sve izgleda u realnosti, možeš doći na neki od naših <a | ||||
|     href="/pages/events.html">događaja</a>, i tu nas upoznati! | ||||
| </p> | ||||
| @@ -1 +0,0 @@ | ||||
| Ova stranica je trenutno u izradi... | ||||
| @@ -1,60 +0,0 @@ | ||||
| <h1>Servisi</h1> | ||||
| <table> | ||||
|   <tr> | ||||
|     <th>Servis</th> | ||||
|     <th>Opis</th> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="/account.html">Email</a></td> | ||||
|     <td>Email nalog koji možeš koristiti sa bilo kojim email | ||||
|       klijentom generalne namene (na primer <a href="https://www.thunderbird.net/">Thunderbird-u</a>).</td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="https://forum.dmz.rs/">Forum</a></td> | ||||
|     <td>Forum na kom obično organizujemo naše <a href="/pages/events.html">događaje</a>. | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td>Chat</td> | ||||
|     <td>Održavamo sopstveni XMPP server, na kojem možeš napraviti nalog. | ||||
|       Ako već poseduješ nalog možeš nas naći u grupi <a | ||||
|         href="decentrala@conference.dmz.rs">decentrala@conference.dmz.rs</a>. | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="https://gitea.dmz.rs/">Git</a></td> | ||||
|     <td><a href="https://gitea.io/en-us/">Gitea</a> instanca na kojoj držimo kod kao i ostale resurse za naše | ||||
|       <a href="/pages/projects.html">projekte</a>, <a href="/pages/events.html">dogadjaje</a>, kao i projekte naših | ||||
|       prijatelja. | ||||
|       Ovo može biti dom tvog sledećeg projekta. Bolji od Github-a. | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="https://wiki.dmz.rs/">Wiki</a></td> | ||||
|     <td><a href="https://js.wiki/">Wiki.js</a> instanca koju koristimo da dokumentujemo naše | ||||
|       <a href="/pages/projects.html">projekte</a> kao i | ||||
|       ostale <a href="/pages/events.html">događaje</a>. | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="https://search.dmz.rs/">Search</a></td> | ||||
|     <td><a href="https://github.com/hnhx/librex/">LibreX</a> instanca koju koristimo za pretraživanje Interneta. | ||||
|       Bolji od Google-a. | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="https://pastebin.dmz.rs/">Pastebin</a></td> | ||||
|     <td><a href="https://privatebin.info/">PrivateBin</a> instanca koju koristimo za brzo deljenje tekstualnih fajlova | ||||
|     </td> | ||||
|   </tr> | ||||
|   <tr> | ||||
|     <td><a href="ssh://soft.dmz.rs:2222/">Soft Serve</a></td> | ||||
|     <td><a href="https://github.com/charmbracelet/soft-serve">Soft Serve</a> instanca koju koristimo kao zamenu za Gitea | ||||
|       servis. | ||||
|       Soft Serve radi potpuno iz terminala | ||||
|     </td> | ||||
|   </tr> | ||||
| </table> | ||||
| <p>Ovo su neki od servisa koje trenutno održavamo na našim serverima. Da bi koristio ove servise, <em>možes</em> se | ||||
|   registovati na svaki servis posebno, a možeš i napraviti jedinstveni <a href="/pages/account.html">nalog</a> na nasem | ||||
|   serveru i koristiti sve servise sa istim nalogom.</p> | ||||
| @@ -1,3 +0,0 @@ | ||||
| <ul> | ||||
|   <li><a href="https://tilde.zone/explore">Tilde Zone</a></li> | ||||
| </ul> | ||||
							
								
								
									
										61
									
								
								poster.py
									
									
									
									
									
								
							
							
						
						| @@ -1,61 +0,0 @@ | ||||
| import csv | ||||
| import datetime as dt | ||||
| from dateutil import relativedelta | ||||
|  | ||||
| EVENTS_CSV_PATH = "dogadjaji.csv" | ||||
| CURRENT_TIME = dt.date.today() | ||||
| NEXT_MONTH = CURRENT_TIME + relativedelta.relativedelta(months=1, day=1) | ||||
| DAYS_OF_WEEK_SR = ("PON", "UTO", "SRE", "ČET", "PET", "SUB", "NED") | ||||
| MONTHS_SR = ("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust",\ | ||||
|             "Septembar", "Oktobar", "Novembar", "Decembar") | ||||
|  | ||||
| def load_events(csv_path:str) -> list[dict]: | ||||
|     events = [] | ||||
|     with open(csv_path) as csv_file: | ||||
|         csv_reader = csv.reader(csv_file) | ||||
|         next(csv_reader, None) | ||||
|         for event in csv_reader: | ||||
|             event_date = event[0] | ||||
|             event_date_parsed = dt.datetime.strptime(event_date, "%d-%m-%Y").date() | ||||
|             event_time = event[1] | ||||
|             event_title = event[3] | ||||
|             current_event = {"date":event_date_parsed, | ||||
|                              "time":event_time, | ||||
|                              "title":event_title.strip()} | ||||
|             if event_date_parsed >= NEXT_MONTH: | ||||
|                 events.append(current_event) | ||||
|         return events | ||||
|  | ||||
| def render_table(events:list[dict])-> str: | ||||
|     html = "" | ||||
|     for event in events: | ||||
|         date = DAYS_OF_WEEK_SR[event["date"].weekday()] | ||||
|         day = event["date"].day | ||||
|         title = event["title"] | ||||
|         html += f"\t\t\t<tr> <td>{date}</td> <td>{day}.</td> <td>{title}</td> </tr>\n" | ||||
|     return html | ||||
|  | ||||
| def render_page(table: str) -> str: | ||||
|     head = "<head><meta charset=\"UTF-8\"><link rel=\"stylesheet\"\ | ||||
| href=\"styles/poster.css\"><head>" | ||||
|     header = "<h1>DECENTRALA</h1>" | ||||
|     subheader = f"<h2>Plan za {MONTHS_SR[NEXT_MONTH.month - 1]}</h2>" | ||||
|     link = "<div id=link><img src=\"/img/logo-light.svg\"> dmz.rs</div>" | ||||
|     p1 = "<p>Radionice počinju u <strong>19h</strong> u Društvenom centru Krov\ | ||||
| u <strong>Kraljice Marije 47</strong>.</p>" | ||||
|     p2 = "<p>Ulaz u zgradu je u prolazu pored Štark prodavnice slatkiša, odmah\ | ||||
| pored menjačnice. DC Krov je na poslednjem spratu.</p>" | ||||
|     footer = f"{p1}{p2}{link}" | ||||
|     return f"<html>{head}<body><main>{header}{subheader}\ | ||||
| <table>{table}</table>{footer}</main></body></html>" | ||||
|      | ||||
| def main(): | ||||
|     events = load_events(EVENTS_CSV_PATH) | ||||
|     table = render_table(events) | ||||
|     page = render_page(table) | ||||
|     f = open("poster.html", "w") | ||||
|     f.write(page) | ||||
|     f.close() | ||||
|  | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
							
								
								
									
										101
									
								
								prep.py
									
									
									
									
									
								
							
							
						
						| @@ -1,101 +0,0 @@ | ||||
| #! /usr/bin/env python | ||||
|  | ||||
| from datetime import datetime | ||||
| from functools import cmp_to_key | ||||
|  | ||||
| days = [ | ||||
|     "Ponedeljak", | ||||
|     "Utorak", | ||||
|     "Sreda", | ||||
|     "Četvrtak", | ||||
|     "Petak", | ||||
|     "Subota", | ||||
|     "Nedelja", | ||||
| ] | ||||
|  | ||||
| months = [ | ||||
|     "Januar", | ||||
|     "Februar", | ||||
|     "Mart", | ||||
|     "April", | ||||
|     "Maj", | ||||
|     "Jun", | ||||
|     "Jul", | ||||
|     "Avgust", | ||||
|     "Septembar", | ||||
|     "Oktobar", | ||||
|     "Novembar", | ||||
|     "Decembar", | ||||
| ] | ||||
|  | ||||
| today = datetime.today().date() | ||||
|  | ||||
| def parse_date(date): | ||||
|     return datetime.strptime(date,"%d-%m-%Y").date() | ||||
|  | ||||
| def compare_events(one, two): | ||||
|     one = parse_date(one.split(", ")[0]) | ||||
|     two = parse_date(two.split(", ")[0]) | ||||
|     if one>two: | ||||
|         return 1 | ||||
|     elif one==two: | ||||
|         return 0 | ||||
|     else: | ||||
|         return -1 | ||||
|  | ||||
| def is_past_event(event): | ||||
|     return event < today | ||||
|  | ||||
| def load_events(): | ||||
|     events = [] | ||||
|     with open("dogadjaji.csv", "rt") as file: | ||||
|         file.readline() | ||||
|         for event in file.readlines(): | ||||
|             event = event.strip() | ||||
|             if event != "": | ||||
|                 events.append(event) | ||||
|     return events | ||||
|  | ||||
| def write_events(events): | ||||
|     with open("dogadjaji.csv", "wt") as file: | ||||
|         file.write("datum, vreme, lokacija, tema\n") | ||||
|         for event in events: | ||||
|             file.write(event+"\n") | ||||
|  | ||||
| def sort_events(events): | ||||
|     return sorted(events, key = cmp_to_key(compare_events)) | ||||
|  | ||||
|  | ||||
| events = load_events() | ||||
| events = sort_events(events) | ||||
| write_events(events) | ||||
|  | ||||
| events = [] | ||||
|  | ||||
| for event in events: | ||||
|     date, time, location, title = event.split(", ") | ||||
|     date = parse_date(date) | ||||
|     if is_past_event(date): | ||||
|         continue | ||||
|     date = days[date.weekday()]+", "+str(date.day)+". "+months[date.month-1]+" "+str(date.year)+"." | ||||
|     time = time+"h" | ||||
|     future_event = [] | ||||
|     future_event.append("<td> "+date+" </td>") | ||||
|     future_event.append("<td> "+time+" </td>") | ||||
|     if "https://" in location: | ||||
|         place,link = location.split("https://") | ||||
|         future_event.append("<td> <a href=\"https://"+link+"\""+"> "+place.strip()+" </a> </td>") | ||||
|     else: | ||||
|         future_event.append("<td> "+location.strip()+" </td>") | ||||
|     future_event.append("<td> "+title+" </td>") | ||||
|     events.append("<tr>\n"+"\n".join(future_event)+"\n</tr>") | ||||
|  | ||||
| with open("pages/sr/events.html","wt") as file: | ||||
|     file.writelines(["<h1>Događaji</h1>\n", "<table>\n", "<tr><th>Datum</th><th>Vreme</th><th>Mesto</th><th>Tema</th></tr>\n"]) | ||||
|     file.writelines(events) | ||||
|     file.writelines(["</table>"]) | ||||
|  | ||||
| #with open("pages/en/events.html","wt") as file: | ||||
| #    file.writelines(["<h1>Events</h1>", "<table>", "<tr>\n<th>Date</th>\n<th>Time</th>\n<th>Place</th>\n<th>Theme</th>\n</tr>"]) | ||||
| #    file.writelines(events) | ||||
| #    file.writelines(["</table>"]) | ||||
							
								
								
									
										36
									
								
								servisi.html
									
									
									
									
									
								
							
							
						
						| @@ -1,36 +0,0 @@ | ||||
| <!doctype html> | ||||
| <meta charset="UTF-8"> | ||||
| <html> | ||||
| 	<head> | ||||
| 		<link rel="icon" type="image/x-icon" href="/static/d.png"> | ||||
| 		<link rel="stylesheet" href="./static/reset.css"> | ||||
| 		<link rel="stylesheet" href="./static/main.css"> | ||||
| 		<title>Decentrala</title> | ||||
| 	</head> | ||||
| 	<body> | ||||
| 		<div class="container"> | ||||
| 			<div class="header"> | ||||
| 				<h1 class="logo">DECENTRALA</h1> | ||||
| 			</div> | ||||
| 			<main> | ||||
| 				<h2>Servisi</h2> | ||||
| 				<p><a href="https://forum.dmz.rs">FORUM</a><p> | ||||
| 				<p><a href="../chat.html">XMPP</a><p> | ||||
| 				<p><a href="https://gitea.dmz.rs">GITEA</a><p> | ||||
| 				<p><a href="https://wiki.dmz.rs">WIKI</a><p> | ||||
| 				<p><a href="../nalog.html">EMAIL</a><p> | ||||
| 				<p><a href="ssh://soft.dmz.rs:2222">SOFT SERVE</a><p> | ||||
| 				<p><a href="https://search.dmz.rs">LibreX</a><p> | ||||
| 				<p><a href="https://git.dmz.rs">CGIT</a><p> | ||||
| 				<p><a href="https://pastebin.dmz.rs">PrivateBin</a><p> | ||||
| 				<p><a href="https://cryptpad.dmz.rs">CryptPad</a><p> | ||||
|  | ||||
| 				<div class="back"> | ||||
| 					<ul class="nav"> | ||||
| 						<a href="../"><li>Nazad</li></a> | ||||
| 					</ul> | ||||
| 				</div> | ||||
| 			</main> | ||||
| 		</div> | ||||
| 	</body> | ||||
| </html> | ||||
							
								
								
									
										24
									
								
								servisi.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,24 @@ | ||||
| # DECENTRALA {#decentrala .logo} | ||||
|  | ||||
| ## Servisi | ||||
|  | ||||
| [FORUM](https://forum.dmz.rs) | ||||
|  | ||||
| [XMPP](../chat.html) | ||||
|  | ||||
| [GITEA](https://gitea.dmz.rs) | ||||
|  | ||||
| [WIKI](https://wiki.dmz.rs) | ||||
|  | ||||
| [EMAIL](../nalog.html) | ||||
|  | ||||
| [SOFT SERVE](ssh://soft.dmz.rs:2222) | ||||
|  | ||||
| [LibreX](https://search.dmz.rs) | ||||
|  | ||||
| [CGIT](https://git.dmz.rs) | ||||
|  | ||||
| [PrivateBin](https://pastebin.dmz.rs) | ||||
|  | ||||
| [CryptPad](https://cryptpad.dmz.rs) | ||||
|  | ||||
							
								
								
									
										0
									
								
								site/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -1,19 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta charset="UTF-8"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|   <link rel="stylesheet" href="/styles/style.css"> | ||||
|   <link rel="stylesheet" href="/styles/404.css"> | ||||
|   <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"> | ||||
|   <script src="/scripts/main.js" defer></script> | ||||
|   <title>404</title> | ||||
| </head> | ||||
| <body> | ||||
|     <main> | ||||
|         <img src="/img/logo-light.svg" alt="Logo"> | ||||
|         <p>Requested resource was not found</p> | ||||
|         <p><a href="/">Go back to Homepage</a></p> | ||||
|     </main> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,11 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg5" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xmlns="http://www.w3.org/2000/svg"> | ||||
|  <g id="layer1" fill="#fff"> | ||||
|   <path id="path140" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".3554"/> | ||||
|   <g id="text2158" stroke-width=".35534" aria-label="cc"> | ||||
|    <path id="path290" d="m3.175 7.3025q-0.35983 0-0.64911-0.10583-0.28222-0.10583-0.48683-0.30339-0.19756-0.19756-0.31044-0.47978-0.10583-0.28222-0.10583-0.62794v-0.98778q0-0.34572 0.10583-0.62794 0.11289-0.28222 0.31044-0.47978 0.20461-0.19756 0.48683-0.30339 0.28928-0.10583 0.64911-0.10583 0.64206 0 1.0513 0.35278 0.41628 0.34572 0.50094 0.9525h-0.635q-0.049389-0.33867-0.30339-0.53622-0.24694-0.20461-0.61383-0.20461-0.42333 0-0.67028 0.254-0.24694 0.254-0.24694 0.6985v0.98778q0 0.4445 0.23989 0.6985 0.24694 0.254 0.67733 0.254 0.36689 0 0.61383-0.19756 0.254-0.20461 0.30339-0.54328h0.635q-0.091722 0.61383-0.508 0.95956-0.40922 0.34572-1.0442 0.34572z"/> | ||||
|    <path id="path292" d="m7.4083 7.3025q-0.35983 0-0.64911-0.10583-0.28222-0.10583-0.48683-0.30339-0.19756-0.19756-0.31044-0.47978-0.10583-0.28222-0.10583-0.62794v-0.98778q0-0.34572 0.10583-0.62794 0.11289-0.28222 0.31044-0.47978 0.20461-0.19756 0.48683-0.30339 0.28928-0.10583 0.64911-0.10583 0.64206 0 1.0513 0.35278 0.41628 0.34572 0.50094 0.9525h-0.635q-0.049389-0.33867-0.30339-0.53622-0.24694-0.20461-0.61383-0.20461-0.42333 0-0.67028 0.254-0.24694 0.254-0.24694 0.6985v0.98778q0 0.4445 0.23989 0.6985 0.24694 0.254 0.67733 0.254 0.36689 0 0.61383-0.19756 0.254-0.20461 0.30339-0.54328h0.635q-0.091722 0.61383-0.508 0.95956-0.40922 0.34572-1.0442 0.34572z"/> | ||||
|   </g> | ||||
|  </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.9 KiB | 
| @@ -1,11 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg5" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xmlns="http://www.w3.org/2000/svg"> | ||||
|  <g id="layer1" fill="#181715"> | ||||
|   <path id="path140" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".3554"/> | ||||
|   <g id="text2158" stroke-width=".35534" aria-label="cc"> | ||||
|    <path id="path290" d="m3.175 7.3025q-0.35983 0-0.64911-0.10583-0.28222-0.10583-0.48683-0.30339-0.19756-0.19756-0.31044-0.47978-0.10583-0.28222-0.10583-0.62794v-0.98778q0-0.34572 0.10583-0.62794 0.11289-0.28222 0.31044-0.47978 0.20461-0.19756 0.48683-0.30339 0.28928-0.10583 0.64911-0.10583 0.64206 0 1.0513 0.35278 0.41628 0.34572 0.50094 0.9525h-0.635q-0.049389-0.33867-0.30339-0.53622-0.24694-0.20461-0.61383-0.20461-0.42333 0-0.67028 0.254-0.24694 0.254-0.24694 0.6985v0.98778q0 0.4445 0.23989 0.6985 0.24694 0.254 0.67733 0.254 0.36689 0 0.61383-0.19756 0.254-0.20461 0.30339-0.54328h0.635q-0.091722 0.61383-0.508 0.95956-0.40922 0.34572-1.0442 0.34572z"/> | ||||
|    <path id="path292" d="m7.4083 7.3025q-0.35983 0-0.64911-0.10583-0.28222-0.10583-0.48683-0.30339-0.19756-0.19756-0.31044-0.47978-0.10583-0.28222-0.10583-0.62794v-0.98778q0-0.34572 0.10583-0.62794 0.11289-0.28222 0.31044-0.47978 0.20461-0.19756 0.48683-0.30339 0.28928-0.10583 0.64911-0.10583 0.64206 0 1.0513 0.35278 0.41628 0.34572 0.50094 0.9525h-0.635q-0.049389-0.33867-0.30339-0.53622-0.24694-0.20461-0.61383-0.20461-0.42333 0-0.67028 0.254-0.24694 0.254-0.24694 0.6985v0.98778q0 0.4445 0.23989 0.6985 0.24694 0.254 0.67733 0.254 0.36689 0 0.61383-0.19756 0.254-0.20461 0.30339-0.54328h0.635q-0.091722 0.61383-0.508 0.95956-0.40922 0.34572-1.0442 0.34572z"/> | ||||
|   </g> | ||||
|  </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 66 KiB | 
| @@ -1,3 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg5" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" fill="#fff"><path id="path234" d="m5.2917 0c-2.9225 0-5.2917 2.3692-5.2917 5.2917s2.3692 5.2917 5.2917 5.2917 5.2917-2.3692 5.2917-5.2917-2.3692-5.2917-5.2917-5.2917zm0 0.66146c2.5572 1e-7 4.6302 2.073 4.6302 4.6302 1e-7 2.5572-2.073 4.6302-4.6302 4.6302-2.5572 1e-7 -4.6302-2.073-4.6302-4.6302-3e-8 -0.62533 0.12396-1.2217 0.34865-1.7659 0.69415-1.6812 2.3497-2.8643 4.2816-2.8643z" stroke-width=".43932"/><path id="rect1196" d="m5.2725 1.2965c-0.19651 0.0047-0.39147 0.082448-0.54208 0.23306l-0.58704 0.58756 0.012403 0.012919 0.13642 0.13591 0.8139 0.81442a0.62532 0.62532 0 0 1 0.20412-0.03514 0.62532 0.62532 0 0 1 0.62528 0.62528 0.62532 0.62532 0 0 1-0.03514 0.20412l0.88315 0.88315a0.62532 0.62532 0 0 1 0.21084-0.037207 0.62532 0.62532 0 0 1 0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528-0.62528 0.62532 0.62532 0 0 1 0.024288-0.17002l-0.82631-0.82631v2.1063a0.62532 0.62532 0 0 1 0.36845 0.56999 0.62532 0.62532 0 0 1-0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528-0.62528 0.62532 0.62532 0 0 1 0.36845-0.56947v-2.2164a0.62532 0.62532 0 0 1-0.36845-0.56947 0.62532 0.62532 0 0 1 0.025838-0.17725l-0.95911-0.95911 0.001033-5.168e-4 -0.013435-0.013436-2.2097 2.2102c-0.31094 0.31094-0.31094 0.81147 0 1.1224l3.2008 3.2008c0.31094 0.31094 0.81147 0.31094 1.1224 0l3.2008-3.2008c0.31094-0.31094 0.31094-0.81147 0-1.1224l-3.2008-3.2008c-0.15547-0.15547-0.35831-0.23306-0.56121-0.23306-0.00634 0-0.012782-1.515e-4 -0.019121 0z" stroke-width=".37293"/></g></svg> | ||||
| Before Width: | Height: | Size: 1.7 KiB | 
| @@ -1,3 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg5" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" fill="#181715"><path id="path234" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".43932"/><path id="rect1196" d="m5.2725 1.2965c-0.19651 0.0047-0.39147 0.082448-0.54208 0.23306l-0.58704 0.58756 0.012403 0.012919 0.13642 0.13591 0.8139 0.81442a0.62532 0.62532 0 0 1 0.20412-0.03514 0.62532 0.62532 0 0 1 0.62528 0.62528 0.62532 0.62532 0 0 1-0.03514 0.20412l0.88315 0.88315a0.62532 0.62532 0 0 1 0.21084-0.037207 0.62532 0.62532 0 0 1 0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528-0.62528 0.62532 0.62532 0 0 1 0.024288-0.17002l-0.82631-0.82631v2.1063a0.62532 0.62532 0 0 1 0.36845 0.56999 0.62532 0.62532 0 0 1-0.62528 0.62528 0.62532 0.62532 0 0 1-0.62528-0.62528 0.62532 0.62532 0 0 1 0.36845-0.56947v-2.2164a0.62532 0.62532 0 0 1-0.36845-0.56947 0.62532 0.62532 0 0 1 0.025838-0.17725l-0.95911-0.95911 0.001033-5.168e-4 -0.013435-0.013436-2.2097 2.2102c-0.31094 0.31094-0.31094 0.81147 0 1.1224l3.2008 3.2008c0.31094 0.31094 0.81147 0.31094 1.1224 0l3.2008-3.2008c0.31094-0.31094 0.31094-0.81147 0-1.1224l-3.2008-3.2008c-0.15547-0.15547-0.35831-0.23306-0.56121-0.23306-0.00634 0-0.012782-1.515e-4 -0.019121 0z" stroke-width=".37293"/></g></svg> | ||||
| Before Width: | Height: | Size: 1.7 KiB | 
| @@ -1,17 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="20" | ||||
|    height="20" | ||||
|    viewBox="0 0 5.2916667 5.2916666" | ||||
|    version="1.1" | ||||
|    id="svg1" | ||||
|    xml:space="preserve" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"><defs | ||||
|      id="defs1" /><g | ||||
|      id="layer1"><path | ||||
|        id="path2" | ||||
|        style="fill:#ffffff;fill-opacity:1;stroke-width:0.352999;stroke-linejoin:round" | ||||
|        d="M 2.6434889,0.17372798 A 0.49603044,0.49603044 0 0 0 2.1474722,0.66974458 0.49603044,0.49603044 0 0 0 2.6434889,1.1657897 0.49603044,0.49603044 0 0 0 2.9134465,1.0850992 L 4.2150262,2.3807419 A 0.49603044,0.49603044 0 0 0 4.1463813,2.5645005 H 3.1320271 A 0.49603044,0.49603044 0 0 0 2.6434889,2.1505729 0.49603044,0.49603044 0 0 0 2.1604593,2.5645005 H 1.1507581 A 0.49603044,0.49603044 0 0 0 0.66221981,2.1505729 0.49603044,0.49603044 0 0 0 0.16620324,2.646618 0.49603044,0.49603044 0 0 0 0.66221981,3.1426345 0.49603044,0.49603044 0 0 0 1.145021,2.7301914 h 1.0156952 a 0.49603044,0.49603044 0 0 0 0.3724833,0.3949749 l -0.00122,1.0183782 A 0.49603044,0.49603044 0 0 0 2.1474801,4.6219219 0.49603044,0.49603044 0 0 0 2.6434968,5.1179387 0.49603044,0.49603044 0 0 0 3.1395417,4.6219219 0.49603044,0.49603044 0 0 0 3.036274,4.3197964 L 4.326465,3.0364841 A 0.49603044,0.49603044 0 0 0 4.6294466,3.1426345 0.49603044,0.49603044 0 0 0 5.1254634,2.646618 0.49603044,0.49603044 0 0 0 4.6294466,2.1505729 0.49603044,0.49603044 0 0 0 4.3258658,2.257323 L 3.0354385,0.97286893 A 0.49603044,0.49603044 0 0 0 3.1395339,0.66974458 0.49603044,0.49603044 0 0 0 2.6434889,0.17372798 Z M 3.1262902,2.7301914 h 1.0203475 a 0.49603044,0.49603044 0 0 0 0.068759,0.1830162 L 2.9144742,4.2072235 A 0.49603044,0.49603044 0 0 0 2.6976917,4.1289593 l 0.0012,-0.9950873 A 0.49603044,0.49603044 0 0 0 3.1262902,2.7301914 Z" /></g></svg> | ||||
| Before Width: | Height: | Size: 1.9 KiB | 
| @@ -1,17 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="20" | ||||
|    height="20" | ||||
|    viewBox="0 0 5.2916667 5.2916666" | ||||
|    version="1.1" | ||||
|    id="svg1" | ||||
|    xml:space="preserve" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"><defs | ||||
|      id="defs1" /><g | ||||
|      id="layer1"><path | ||||
|        id="path2" | ||||
|        style="fill:#000000;fill-opacity:1;stroke-width:0.352999;stroke-linejoin:round" | ||||
|        d="M 2.6434889,0.17372798 A 0.49603044,0.49603044 0 0 0 2.1474722,0.66974458 0.49603044,0.49603044 0 0 0 2.6434889,1.1657897 0.49603044,0.49603044 0 0 0 2.9134465,1.0850992 L 4.2150262,2.3807419 A 0.49603044,0.49603044 0 0 0 4.1463813,2.5645005 H 3.1320271 A 0.49603044,0.49603044 0 0 0 2.6434889,2.1505729 0.49603044,0.49603044 0 0 0 2.1604593,2.5645005 H 1.1507581 A 0.49603044,0.49603044 0 0 0 0.66221981,2.1505729 0.49603044,0.49603044 0 0 0 0.16620324,2.646618 0.49603044,0.49603044 0 0 0 0.66221981,3.1426345 0.49603044,0.49603044 0 0 0 1.145021,2.7301914 h 1.0156952 a 0.49603044,0.49603044 0 0 0 0.3724833,0.3949749 l -0.00122,1.0183782 A 0.49603044,0.49603044 0 0 0 2.1474801,4.6219219 0.49603044,0.49603044 0 0 0 2.6434968,5.1179387 0.49603044,0.49603044 0 0 0 3.1395417,4.6219219 0.49603044,0.49603044 0 0 0 3.036274,4.3197964 L 4.326465,3.0364841 A 0.49603044,0.49603044 0 0 0 4.6294466,3.1426345 0.49603044,0.49603044 0 0 0 5.1254634,2.646618 0.49603044,0.49603044 0 0 0 4.6294466,2.1505729 0.49603044,0.49603044 0 0 0 4.3258658,2.257323 L 3.0354385,0.97286893 A 0.49603044,0.49603044 0 0 0 3.1395339,0.66974458 0.49603044,0.49603044 0 0 0 2.6434889,0.17372798 Z M 3.1262902,2.7301914 h 1.0203475 a 0.49603044,0.49603044 0 0 0 0.068759,0.1830162 L 2.9144742,4.2072235 A 0.49603044,0.49603044 0 0 0 2.6976917,4.1289593 l 0.0012,-0.9950873 A 0.49603044,0.49603044 0 0 0 3.1262902,2.7301914 Z" /></g></svg> | ||||
| Before Width: | Height: | Size: 1.9 KiB | 
| @@ -1,3 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg1332" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" fill="#fff"><path id="rect1756" d="m4.3183 1.9766c-1.1726 0-2.1167 0.82603-2.1167 1.8521v1.4382c0 0.13426 0.015785 0.26518 0.046509 0.39119-0.036015 0.37794 0.017995 0.87014 0.23719 1.5084 0.78289 2.2797 4.0194 1.1705 4.0194 1.1705s-0.021792-0.0096-0.045475-0.55449c-2.1752 0.49248-2.4572-0.32707-2.481-0.68678 0.11059 0.01549 0.2243 0.02326 0.34003 0.02326h1.9467c1.1726 0 2.1167-0.82603 2.1167-1.8521v-1.4382c0-1.0261-0.94404-1.8521-2.1167-1.8521zm0.03359 1.0878a1.0208 1.0208 0 0 1 0.96118 0.67644 1.0208 1.0208 0 0 1 0.96015-0.67644 1.0208 1.0208 0 0 1 1.0211 1.0206 1.0208 1.0208 0 0 1-5.168e-4 0.00672h5.168e-4v1.9053h-0.6873v-0.65216h0.00413v-1.0997h-0.00672a0.47585 0.47463 0 0 0-0.47594-0.46664 0.47585 0.47463 0 0 0-0.47594 0.47439 0.47585 0.47463 0 0 0 0.00672 0.076481v1.002h-0.68523v-0.4377a1.0208 1.0208 0 0 1-0.00258 0.00207v-0.678h-0.00672a0.47585 0.47463 0 0 0-0.47594-0.46716 0.47585 0.47463 0 0 0-0.47542 0.47491 0.47585 0.47463 0 0 0 0.0062 0.075964v0.74827a1.0208 1.0208 0 0 1-0.00103-5.168e-4v0.9555h-0.6873v-1.8702h0.00155a1.0208 1.0208 0 0 1-0.00155-0.049609 1.0208 1.0208 0 0 1 1.0206-1.0206z" stroke-width=".35534"/><path id="path2228" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".38059"/></g></svg> | ||||
| Before Width: | Height: | Size: 1.7 KiB | 
| @@ -1,3 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg1332" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><g id="layer1" fill="#181715"><path id="rect1756" d="m4.3183 1.9766c-1.1726 0-2.1167 0.82603-2.1167 1.8521v1.4382c0 0.13426 0.015785 0.26518 0.046509 0.39119-0.036015 0.37794 0.017995 0.87014 0.23719 1.5084 0.78289 2.2797 4.0194 1.1705 4.0194 1.1705s-0.021792-0.0096-0.045475-0.55449c-2.1752 0.49248-2.4572-0.32707-2.481-0.68678 0.11059 0.01549 0.2243 0.02326 0.34003 0.02326h1.9467c1.1726 0 2.1167-0.82603 2.1167-1.8521v-1.4382c0-1.0261-0.94404-1.8521-2.1167-1.8521zm0.03359 1.0878a1.0208 1.0208 0 0 1 0.96118 0.67644 1.0208 1.0208 0 0 1 0.96015-0.67644 1.0208 1.0208 0 0 1 1.0211 1.0206 1.0208 1.0208 0 0 1-5.168e-4 0.00672h5.168e-4v1.9053h-0.6873v-0.65216h0.00413v-1.0997h-0.00672a0.47585 0.47463 0 0 0-0.47594-0.46664 0.47585 0.47463 0 0 0-0.47594 0.47439 0.47585 0.47463 0 0 0 0.00672 0.076481v1.002h-0.68523v-0.4377a1.0208 1.0208 0 0 1-0.00258 0.00207v-0.678h-0.00672a0.47585 0.47463 0 0 0-0.47594-0.46716 0.47585 0.47463 0 0 0-0.47542 0.47491 0.47585 0.47463 0 0 0 0.0062 0.075964v0.74827a1.0208 1.0208 0 0 1-0.00103-5.168e-4v0.9555h-0.6873v-1.8702h0.00155a1.0208 1.0208 0 0 1-0.00155-0.049609 1.0208 1.0208 0 0 1 1.0206-1.0206z" stroke-width=".35534"/><path id="path2228" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".38059"/></g></svg> | ||||
| Before Width: | Height: | Size: 1.7 KiB | 
| @@ -1,23 +0,0 @@ | ||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="500" height="700" | ||||
|   background-color="rgba(0,0,0,0)"> | ||||
|   <line x1="500" x2="475" y1="0" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="450" y1="35" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="425" y1="70" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="400" y1="105" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="375" y1="140" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="350" y1="175" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="325" y1="210" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="300" y1="245" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="275" y1="280" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="250" y1="315" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="225" y1="350" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="200" y1="385" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="175" y1="420" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="150" y1="455" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="125" y1="490" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="100" y1="525" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="75" y1="560" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="50" y1="595" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="25" y1="630" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
|   <line x1="500" x2="0" y1="665" y2="700" stroke="rgba(255,255,255,1)" /> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.6 KiB | 
| @@ -1,23 +0,0 @@ | ||||
| <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="500" height="700" | ||||
|   background-color="rgba(0,0,0,0)"> | ||||
|   <line x1="500" x2="475" y1="0" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="450" y1="35" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="425" y1="70" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="400" y1="105" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="375" y1="140" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="350" y1="175" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="325" y1="210" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="300" y1="245" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="275" y1="280" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="250" y1="315" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="225" y1="350" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="200" y1="385" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="175" y1="420" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="150" y1="455" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="125" y1="490" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="100" y1="525" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="75" y1="560" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="50" y1="595" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="25" y1="630" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
|   <line x1="500" x2="0" y1="665" y2="700" stroke="rgba(24, 23, 21, 1)" /> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.6 KiB | 
| @@ -1,63 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10.583333 10.583333" | ||||
|    version="1.1" | ||||
|    id="svg2421" | ||||
|    sodipodi:docname="srce-dark.svg" | ||||
|    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview2423" | ||||
|      pagecolor="#505050" | ||||
|      bordercolor="#eeeeee" | ||||
|      borderopacity="1" | ||||
|      inkscape:showpageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#505050" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="7.967789" | ||||
|      inkscape:cx="4.2044286" | ||||
|      inkscape:cy="19.892595" | ||||
|      inkscape:window-width="1920" | ||||
|      inkscape:window-height="1048" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="32" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" | ||||
|      inkscape:pageshadow="0" /> | ||||
|   <defs | ||||
|      id="defs2418" /> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path2477" | ||||
|        style="fill:#ffffff;stroke-width:0.355037" | ||||
|        d="M 5.2916667 0 A 5.2916665 5.2916665 0 0 0 0 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 10.583333 A 5.2916665 5.2916665 0 0 0 10.583333 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 0 z M 5.2916667 0.66145833 A 4.6302085 4.6302085 0 0 1 9.921875 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 9.921875 A 4.6302085 4.6302085 0 0 1 0.66145833 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 0.66145833 z " /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:7.05556px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#181715;fill-opacity:1;stroke-width:0.355335" | ||||
|        x="-2.7021213" | ||||
|        y="4.7616987" | ||||
|        id="text3068"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3066" | ||||
|          style="fill:#181715;fill-opacity:1;stroke-width:0.355335" | ||||
|          x="-2.7021213" | ||||
|          y="4.7616987" /></text> | ||||
|     <path | ||||
|        id="path3659" | ||||
|        style="fill:#ffffff;fill-opacity:1;stroke-width:0.384877" | ||||
|        d="m 2.4853365,3.1439096 a 1.984375,1.984375 0 0 0 0,2.80633 l 2.806331,2.8063301 2.8063299,-2.8063301 a 1.984375,1.984375 0 0 0 0,-2.80633 1.984375,1.984375 0 0 0 -2.8063299,0 1.984375,1.984375 0 0 0 -2.806331,0 z" /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 2.5 KiB | 
| @@ -1,62 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10.583333 10.583333" | ||||
|    version="1.1" | ||||
|    id="svg2421" | ||||
|    sodipodi:docname="srce.svg" | ||||
|    inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview2423" | ||||
|      pagecolor="#505050" | ||||
|      bordercolor="#eeeeee" | ||||
|      borderopacity="1" | ||||
|      inkscape:showpageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#505050" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="7.967789" | ||||
|      inkscape:cx="4.2044286" | ||||
|      inkscape:cy="19.892595" | ||||
|      inkscape:window-width="1362" | ||||
|      inkscape:window-height="764" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="0" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" /> | ||||
|   <defs | ||||
|      id="defs2418" /> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path2477" | ||||
|        style="fill:#181715;stroke-width:0.355037" | ||||
|        d="M 5.2916667 0 A 5.2916665 5.2916665 0 0 0 0 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 10.583333 A 5.2916665 5.2916665 0 0 0 10.583333 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 0 z M 5.2916667 0.66145833 A 4.6302085 4.6302085 0 0 1 9.921875 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 9.921875 A 4.6302085 4.6302085 0 0 1 0.66145833 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 0.66145833 z " /> | ||||
|     <text | ||||
|        xml:space="preserve" | ||||
|        style="font-size:7.05556px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#181715;fill-opacity:1;stroke-width:0.355335" | ||||
|        x="-2.7021213" | ||||
|        y="4.7616987" | ||||
|        id="text3068"><tspan | ||||
|          sodipodi:role="line" | ||||
|          id="tspan3066" | ||||
|          style="fill:#181715;fill-opacity:1;stroke-width:0.355335" | ||||
|          x="-2.7021213" | ||||
|          y="4.7616987" /></text> | ||||
|     <path | ||||
|        id="path3659" | ||||
|        style="fill:#181715;fill-opacity:1;stroke-width:0.384877" | ||||
|        d="m 2.4853365,3.1439096 a 1.984375,1.984375 0 0 0 0,2.80633 l 2.806331,2.8063301 2.8063299,-2.8063301 a 1.984375,1.984375 0 0 0 0,-2.80633 1.984375,1.984375 0 0 0 -2.8063299,0 1.984375,1.984375 0 0 0 -2.806331,0 z" /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 2.5 KiB | 
| @@ -1,43 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    sodipodi:docname="strelica-closed-dark.svg" | ||||
|    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview6" | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#111111" | ||||
|      borderopacity="1" | ||||
|      inkscape:pageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="1" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="20.975" | ||||
|      inkscape:cx="20" | ||||
|      inkscape:cy="20" | ||||
|      inkscape:window-width="1920" | ||||
|      inkscape:window-height="1048" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="32" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" /> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="rect288" | ||||
|        style="fill:#ffffff;stroke-width:0.345614" | ||||
|        d="M 0 0 L 0 1.25 L 8.1494141 1.25 L 2.5751953 10 L 4.0571289 10 L 8.75 2.6333008 L 8.75 10 L 10 10 L 10 1.25 L 10 0.67138672 L 10 0 L 8.9458008 0 L 8.75 0 L 0 0 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.3 KiB | 
| @@ -1,21 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="rect288" | ||||
|        style="fill:#181715;stroke-width:0.345614" | ||||
|        d="M 0 0 L 0 1.25 L 8.1494141 1.25 L 2.5751953 10 L 4.0571289 10 L 8.75 2.6333008 L 8.75 10 L 10 10 L 10 1.25 L 10 0.67138672 L 10 0 L 8.9458008 0 L 8.75 0 L 0 0 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 602 B | 
| @@ -1,21 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path1336" | ||||
|        style="fill:#181715;stroke-width:0.504542;fill-opacity:1" | ||||
|        d="M 10 0 L 8.8911133 0.57714844 L 8.8862305 0.58544922 L 0.96435547 4.2792969 A 10 10 0 0 0 1.574707 5.3740234 L 7.6362305 2.5473633 L 4.1142578 8.0756836 A 10 10 0 0 0 5.1674805 8.7485352 L 8.6904297 3.21875 L 8.6904297 9.9086914 A 10 10 0 0 0 9.9404297 9.9975586 L 9.9404297 1.2568359 L 9.9453125 1.2490234 L 10 0 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 773 B | 
| @@ -1,43 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    sodipodi:docname="strelica-opened-dark.svg" | ||||
|    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview6" | ||||
|      pagecolor="#ffffff" | ||||
|      bordercolor="#111111" | ||||
|      borderopacity="1" | ||||
|      inkscape:pageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="1" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="20.975" | ||||
|      inkscape:cx="20" | ||||
|      inkscape:cy="20" | ||||
|      inkscape:window-width="1920" | ||||
|      inkscape:window-height="1048" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="32" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" /> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="rect288" | ||||
|        style="fill:#ffffff;stroke-width:0.345614" | ||||
|        d="M 0 0 L 0 1.25 L 2.8071289 1.25 L 2.8071289 10 L 4.0571289 10 L 4.0571289 1.25 L 8.75 1.25 L 10 1.25 L 10 0 L 8.75 0 L 0 0 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.3 KiB | 
| @@ -1,21 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="rect288" | ||||
|        style="fill:#181715;stroke-width:0.345614" | ||||
|        d="M 0 0 L 0 1.25 L 2.8071289 1.25 L 2.8071289 10 L 4.0571289 10 L 4.0571289 1.25 L 8.75 1.25 L 10 1.25 L 10 0 L 8.75 0 L 0 0 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 566 B | 
| @@ -1,21 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10 10" | ||||
|    version="1.1" | ||||
|    id="svg5" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <defs | ||||
|      id="defs2" /> | ||||
|   <g | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path1336" | ||||
|        style="fill:#181715;fill-opacity:1;stroke-width:0.504542" | ||||
|        d="M 5 0.0029296875 L 4.375 1.0859375 L 4.375 1.0952148 L 0.35400391 7.4072266 A 8.75 8.75 0 0 0 1.4614258 7.9956055 L 4.375 3.4213867 L 4.375 8.7265625 A 8.75 8.75 0 0 0 5 8.75 A 8.75 8.75 0 0 0 5.625 8.7265625 L 5.625 3.4213867 L 8.5390625 7.9956055 A 8.75 8.75 0 0 0 9.6464844 7.4072266 L 5.625 1.0952148 L 5.625 1.0859375 L 5 0.0029296875 z " /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 799 B | 
| @@ -1,10 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg2421" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xmlns="http://www.w3.org/2000/svg"> | ||||
|  <g id="layer1"> | ||||
|   <path id="path2477" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" fill="#fff" stroke-width=".35504"/> | ||||
|   <g id="text3068" fill="#181715" stroke-width=".35534" aria-label="w"> | ||||
|    <path id="path698" d="m2.4342 2.3813h0.84666l0.51858 3.9899q0.021167 0.1905 0.042333 0.42333 0.021167 0.23283 0.042333 0.43392 0.021167 0.23283 0.042333 0.46567h0.11642q0.021167-0.23283 0.052916-0.46567 0.021167-0.20108 0.052917-0.43392t0.0635-0.42333l0.61383-3.9899h0.91016l0.61383 3.9899q0.03175 0.20108 0.0635 0.43392t0.052917 0.43392q0.03175 0.23283 0.052917 0.45508h0.127q0.021167-0.23283 0.042333-0.46567 0.021167-0.20108 0.052916-0.42333 0.03175-0.23283 0.052917-0.43392l0.52916-3.9899h0.8255l-0.8255 5.8208h-1.3017l-0.60325-4.1169q-0.021167-0.17992-0.042333-0.37042-0.010583-0.20108-0.021167-0.37042 0-0.1905 0-0.381h-0.13758q0 0.1905-0.010583 0.381-0.010583 0.16933-0.021167 0.37042-0.010583 0.1905-0.042333 0.37042l-0.62441 4.1169h-1.27z" fill="#fff"/> | ||||
|   </g> | ||||
|  </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.4 KiB | 
| @@ -1,10 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
| <svg id="svg2421" width="40" height="40" version="1.1" viewBox="0 0 10.583 10.583" xmlns="http://www.w3.org/2000/svg"> | ||||
|  <g id="layer1" fill="#181715"> | ||||
|   <path id="path2477" d="m5.2917 0a5.2917 5.2917 0 0 0-5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917 5.2917 5.2917 5.2917 0 0 0 5.2917-5.2917 5.2917 5.2917 0 0 0-5.2917-5.2917zm0 0.66146a4.6302 4.6302 0 0 1 4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302 4.6302 4.6302 4.6302 0 0 1-4.6302-4.6302 4.6302 4.6302 0 0 1 4.6302-4.6302z" stroke-width=".35504"/> | ||||
|   <g id="text3068" stroke-width=".35534" aria-label="w"> | ||||
|    <path id="path698" d="m2.4342 2.3813h0.84666l0.51858 3.9899q0.021167 0.1905 0.042333 0.42333 0.021167 0.23283 0.042333 0.43392 0.021167 0.23283 0.042333 0.46567h0.11642q0.021167-0.23283 0.052916-0.46567 0.021167-0.20108 0.052917-0.43392t0.0635-0.42333l0.61383-3.9899h0.91016l0.61383 3.9899q0.03175 0.20108 0.0635 0.43392t0.052917 0.43392q0.03175 0.23283 0.052917 0.45508h0.127q0.021167-0.23283 0.042333-0.46567 0.021167-0.20108 0.052916-0.42333 0.03175-0.23283 0.052917-0.43392l0.52916-3.9899h0.8255l-0.8255 5.8208h-1.3017l-0.60325-4.1169q-0.021167-0.17992-0.042333-0.37042-0.010583-0.20108-0.021167-0.37042 0-0.1905 0-0.381h-0.13758q0 0.1905-0.010583 0.381-0.010583 0.16933-0.021167 0.37042-0.010583 0.1905-0.042333 0.37042l-0.62441 4.1169h-1.27z"/> | ||||
|   </g> | ||||
|  </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 1.4 KiB | 
| @@ -1,60 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10.583333 10.583333" | ||||
|    version="1.1" | ||||
|    id="svg2421" | ||||
|    inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" | ||||
|    sodipodi:docname="www-dark.svg" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview2423" | ||||
|      pagecolor="#505050" | ||||
|      bordercolor="#eeeeee" | ||||
|      borderopacity="1" | ||||
|      inkscape:showpageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#505050" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="11.268155" | ||||
|      inkscape:cx="19.39093" | ||||
|      inkscape:cy="17.793507" | ||||
|      inkscape:window-width="1920" | ||||
|      inkscape:window-height="1048" | ||||
|      inkscape:window-x="0" | ||||
|      inkscape:window-y="32" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" | ||||
|      inkscape:pageshadow="0" /> | ||||
|   <defs | ||||
|      id="defs2418" /> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path2477" | ||||
|        style="fill:#ffffff;stroke-width:0.355037" | ||||
|        d="M 5.2916667 0 A 5.2916665 5.2916665 0 0 0 0 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 10.583333 A 5.2916665 5.2916665 0 0 0 10.583333 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 0 z M 5.2916667 0.66145833 A 4.6302085 4.6302085 0 0 1 9.921875 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 9.921875 A 4.6302085 4.6302085 0 0 1 0.66145833 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 0.66145833 z " /> | ||||
|     <path | ||||
|        d="M 1.6086655,4.1275011 H 1.9473319 L 2.154765,5.7234664 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 h 0.046567 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 2.565398,4.1275011 h 0.3640664 l 0.2455331,1.5959653 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 q 0.00847,-0.093133 0.016933,-0.1862666 0.00847,-0.080433 0.021167,-0.1693331 0.0127,-0.093133 0.021167,-0.1735666 L 3.5644639,4.1275011 H 3.8946636 L 3.5644639,6.4558325 H 3.0437643 L 2.8024645,4.8090672 q -0.00847,-0.071967 -0.016933,-0.1481665 -0.00423,-0.080433 -0.00847,-0.1481666 0,-0.0762 0,-0.1523999 h -0.055033 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 2.4426315,6.4558325 H 1.9346319 Z" | ||||
|        id="path503" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#ffffff;stroke-width:0.355335" /> | ||||
|     <path | ||||
|        d="m 4.148665,4.1275011 h 0.3386664 l 0.2074331,1.5959653 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 h 0.046567 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 5.1053975,4.1275011 H 5.4694639 L 5.714997,5.7234664 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 Q 5.842001,6.1594997 5.850464,6.0663661 5.858934,5.9859331 5.871631,5.897033 5.884331,5.8039 5.892798,5.7234664 L 6.1044633,4.1275011 H 6.4346631 L 6.1044633,6.4558325 H 5.5837638 L 5.342464,4.8090672 Q 5.333994,4.7371002 5.325531,4.6609007 5.321301,4.5804677 5.317061,4.5127341 q 0,-0.0762 0,-0.1523999 H 5.262028 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 4.982631,6.4558325 H 4.4746314 Z" | ||||
|        id="path505" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#ffffff;stroke-width:0.355335" /> | ||||
|     <path | ||||
|        d="M 6.6886645,4.1275011 H 7.0273309 L 7.234764,5.7234664 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 H 7.33213 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 7.645397,4.1275011 h 0.3640664 l 0.2455331,1.5959653 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 q 0.00847,-0.093133 0.016933,-0.1862666 0.00847,-0.080433 0.021167,-0.1693331 0.0127,-0.093133 0.021167,-0.1735666 L 8.6444628,4.1275011 H 8.9746626 L 8.6444628,6.4558325 H 8.1237633 L 7.8824635,4.8090672 q -0.00847,-0.071967 -0.016933,-0.1481665 -0.00423,-0.080433 -0.00847,-0.1481666 0,-0.0762 0,-0.1523999 h -0.055033 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 7.5226304,6.4558325 H 7.0146309 Z" | ||||
|        id="path507" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#ffffff;stroke-width:0.355335" /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 5.0 KiB | 
| @@ -1,59 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||||
| <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||||
|  | ||||
| <svg | ||||
|    width="40" | ||||
|    height="40" | ||||
|    viewBox="0 0 10.583333 10.583333" | ||||
|    version="1.1" | ||||
|    id="svg2421" | ||||
|    inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" | ||||
|    sodipodi:docname="www.svg" | ||||
|    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||||
|    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||||
|    xmlns="http://www.w3.org/2000/svg" | ||||
|    xmlns:svg="http://www.w3.org/2000/svg"> | ||||
|   <sodipodi:namedview | ||||
|      id="namedview2423" | ||||
|      pagecolor="#505050" | ||||
|      bordercolor="#eeeeee" | ||||
|      borderopacity="1" | ||||
|      inkscape:showpageshadow="0" | ||||
|      inkscape:pageopacity="0" | ||||
|      inkscape:pagecheckerboard="0" | ||||
|      inkscape:deskcolor="#505050" | ||||
|      inkscape:document-units="mm" | ||||
|      showgrid="false" | ||||
|      inkscape:zoom="11.268155" | ||||
|      inkscape:cx="19.435302" | ||||
|      inkscape:cy="17.793507" | ||||
|      inkscape:window-width="1362" | ||||
|      inkscape:window-height="764" | ||||
|      inkscape:window-x="112" | ||||
|      inkscape:window-y="3" | ||||
|      inkscape:window-maximized="1" | ||||
|      inkscape:current-layer="layer1" /> | ||||
|   <defs | ||||
|      id="defs2418" /> | ||||
|   <g | ||||
|      inkscape:label="Layer 1" | ||||
|      inkscape:groupmode="layer" | ||||
|      id="layer1"> | ||||
|     <path | ||||
|        id="path2477" | ||||
|        style="fill:#181715;stroke-width:0.355037" | ||||
|        d="M 5.2916667 0 A 5.2916665 5.2916665 0 0 0 0 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 10.583333 A 5.2916665 5.2916665 0 0 0 10.583333 5.2916667 A 5.2916665 5.2916665 0 0 0 5.2916667 0 z M 5.2916667 0.66145833 A 4.6302085 4.6302085 0 0 1 9.921875 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 9.921875 A 4.6302085 4.6302085 0 0 1 0.66145833 5.2916667 A 4.6302085 4.6302085 0 0 1 5.2916667 0.66145833 z " /> | ||||
|     <path | ||||
|        d="M 1.6086655,4.1275011 H 1.9473319 L 2.154765,5.7234664 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 h 0.046567 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 2.565398,4.1275011 h 0.3640664 l 0.2455331,1.5959653 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 q 0.00847,-0.093133 0.016933,-0.1862666 0.00847,-0.080433 0.021167,-0.1693331 0.0127,-0.093133 0.021167,-0.1735666 L 3.5644639,4.1275011 H 3.8946636 L 3.5644639,6.4558325 H 3.0437643 L 2.8024645,4.8090672 q -0.00847,-0.071967 -0.016933,-0.1481665 -0.00423,-0.080433 -0.00847,-0.1481666 0,-0.0762 0,-0.1523999 h -0.055033 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 2.4426315,6.4558325 H 1.9346319 Z" | ||||
|        id="path503" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#181715;stroke-width:0.355335" /> | ||||
|     <path | ||||
|        d="m 4.148665,4.1275011 h 0.3386664 l 0.2074331,1.5959653 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 h 0.046567 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 5.1053975,4.1275011 H 5.4694639 L 5.714997,5.7234664 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 Q 5.842001,6.1594997 5.850464,6.0663661 5.858934,5.9859331 5.871631,5.897033 5.884331,5.8039 5.892798,5.7234664 L 6.1044633,4.1275011 H 6.4346631 L 6.1044633,6.4558325 H 5.5837638 L 5.342464,4.8090672 Q 5.333994,4.7371002 5.325531,4.6609007 5.321301,4.5804677 5.317061,4.5127341 q 0,-0.0762 0,-0.1523999 H 5.262028 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 4.982631,6.4558325 H 4.4746314 Z" | ||||
|        id="path505" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#181715;stroke-width:0.355335" /> | ||||
|     <path | ||||
|        d="M 6.6886645,4.1275011 H 7.0273309 L 7.234764,5.7234664 q 0.00847,0.0762 0.016933,0.1693332 0.00847,0.093133 0.016933,0.1735665 0.00847,0.093133 0.016933,0.1862666 H 7.33213 q 0.00847,-0.093133 0.021167,-0.1862666 0.00847,-0.080433 0.021167,-0.1735665 0.0127,-0.093133 0.0254,-0.1693332 L 7.645397,4.1275011 h 0.3640664 l 0.2455331,1.5959653 q 0.0127,0.080433 0.0254,0.1735666 0.0127,0.093133 0.021167,0.1735665 0.0127,0.093133 0.021167,0.1820332 h 0.0508 q 0.00847,-0.093133 0.016933,-0.1862666 0.00847,-0.080433 0.021167,-0.1693331 0.0127,-0.093133 0.021167,-0.1735666 L 8.6444628,4.1275011 H 8.9746626 L 8.6444628,6.4558325 H 8.1237633 L 7.8824635,4.8090672 q -0.00847,-0.071967 -0.016933,-0.1481665 -0.00423,-0.080433 -0.00847,-0.1481666 0,-0.0762 0,-0.1523999 h -0.055033 q 0,0.0762 -0.00423,0.1523999 -0.00423,0.067733 -0.00847,0.1481666 -0.00423,0.0762 -0.016933,0.1481665 L 7.5226304,6.4558325 H 7.0146309 Z" | ||||
|        id="path507" | ||||
|        style="font-size:4.23333px;font-family:'JetBrains Mono';-inkscape-font-specification:'JetBrains Mono, Normal';fill:#181715;stroke-width:0.355335" /> | ||||
|   </g> | ||||
| </svg> | ||||
| Before Width: | Height: | Size: 5.0 KiB | 
| @@ -1,94 +0,0 @@ | ||||
| const theme_switcher = document.getElementById("theme-switcher"); | ||||
| const imgs = document.getElementsByTagName("img"); | ||||
| const sections_button = document.getElementById("sections-button"); | ||||
| const sections_menu = document.getElementsByTagName("nav")[0]; | ||||
| const main = document.getElementsByTagName("main")[0]; | ||||
|  | ||||
| let theme = window.localStorage.getItem("theme"); | ||||
|  | ||||
| if (theme !== null) { | ||||
|   if (theme === "light") { | ||||
|     changeToLightTheme(); | ||||
|   } else { | ||||
|     changeToDarkTheme(); | ||||
|   } | ||||
| } else { | ||||
|   if ( | ||||
|     window.matchMedia && | ||||
|     window.matchMedia("(prefers-color-scheme: dark)").matches | ||||
|   ) { | ||||
|     changeToDarkTheme(); | ||||
|   } | ||||
| } | ||||
|  | ||||
| theme_switcher.addEventListener("click", () => { | ||||
|   const attribute = theme_switcher.getAttribute("title") ?? "off" | ||||
|   if (attribute.indexOf("off") !== -1) { | ||||
|     changeToDarkTheme(); | ||||
|   } else { | ||||
|     changeToLightTheme(); | ||||
|   } | ||||
| }); | ||||
|  | ||||
| function changeToDarkTheme() { | ||||
|   theme_switcher?.setAttribute("title", "turn the light on"); | ||||
|   document.documentElement.style.setProperty("--border", "var(--dark-border)"); | ||||
|   document.documentElement.style.setProperty("--text", "var(--dark-text)"); | ||||
|   document.documentElement.style.setProperty("--bg", "var(--dark-bg)"); | ||||
|   window.localStorage.setItem("theme", "dark"); | ||||
|   for (let i = 0; i < imgs.length; i += 1) { | ||||
|     imgs[i].src = imgs[i].src.replace("-light", "-dark"); | ||||
|   } | ||||
| } | ||||
|  | ||||
| function changeToLightTheme() { | ||||
|   theme_switcher?.setAttribute("title", "turn the light off"); | ||||
|   document.documentElement.style.setProperty("--border", "var(--light-border)"); | ||||
|   document.documentElement.style.setProperty("--text", "var(--light-text)"); | ||||
|   document.documentElement.style.setProperty("--bg", "var(--light-bg)"); | ||||
|   window.localStorage.setItem("theme", "light"); | ||||
|   for (let i = 0; i < imgs.length; i += 1) { | ||||
|     imgs[i].src = imgs[i].src.replace("-dark", "-light"); | ||||
|   } | ||||
| } | ||||
|  | ||||
| function closeMenu() { | ||||
|   sections_button.setAttribute("opened", "false"); | ||||
|   sections_button.children[0].src = sections_button.children[0].src.replace( | ||||
|     "opened", | ||||
|     "closed", | ||||
|   ); | ||||
|   sections_menu.style.display = "none"; | ||||
| } | ||||
|  | ||||
| function openMenu() { | ||||
|   sections_button.setAttribute("opened", "true"); | ||||
|   sections_button.children[0].src = sections_button.children[0].src.replace( | ||||
|     "closed", | ||||
|     "opened", | ||||
|   ); | ||||
|   sections_menu.style.display = "flex"; | ||||
|   sections_menu.style.flexDirection = "column"; | ||||
| } | ||||
|  | ||||
| sections_button.addEventListener("click", () => { | ||||
|   if (sections_button.getAttribute("opened") === "false") { | ||||
|     openMenu(); | ||||
|   } else { | ||||
|     closeMenu(); | ||||
|   } | ||||
| }); | ||||
|  | ||||
| window.addEventListener("resize", () => { | ||||
|   if (sections_button.getAttribute("opened") === "true") { | ||||
|     closeMenu(); | ||||
|   } | ||||
| }); | ||||
|  | ||||
| main.addEventListener("click", () => { | ||||
|   if (sections_button.getAttribute("opened") === "true") { | ||||
|     closeMenu(); | ||||
|   } | ||||
| }); | ||||
|  | ||||
|  | ||||
| @@ -1,12 +0,0 @@ | ||||
| main { | ||||
|     max-width: fit-content; | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     align-items: center; | ||||
|     gap: 1rem; | ||||
|     margin: 0 auto; | ||||
| } | ||||
|  | ||||
| main img { | ||||
|     width: min(70vw, 15rem); | ||||
| } | ||||
| @@ -1,4 +0,0 @@ | ||||
| h1 { | ||||
|   margin-bottom: 2rem; | ||||
|   font-weight: normal; | ||||
| } | ||||
| @@ -1,3 +0,0 @@ | ||||
| #mesh { | ||||
|   display: none; | ||||
| } | ||||
| @@ -1,4 +0,0 @@ | ||||
| h1 { | ||||
|   margin-bottom: 2rem; | ||||
|   font-weight: normal; | ||||
| } | ||||
| @@ -1,30 +0,0 @@ | ||||
| table { | ||||
|   table-layout: fixed; | ||||
|   border-spacing: 0; | ||||
| } | ||||
|  | ||||
| th, | ||||
| td { | ||||
|   padding: 0 1rem 0 1rem; | ||||
|   text-align: left; | ||||
|   border-left: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| th { | ||||
|   padding: 1rem 1rem 0 1rem; | ||||
|   border-bottom: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| td:nth-child(odd) { | ||||
|   white-space: nowrap; | ||||
| } | ||||
|  | ||||
| td { | ||||
|   padding: 0 1rem 1rem 1rem; | ||||
|   vertical-align: top; | ||||
| } | ||||
|  | ||||
| h1 { | ||||
|   margin-bottom: 2rem; | ||||
|   font-weight: normal; | ||||
| } | ||||
| @@ -1,16 +0,0 @@ | ||||
| h1 { | ||||
|   margin-bottom: 2rem; | ||||
|   font-weight: normal; | ||||
| } | ||||
|  | ||||
| dl { | ||||
|   padding: 1rem 0; | ||||
| } | ||||
|  | ||||
| dt { | ||||
|   font-weight: bold; | ||||
| } | ||||
|  | ||||
| dd { | ||||
|   margin: 0 0 1rem 1rem; | ||||
| } | ||||
| @@ -1,76 +0,0 @@ | ||||
|  | ||||
| html { | ||||
|      | ||||
| } | ||||
|  | ||||
| @font-face { | ||||
|     font-family: Facade; | ||||
|     src: url(../font/Facade-Sud.woff); | ||||
| } | ||||
|    | ||||
|    | ||||
| @font-face { | ||||
|     font-family: jetbrains-mono; | ||||
|     src: url(../font/JetBrainsMono-Regular.ttf); | ||||
| } | ||||
|  | ||||
| html, body { | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
| } | ||||
|  | ||||
| main { | ||||
|     max-width: 1200px; | ||||
|     margin: auto; | ||||
|     font-family: 'jetbrains-mono'; | ||||
|     padding: 2.3rem; | ||||
| } | ||||
|  | ||||
| h1 { | ||||
|     font-family: 'Facade'; | ||||
|     text-align: center; | ||||
|     font-size: 5rem; | ||||
|     margin: 0rem; | ||||
| } | ||||
|  | ||||
| h2 { | ||||
|     text-align: center; | ||||
|     margin-top: 0.0rem; | ||||
|     margin-bottom: 2rem; | ||||
|     font-size: 2rem; | ||||
| } | ||||
|  | ||||
| p { | ||||
|     font-size: 1.5rem; | ||||
| } | ||||
|  | ||||
| table { | ||||
|     margin: 4rem 0; | ||||
| } | ||||
|  | ||||
| td { | ||||
|     font-size: 1.8rem; | ||||
|     padding-top: 0.5rem; | ||||
| } | ||||
|  | ||||
| td:first-child { | ||||
|     width: 3.5rem; | ||||
| } | ||||
|  | ||||
| td:nth-child(2) { | ||||
|     padding-right: 1rem; | ||||
| } | ||||
|  | ||||
| #link { | ||||
|     margin-top: 4rem; | ||||
|     font-size: 3rem; | ||||
|     width: fit-content; | ||||
|     float: right; | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     align-items: center; | ||||
| } | ||||
|  | ||||
| #link img { | ||||
|     width: 4rem; | ||||
| } | ||||
| @@ -1,149 +0,0 @@ | ||||
| /* Copyright (c) 2023 Luka Ivanovic */ | ||||
| /* https://github.com/luka-hash/css-reset */ | ||||
| /* This code is licensed under MIT licence */ | ||||
|  | ||||
| *, | ||||
| *::before, | ||||
| *::after { | ||||
|   box-sizing: border-box; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
| } | ||||
|  | ||||
| html, | ||||
| body { | ||||
|   width: 100%; | ||||
|   height: 100%; | ||||
| } | ||||
|  | ||||
| a, | ||||
| article, | ||||
| audio, | ||||
| blockquote, | ||||
| body, | ||||
| canvas, | ||||
| caption, | ||||
| code, | ||||
| dd, | ||||
| del, | ||||
| details, | ||||
| div, | ||||
| dl, | ||||
| dt, | ||||
| em, | ||||
| fieldset, | ||||
| figcaption, | ||||
| figure, | ||||
| footer, | ||||
| form, | ||||
| h1, | ||||
| h2, | ||||
| h3, | ||||
| h4, | ||||
| h5, | ||||
| h6, | ||||
| header, | ||||
| hgroup, | ||||
| html, | ||||
| iframe, | ||||
| img, | ||||
| ins, | ||||
| kbd, | ||||
| label, | ||||
| legend, | ||||
| li, | ||||
| mark, | ||||
| menu, | ||||
| nav, | ||||
| ol, | ||||
| output, | ||||
| p, | ||||
| pre, | ||||
| s, | ||||
| section, | ||||
| small, | ||||
| span, | ||||
| strong, | ||||
| sub, | ||||
| summary, | ||||
| sup, | ||||
| table, | ||||
| tbody, | ||||
| td, | ||||
| tfoot, | ||||
| th, | ||||
| thead, | ||||
| time, | ||||
| tr, | ||||
| ul, | ||||
| video { | ||||
|   border: 0; | ||||
|   font-size: 100%; | ||||
|   font: inherit; | ||||
|   vertical-align: baseline; | ||||
| } | ||||
|  | ||||
| article, | ||||
| details, | ||||
| figcaption, | ||||
| figure, | ||||
| footer, | ||||
| header, | ||||
| hgroup, | ||||
| menu, | ||||
| nav, | ||||
| section { | ||||
|   display: block; | ||||
| } | ||||
|  | ||||
| body { | ||||
|   line-height: 1.5; | ||||
|   -webkit-font-smoothing: antialiased; | ||||
| } | ||||
|  | ||||
| ol, | ||||
| ul { | ||||
|   list-style: none; | ||||
| } | ||||
|  | ||||
| blockquote { | ||||
|   quotes: none; | ||||
| } | ||||
|  | ||||
| blockquote::before, | ||||
| blockquote::after { | ||||
|   content: ''; | ||||
|   content: none; | ||||
| } | ||||
|  | ||||
| table { | ||||
|   border-collapse: collapse; | ||||
|   border-spacing: 0; | ||||
| } | ||||
|  | ||||
| img, | ||||
| picture, | ||||
| video, | ||||
| canvas, | ||||
| svg { | ||||
|   display: block; | ||||
|   max-width: 100%; | ||||
| } | ||||
|  | ||||
| input, | ||||
| button, | ||||
| textarea, | ||||
| select { | ||||
|   font: inherit; | ||||
| } | ||||
|  | ||||
| p, | ||||
| h1, | ||||
| h2, | ||||
| h3, | ||||
| h4, | ||||
| h5, | ||||
| h6 { | ||||
|   overflow-wrap: break-word; | ||||
|   hyphens: auto; | ||||
| } | ||||
| @@ -1,27 +0,0 @@ | ||||
| table { | ||||
|   table-layout: fixed; | ||||
|   border-spacing: 0; | ||||
|   margin-bottom: 3rem; | ||||
| } | ||||
|  | ||||
| th, | ||||
| td { | ||||
|   padding: 0 1rem 0 1rem; | ||||
|   text-align: left; | ||||
|   border-left: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| th { | ||||
|   padding: 1rem 1rem 0 1rem; | ||||
|   border-bottom: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| td { | ||||
|   padding: 0 1rem 1rem 1rem; | ||||
|   vertical-align: top; | ||||
| } | ||||
|  | ||||
| h1 { | ||||
|   margin-bottom: 2rem; | ||||
|   font-weight: normal; | ||||
| } | ||||
| @@ -1,218 +0,0 @@ | ||||
| :root { | ||||
|   --light-text: #181715; | ||||
|   --light-bg: #ffffff; | ||||
|   --light-border: #181715; | ||||
|   --dark-text: #ffffff; | ||||
|   --dark-bg: #181715; | ||||
|   --dark-border: #ffffff; | ||||
|   --hightlight: #72dec2; | ||||
|   --border: var(--light-border); | ||||
|   --text: var(--light-text); | ||||
|   --bg: var(--light-bg); | ||||
| } | ||||
|  | ||||
| @font-face { | ||||
|   font-family: "Iosevka"; | ||||
|   src: url('/font/iosevka-regular.woff') format('woff'); | ||||
| } | ||||
|  | ||||
| * { | ||||
|   box-sizing: border-box; | ||||
|   margin: 0; | ||||
|   padding: 0; | ||||
| } | ||||
|  | ||||
| html, | ||||
| body { | ||||
|   width: 100%; | ||||
|   height: 100%; | ||||
|   color: var(--text); | ||||
|   background: var(--bg); | ||||
| } | ||||
|  | ||||
| body { | ||||
|   display: grid; | ||||
|   grid-template: | ||||
|     "header" 4rem | ||||
|     "main" 1fr | ||||
|     "footer" 4rem | ||||
|     / 1fr; | ||||
|   gap: 0; | ||||
|   font-family: 'Iosevka'; | ||||
| } | ||||
|  | ||||
| header, | ||||
| footer { | ||||
|   display: flex; | ||||
|   justify-content: space-between; | ||||
|   align-items: center; | ||||
|   padding: 0 3rem; | ||||
| } | ||||
|  | ||||
| header { | ||||
|   grid-area: header; | ||||
|   border-bottom: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| footer { | ||||
|   grid-area: footer; | ||||
|   border-top: 2px solid var(--border); | ||||
| } | ||||
|  | ||||
| main { | ||||
|   grid-area: main; | ||||
|   padding: 3rem; | ||||
|   font-size: 1.3rem; | ||||
|   line-height: 2rem; | ||||
|   max-width: 120ch; | ||||
|   overflow: auto; | ||||
| } | ||||
|  | ||||
| a, | ||||
| a:visited { | ||||
|   text-decoration: none; | ||||
|   color: var(--text); | ||||
| } | ||||
|  | ||||
| main a { | ||||
|   position: relative; | ||||
|   top: 0.2rem; | ||||
| } | ||||
|  | ||||
| a:hover, | ||||
| a:focus { | ||||
|   background-color: var(--hightlight); | ||||
|   text-decoration: line-through var(--text); | ||||
| } | ||||
|  | ||||
| #logo { | ||||
|   display: flex; | ||||
|   flex-direction: row; | ||||
|   gap: 0.5rem; | ||||
|   font-size: 2.5rem; | ||||
|   font-weight: bold; | ||||
|   font-variant: small-caps; | ||||
| } | ||||
|  | ||||
| #logo img { | ||||
|   width: 3rem; | ||||
| } | ||||
|  | ||||
| #theme-switcher { | ||||
|   border: 3px solid var(--border); | ||||
|   width: 1.5rem; | ||||
|   height: 1.5rem; | ||||
|   border-radius: 3rem; | ||||
|   margin-left: auto; | ||||
|   background: linear-gradient(90deg, var(--border) 0%, var(--border) 50%, var(--bg) 51%, var(--bg) 100%); | ||||
| } | ||||
|  | ||||
| #theme-switcher:hover { | ||||
|   border-color: var(--hightlight); | ||||
|   background: linear-gradient(90deg, var(--hightlight) 0%, var(--hightlight) 50%, var(--bg) 51%, var(--bg) 100%); | ||||
| } | ||||
|  | ||||
| .account { | ||||
|   font-size: 2rem; | ||||
| } | ||||
|  | ||||
| #mesh { | ||||
|   position: absolute; | ||||
|   bottom: 4rem; | ||||
|   right: 0; | ||||
|   user-select: none; | ||||
|   pointer-events: none; | ||||
| } | ||||
|  | ||||
| .links { | ||||
|   display: flex; | ||||
|   gap: 2rem; | ||||
| } | ||||
|  | ||||
| .links > a { | ||||
|   border-radius: 100%; | ||||
| } | ||||
|  | ||||
| .links > a > img { | ||||
|   display: block; | ||||
| } | ||||
|  | ||||
| #sections-button { | ||||
|   display: none; | ||||
| } | ||||
|  | ||||
| nav { | ||||
|   font-variant: small-caps; | ||||
|   display: flex; | ||||
|   flex-direction: row; | ||||
|   gap: 2rem; | ||||
|   font-size: 2rem; | ||||
| } | ||||
|  | ||||
| button { | ||||
|   font-style: italic; | ||||
|   font-weight: lighter; | ||||
|   border: none; | ||||
|   background: var(--bg); | ||||
|   color: var(--text); | ||||
|   margin: 0 2rem 0 0; | ||||
|   cursor: pointer; | ||||
| } | ||||
|  | ||||
| @media screen and (max-height: 860px), | ||||
| screen and (max-width: 1500px) { | ||||
|   #mesh { | ||||
|     display: none; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @media screen and (max-width: 1160px) { | ||||
|   nav { | ||||
|     flex-direction: column; | ||||
|     border: 2px solid var(--border); | ||||
|     border-bottom: 0; | ||||
|     border-left: 0; | ||||
|     background-color: var(--bg); | ||||
|     position: absolute; | ||||
|     bottom: calc(4rem); | ||||
|     left: 0; | ||||
|     align-items: center; | ||||
|     padding: 2rem 3rem; | ||||
|     display: none; | ||||
|   } | ||||
|  | ||||
|   #sections-button { | ||||
|     display: block !important; | ||||
|   } | ||||
| } | ||||
|  | ||||
| @media screen and (max-width: 540px) { | ||||
|   #logo { | ||||
|     font-size: 2.2rem; | ||||
|   } | ||||
|  | ||||
|   main { | ||||
|     padding: 1rem; | ||||
|   } | ||||
|  | ||||
|   .links { | ||||
|     gap: 1.2rem; | ||||
|   } | ||||
|  | ||||
|   .links a { | ||||
|     width: 1.5rem; | ||||
|   } | ||||
|  | ||||
|   header, | ||||
|   footer { | ||||
|     padding: 0 1rem; | ||||
|   } | ||||
|  | ||||
|   #theme-switcher { | ||||
|     margin-right: 1rem; | ||||
|   } | ||||
|  | ||||
|   .account { | ||||
|     font-size: 1rem; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										16
									
								
								start.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,16 @@ | ||||
| <!doctype html> | ||||
| <meta charset="UTF-8"> | ||||
| <html> | ||||
| 	<head> | ||||
| 		<link rel="icon" type="image/x-icon" href="/static/d.png"> | ||||
| 		<link rel="stylesheet" href="./static/reset.css"> | ||||
| 		<link rel="stylesheet" href="./static/main.css"> | ||||
| 		<title>Decentrala</title> | ||||
| 	</head> | ||||
| 	<body> | ||||
| 		<div class="container"> | ||||
| 			<div class="header"> | ||||
| 				<h1 class="logo">DECENTRALA</h1> | ||||
| 			</div> | ||||
| 			<main> | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								static/d.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.7 KiB | 
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Est.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Est.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Ouest.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Ouest.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Sud-Ouest.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Sud-Ouest.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/Facade-Sud.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/facade/FacadeGX.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										1
									
								
								static/fonts/jetbrains-mono/.uuid
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1 @@ | ||||
| 2f069ecf-a1fc-4aaf-924c-de17efcde7a8 | ||||
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-Bold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-BoldItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-ExtraBold.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-ExtraBoldItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-ExtraLight.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-ExtraLightItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-Light.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-LightItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-Medium.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-MediumItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-Thin.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/jetbrains-mono/JetBrainsMono-ThinItalic.ttf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/sligoil/Sligoil-Micro.otf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/sligoil/Sligoil-Micro.woff
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								static/fonts/sligoil/Sligoil-Micro.woff2
									
									
									
									
									
										Normal file
									
								
							
							
						
						| Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 41 KiB | 
							
								
								
									
										124
									
								
								static/main.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,124 @@ | ||||
| @font-face { | ||||
|   font-family: Facade; | ||||
|   src: url(fonts/facade/Facade-Sud.woff); | ||||
| } | ||||
|  | ||||
| @font-face { | ||||
|   font-family: sligoil; | ||||
|   src: url(fonts/sligoil/Sligoil-Micro.woff); | ||||
| } | ||||
|  | ||||
| @font-face { | ||||
|   font-family: jetbrains-mono; | ||||
|   src: url(fonts/jetbrains-mono/JetBrainsMono-Regular.ttf); | ||||
| } | ||||
|  | ||||
|  | ||||
| body { | ||||
| 	background-color: rgb(0, 0, 0); | ||||
| 	font-family: jetbrains-mono; | ||||
| 	font-size: 3vw; | ||||
| } | ||||
|  | ||||
| .container { | ||||
| 	margin: 2rem auto; | ||||
| 	margin-left: 2vw; | ||||
| 	margin-right: 1vw; | ||||
| } | ||||
|  | ||||
| .header { | ||||
| 	display: flex; | ||||
| 	justify-content: center; | ||||
| 	margin: 0 auto; | ||||
| 	font-family: facade; | ||||
| 	font-size: 12vw; | ||||
| 	color: #24ea26; | ||||
| } | ||||
|  | ||||
| #d { | ||||
| 	float: right; | ||||
| 	margin-right: 6vw; | ||||
| 	margin-left: 1vw; | ||||
| 	margin-bottom: 2vw; | ||||
| 	background-color: #24ea26; | ||||
| } | ||||
|  | ||||
| main  { | ||||
| 	color: #24ea26; | ||||
| } | ||||
|  | ||||
| main h2 { | ||||
| 	font-family: sligoil; | ||||
| 	font-size: 5vw; | ||||
| } | ||||
|  | ||||
| main h3 { | ||||
| 	font-family: sligoil; | ||||
| 	font-size: 4vw; | ||||
| 	margin: 2rem auto; | ||||
| 	margin-left: 2vw; | ||||
| 	margin-right: 1vw; | ||||
| } | ||||
|  | ||||
| #about { | ||||
| 	margin-bottom: 2rem; | ||||
| } | ||||
|  | ||||
| a { | ||||
| 	font-family: sligoil; | ||||
| 	text-decoration: underline; | ||||
| 	color: #24ea26; | ||||
|  | ||||
| } | ||||
|  | ||||
| a:visited { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| a:active { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| a:hover { | ||||
| 	text-decoration: none; | ||||
| } | ||||
|  | ||||
| main ul li { | ||||
| 	font-size: 3vw; | ||||
| } | ||||
|  | ||||
| main ul li:hover { | ||||
| 	background-color: #008000; | ||||
| } | ||||
|  | ||||
| main ul li:hover a { | ||||
| 	color: #000000; | ||||
| } | ||||
|  | ||||
| main ul li:before { | ||||
| 	content: ">"; | ||||
| 	padding-right: 5px;	 | ||||
| 	color: #24ea26; | ||||
| } | ||||
|  | ||||
| .back ul li { | ||||
| 	text-align: right; | ||||
| 	clear: both; | ||||
| } | ||||
|  | ||||
| .back ul li:before { | ||||
| 	content: "<"; | ||||
| 	padding-right: 5px;	 | ||||
| 	color: #24ea26; | ||||
| } | ||||
|  | ||||
| #onama p { | ||||
| 	font-size: 2vw; | ||||
| } | ||||
|  | ||||
| .box { | ||||
| 	float: left; | ||||
| 	width: 25vw; | ||||
| 	text-align: center; | ||||
| 	padding: 1vw; | ||||
| } | ||||
							
								
								
									
										368
									
								
								static/reset.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,368 @@ | ||||
| /* http://meyerweb.com/eric/tools/css/reset/ | ||||
|  *    v2.0-modified | 20110126 | ||||
|  *       License: none (public domain) | ||||
|  *       */ | ||||
|  | ||||
| html, body, div, span, applet, object, iframe, | ||||
| h1, h2, h3, h4, h5, h6, p, blockquote, pre, | ||||
| a, abbr, acronym, address, big, cite, code, | ||||
| del, dfn, em, img, ins, kbd, q, s, samp, | ||||
| small, strike, strong, sub, sup, tt, var, | ||||
| b, u, i, center, | ||||
| dl, dt, dd, ol, ul, li, | ||||
| fieldset, form, label, legend, | ||||
| table, caption, tbody, tfoot, thead, tr, th, td, | ||||
| article, aside, canvas, details, embed, | ||||
| figure, figcaption, footer, header, hgroup, | ||||
| menu, nav, output, ruby, section, summary, | ||||
| time, mark, audio, video { | ||||
| 	  margin: 0; | ||||
| 	  	padding: 0; | ||||
| 			border: 0; | ||||
| 				font-size: 100%; | ||||
| 					font: inherit; | ||||
| 						vertical-align: baseline; | ||||
| 					} | ||||
|  | ||||
| 					/* make sure to set some focus styles for accessibility */ | ||||
| 					:focus { | ||||
| 						    outline: 0; | ||||
| 					    } | ||||
|  | ||||
| 					    /* HTML5 display-role reset for older browsers */ | ||||
| 					    article, aside, details, figcaption, figure, | ||||
| 					    footer, header, hgroup, menu, nav, section { | ||||
| 						    	display: block; | ||||
| 						} | ||||
|  | ||||
| 						body { | ||||
| 								line-height: 1; | ||||
| 							} | ||||
|  | ||||
| 							ol, ul { | ||||
| 									list-style: none; | ||||
| 								} | ||||
|  | ||||
| 								blockquote, q { | ||||
| 										quotes: none; | ||||
| 									} | ||||
|  | ||||
| 									blockquote:before, blockquote:after, | ||||
| 									q:before, q:after { | ||||
| 											content: ''; | ||||
| 												content: none; | ||||
| 											} | ||||
|  | ||||
| 											table { | ||||
| 													border-collapse: collapse; | ||||
| 														border-spacing: 0; | ||||
| 													} | ||||
|  | ||||
| 													input[type=search]::-webkit-search-cancel-button, | ||||
| 													input[type=search]::-webkit-search-decoration, | ||||
| 													input[type=search]::-webkit-search-results-button, | ||||
| 													input[type=search]::-webkit-search-results-decoration { | ||||
| 														    -webkit-appearance: none; | ||||
| 														        -moz-appearance: none; | ||||
| 														} | ||||
|  | ||||
| 														input[type=search] { | ||||
| 															    -webkit-appearance: none; | ||||
| 															        -moz-appearance: none; | ||||
| 																    -webkit-box-sizing: content-box; | ||||
| 																        -moz-box-sizing: content-box; | ||||
| 																	    box-sizing: content-box; | ||||
| 																    } | ||||
|  | ||||
| 																    textarea { | ||||
| 																	        overflow: auto; | ||||
| 																		    vertical-align: top; | ||||
| 																		        resize: vertical; | ||||
| 																		} | ||||
|  | ||||
| 																		/** | ||||
| 																		 *  * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. | ||||
| 																		 *   */ | ||||
|  | ||||
| audio, | ||||
| canvas, | ||||
| video { | ||||
| 	    display: inline-block; | ||||
| 	        *display: inline; | ||||
| 		    *zoom: 1; | ||||
| 		        max-width: 100%; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 *  * Prevent modern browsers from displaying `audio` without controls. | ||||
| 		 *   * Remove excess height in iOS 5 devices. | ||||
| 		 *    */ | ||||
|  | ||||
| audio:not([controls]) { | ||||
| 	    display: none; | ||||
| 	        height: 0; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 *  * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4. | ||||
| 	 *   * Known issue: no IE 6 support. | ||||
| 	 *    */ | ||||
|  | ||||
| [hidden] { | ||||
| 	    display: none; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using | ||||
|      *   *    `em` units. | ||||
|      *    * 2. Prevent iOS text size adjust after orientation change, without disabling | ||||
|      *     *    user zoom. | ||||
|      *      */ | ||||
|  | ||||
| html { | ||||
| 	    font-size: 100%; /* 1 */ | ||||
| 	        -webkit-text-size-adjust: 100%; /* 2 */ | ||||
| 		    -ms-text-size-adjust: 100%; /* 2 */ | ||||
| 	    } | ||||
|  | ||||
| 	    /** | ||||
| 	     *  * Address `outline` inconsistency between Chrome and other browsers. | ||||
| 	     *   */ | ||||
|  | ||||
| a:focus { | ||||
| 	    outline: thin dotted; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * Improve readability when focused and also mouse hovered in all browsers. | ||||
|      *   */ | ||||
|  | ||||
| a:active, | ||||
| a:hover { | ||||
| 	    outline: 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3. | ||||
|      *   * 2. Improve image quality when scaled in IE 7. | ||||
|      *    */ | ||||
|  | ||||
| img { | ||||
| 	    border: 0; /* 1 */ | ||||
| 	        -ms-interpolation-mode: bicubic; /* 2 */ | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 *  * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11. | ||||
| 	 *   */ | ||||
|  | ||||
| figure { | ||||
| 	    margin: 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * Correct margin displayed oddly in IE 6/7. | ||||
|      *   */ | ||||
|  | ||||
| form { | ||||
| 	    margin: 0; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * Define consistent border, margin, and padding. | ||||
|      *   */ | ||||
|  | ||||
| fieldset { | ||||
| 	    border: 1px solid #c0c0c0; | ||||
| 	        margin: 0 2px; | ||||
| 		    padding: 0.35em 0.625em 0.75em; | ||||
| 	    } | ||||
|  | ||||
| 	    /** | ||||
| 	     *  * 1. Correct color not being inherited in IE 6/7/8/9. | ||||
| 	     *   * 2. Correct text not wrapping in Firefox 3. | ||||
| 	     *    * 3. Correct alignment displayed oddly in IE 6/7. | ||||
| 	     *     */ | ||||
|  | ||||
| legend { | ||||
| 	    border: 0; /* 1 */ | ||||
| 	        padding: 0; | ||||
| 		    white-space: normal; /* 2 */ | ||||
| 		        *margin-left: -7px; /* 3 */ | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 *  * 1. Correct font size not being inherited in all browsers. | ||||
| 		 *   * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5, | ||||
| 		 *    *    and Chrome. | ||||
| 		 *     * 3. Improve appearance and consistency in all browsers. | ||||
| 		 *      */ | ||||
|  | ||||
| button, | ||||
| input, | ||||
| select, | ||||
| textarea { | ||||
| 	    font-size: 100%; /* 1 */ | ||||
| 	        margin: 0; /* 2 */ | ||||
| 		    vertical-align: baseline; /* 3 */ | ||||
| 		        *vertical-align: middle; /* 3 */ | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 *  * Address Firefox 3+ setting `line-height` on `input` using `!important` in | ||||
| 		 *   * the UA stylesheet. | ||||
| 		 *    */ | ||||
|  | ||||
| button, | ||||
| input { | ||||
| 	    line-height: normal; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * Address inconsistent `text-transform` inheritance for `button` and `select`. | ||||
|      *   * All other form control elements do not inherit `text-transform` values. | ||||
|      *    * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+. | ||||
|      *     * Correct `select` style inheritance in Firefox 4+ and Opera. | ||||
|      *      */ | ||||
|  | ||||
| button, | ||||
| select { | ||||
| 	    text-transform: none; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` | ||||
|      *   *    and `video` controls. | ||||
|      *    * 2. Correct inability to style clickable `input` types in iOS. | ||||
|      *     * 3. Improve usability and consistency of cursor style between image-type | ||||
|      *      *    `input` and others. | ||||
|      *       * 4. Remove inner spacing in IE 7 without affecting normal text inputs. | ||||
|      *        *    Known issue: inner spacing remains in IE 6. | ||||
|      *         */ | ||||
|  | ||||
| button, | ||||
| html input[type="button"], /* 1 */ | ||||
| input[type="reset"], | ||||
| input[type="submit"] { | ||||
| 	    -webkit-appearance: button; /* 2 */ | ||||
| 	        cursor: pointer; /* 3 */ | ||||
| 		    *overflow: visible;  /* 4 */ | ||||
| 	    } | ||||
|  | ||||
| 	    /** | ||||
| 	     *  * Re-set default cursor for disabled elements. | ||||
| 	     *   */ | ||||
|  | ||||
| button[disabled], | ||||
| html input[disabled] { | ||||
| 	    cursor: default; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * 1. Address box sizing set to content-box in IE 8/9. | ||||
|      *   * 2. Remove excess padding in IE 8/9. | ||||
|      *    * 3. Remove excess padding in IE 7. | ||||
|      *     *    Known issue: excess padding remains in IE 6. | ||||
|      *      */ | ||||
|  | ||||
| input[type="checkbox"], | ||||
| input[type="radio"] { | ||||
| 	    box-sizing: border-box; /* 1 */ | ||||
| 	        padding: 0; /* 2 */ | ||||
| 		    *height: 13px; /* 3 */ | ||||
| 		        *width: 13px; /* 3 */ | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 *  * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. | ||||
| 		 *   * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome | ||||
| 		 *    *    (include `-moz` to future-proof). | ||||
| 		 *     */ | ||||
|  | ||||
| input[type="search"] { | ||||
| 	    -webkit-appearance: textfield; /* 1 */ | ||||
| 	        -moz-box-sizing: content-box; | ||||
| 		    -webkit-box-sizing: content-box; /* 2 */ | ||||
| 		        box-sizing: content-box; | ||||
| 		} | ||||
|  | ||||
| 		/** | ||||
| 		 *  * Remove inner padding and search cancel button in Safari 5 and Chrome | ||||
| 		 *   * on OS X. | ||||
| 		 *    */ | ||||
|  | ||||
| input[type="search"]::-webkit-search-cancel-button, | ||||
| input[type="search"]::-webkit-search-decoration { | ||||
| 	    -webkit-appearance: none; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      *  * Remove inner padding and border in Firefox 3+. | ||||
|      *   */ | ||||
|  | ||||
| button::-moz-focus-inner, | ||||
| input::-moz-focus-inner { | ||||
| 	    border: 0; | ||||
| 	        padding: 0; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 *  * 1. Remove default vertical scrollbar in IE 6/7/8/9. | ||||
| 	 *   * 2. Improve readability and alignment in all browsers. | ||||
| 	 *    */ | ||||
|  | ||||
| textarea { | ||||
| 	    overflow: auto; /* 1 */ | ||||
| 	        vertical-align: top; /* 2 */ | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 *  * Remove most spacing between table cells. | ||||
| 	 *   */ | ||||
|  | ||||
| table { | ||||
| 	    border-collapse: collapse; | ||||
| 	        border-spacing: 0; | ||||
| 	} | ||||
|  | ||||
| 	html, | ||||
| 	button, | ||||
| 	input, | ||||
| 	select, | ||||
| 	textarea { | ||||
| 		    color: #222; | ||||
| 	    } | ||||
|  | ||||
|  | ||||
| 	    ::-moz-selection { | ||||
| 		        background: #b3d4fc; | ||||
| 			    text-shadow: none; | ||||
| 		    } | ||||
|  | ||||
| 		    ::selection { | ||||
| 			        background: #b3d4fc; | ||||
| 				    text-shadow: none; | ||||
| 			    } | ||||
|  | ||||
| 			    img { | ||||
| 				        vertical-align: middle; | ||||
| 				} | ||||
|  | ||||
| 				fieldset { | ||||
| 					    border: 0; | ||||
| 					        margin: 0; | ||||
| 						    padding: 0; | ||||
| 					    } | ||||
|  | ||||
| 					    textarea { | ||||
| 						        resize: vertical; | ||||
| 						} | ||||
|  | ||||
| 						.chromeframe { | ||||
| 							    margin: 0.2em 0; | ||||
| 							        background: #ccc; | ||||
| 								    color: #000; | ||||
| 								        padding: 0.2em 0; | ||||
| 								} | ||||
|  | ||||
|  | ||||
| @@ -1,37 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
| <head> | ||||
|   <meta charset="UTF-8"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|   <link rel="stylesheet" href="/styles/reset.css"> | ||||
|   <link rel="stylesheet" href="/styles/style.css"> | ||||
|   <!--ADDITIONAL_STYLE--> | ||||
|   <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"> | ||||
|   <script src="/scripts/main.js" defer></script> | ||||
|   <title><!--TITLE--> Decentrala</title> | ||||
| </head> | ||||
| <body> | ||||
|   <header> | ||||
|     <a id="logo" href="/"><img src="/img/logo-light.svg" alt="Logo"> Decentrala</a> | ||||
|     <button id="theme-switcher"></button> | ||||
|     <a class="account" href="/en/account">Account</a> | ||||
|   </header> | ||||
|   <main> | ||||
|     <!--MAIN--> | ||||
|   </main> | ||||
|   <footer> | ||||
|     <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> | ||||
|     <nav> | ||||
|       <a href="/en/events">Događaji</a> | ||||
|       <a href="/en/services">Servisi</a> | ||||
|       <a href="/en/contact">Kontakt</a> | ||||
|     </nav> | ||||
|     <span class="links"> | ||||
|       <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="/img/cc-light.svg" alt="CreativeCommons"></a> | ||||
|       <a href="/en/webring"><img src="/img/w-light.svg" alt="Webring"></a> | ||||
|       <a href="https://gitea.dmz.rs/Decentrala/website"><img src="/img/git-light.svg" alt="SourceCode"></a> | ||||
|       <a href="https://balkan.fedive.rs/@decentrala"><img src="/img/mastodon-light.svg" alt="Mastodon"></a> | ||||
|     </span> | ||||
|   </footer> | ||||
| </body> | ||||
| </html> | ||||
| @@ -1,37 +0,0 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="sr"> | ||||
| <head> | ||||
|   <meta charset="UTF-8"> | ||||
|   <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
|   <link rel="stylesheet" href="/styles/reset.css"> | ||||
|   <link rel="stylesheet" href="/styles/style.css"> | ||||
|   <!--ADDITIONAL_STYLE--> | ||||
|   <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon"> | ||||
|   <script src="/scripts/main.js" defer></script> | ||||
|   <title><!--TITLE--> Decentrala</title> | ||||
| </head> | ||||
| <body> | ||||
|   <header> | ||||
|     <a id="logo" href="/"><img src="/img/logo-light.svg" alt="Logo"> Decentrala</a> | ||||
|     <button id="theme-switcher"></button> | ||||
|     <a class="account" href="/account">Nalog</a> | ||||
|   </header> | ||||
|   <main> | ||||
|     <!--MAIN--> | ||||
|   </main> | ||||
|   <footer> | ||||
|     <button id="sections-button" opened="false"><img src="/img/strelica-closed-light.svg" alt="OpenMenu"></button> | ||||
|     <nav> | ||||
|       <a href="/events">Događaji</a> | ||||
|       <a href="/services">Servisi</a> | ||||
|       <a href="/contact">Kontakt</a> | ||||
|     </nav> | ||||
|     <span class="links"> | ||||
|       <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="/img/cc-light.svg" alt="CreativeCommons"></a> | ||||
|       <a href="/webring"><img src="/img/w-light.svg" alt="Webring"></a> | ||||
|       <a href="https://gitea.dmz.rs/Decentrala/website"><img src="/img/git-light.svg" alt="SourceCode"></a> | ||||
|       <a href="https://balkan.fedive.rs/@decentrala"><img src="/img/mastodon-light.svg" alt="Mastodon"></a> | ||||
|     </span> | ||||
|   </footer> | ||||
| </body> | ||||
| </html> | ||||