diff --git a/lukaskanka/.htaccess b/lukaskanka/.htaccess deleted file mode 100644 index 06d30c7..0000000 --- a/lukaskanka/.htaccess +++ /dev/null @@ -1,10 +0,0 @@ -RewriteEngine on -RewriteCond %{HTTP:X-Forwarded-Proto} !https -RewriteCond %{HTTP_USER_AGENT} !(BlackBerry) -RewriteCond %{HTTP_USER_AGENT} !(Windows\sNT\s5\.[12]) -RewriteCond %{HTTP_HOST} ^(www\.)?lukaskanka.cz -RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L] - -RewriteBase / -RewriteCond %{REQUEST_URI} ^(/www/|/www) -RewriteRule ^(www/)(.*)$ https://%{HTTP_HOST}/$2 [R=301,L] diff --git a/lukaskanka/.idea/.gitignore b/lukaskanka/.idea/.gitignore deleted file mode 100644 index d724c2b..0000000 --- a/lukaskanka/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/modules.xml -/contentModel.xml -/projectSettingsUpdater.xml -/.idea.NewBlog2024.iml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/lukaskanka/.idea/indexLayout.xml b/lukaskanka/.idea/indexLayout.xml deleted file mode 100644 index 7b08163..0000000 --- a/lukaskanka/.idea/indexLayout.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/lukaskanka/.idea/vcs.xml b/lukaskanka/.idea/vcs.xml deleted file mode 100644 index 35eb1dd..0000000 --- a/lukaskanka/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/lukaskanka/LICENSE b/lukaskanka/LICENSE deleted file mode 100644 index f288702..0000000 --- a/lukaskanka/LICENSE +++ /dev/null @@ -1,674 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/lukaskanka/README.md b/lukaskanka/README.md deleted file mode 100644 index e69de29..0000000 diff --git a/lukaskanka/error/403.php b/lukaskanka/error/403.php deleted file mode 100644 index f1e2843..0000000 --- a/lukaskanka/error/403.php +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - 403 Error - - - - - - - - diff --git a/lukaskanka/error/404.php b/lukaskanka/error/404.php deleted file mode 100644 index c23b231..0000000 --- a/lukaskanka/error/404.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - 404 Error - - - - - - - - diff --git a/lukaskanka/error/413.php b/lukaskanka/error/413.php deleted file mode 100644 index c6bb92b..0000000 --- a/lukaskanka/error/413.php +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - 413 Error - - - - - - - - diff --git a/lukaskanka/error/5xx.php b/lukaskanka/error/5xx.php deleted file mode 100644 index bb706a9..0000000 --- a/lukaskanka/error/5xx.php +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - 5XX Error - - - - - - - - diff --git a/lukaskanka/img/helix(1).png b/lukaskanka/img/helix(1).png deleted file mode 100644 index 6cc550e..0000000 Binary files a/lukaskanka/img/helix(1).png and /dev/null differ diff --git a/lukaskanka/img/helix.png b/lukaskanka/img/helix.png deleted file mode 100644 index c23b231..0000000 --- a/lukaskanka/img/helix.png +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - 404 Error - - - - - - - - diff --git a/lukaskanka/img/logo_arch_linux_167.png b/lukaskanka/img/logo_arch_linux_167.png deleted file mode 100644 index a84626d..0000000 Binary files a/lukaskanka/img/logo_arch_linux_167.png and /dev/null differ diff --git a/lukaskanka/index.php b/lukaskanka/index.php deleted file mode 100644 index f389516..0000000 --- a/lukaskanka/index.php +++ /dev/null @@ -1,68 +0,0 @@ - - - - - - - - - Kankys v Matrixu - - - - - - - - - - - - - < - -
- - - - - -
-
Copyright © Lukáš Kaňka 2024
- - - - diff --git a/lukaskanka/index/about/img/qrcode-paypal.png b/lukaskanka/index/about/img/qrcode-paypal.png deleted file mode 100644 index e015781..0000000 Binary files a/lukaskanka/index/about/img/qrcode-paypal.png and /dev/null differ diff --git a/lukaskanka/index/about/img/sat.jpeg b/lukaskanka/index/about/img/sat.jpeg deleted file mode 100644 index 755b9c6..0000000 Binary files a/lukaskanka/index/about/img/sat.jpeg and /dev/null differ diff --git a/lukaskanka/index/about/index.php b/lukaskanka/index/about/index.php deleted file mode 100644 index e4ae6bc..0000000 --- a/lukaskanka/index/about/index.php +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - - - O mně - - - - - - - - - -
-

O mně

- -
- -

- Jsem IT nadšenec s pozitivním přístupem k životu a vášní pro - technologie, ve kterých se neustále vzdělávám. Absolvoval jsem kurz - testingu a SQL v Acamaru, další kurz byl web developer u společnosti Engeto. Pracoval jsem na pozici testera ve společnosti Uniprog a nyní pracuji ve společnosti Kyndryl na projektu České Spořitelny pro platformu SMART. Můj životopis najdete pod tímto odkazem. -

- -
-
    -
  • Ve volném čase se věnuji:
  • -
  • Svému blogu: Lukáš Bloguje.
  • -
  • Spolku Arch Linux CZ, kde jsem členem a pomáhám se správou webu: Arch Linux - CZ a dalších webových aplikacích Arch Linux CZ. -
  • -
  • Linuxu, MacOS a Opensource (i si rozumím s Windows :-)).
  • -
  • Seberozvoji v oblasti komunikace a emoční inteligence.
  • -
  • Sportu, který mi dobíjí baterky.
  • -
  • Missing maps pro Lékaře bez hranic.
  • -
  • Mapování v OSM.
  • -
-
- - -
-
    -
  • V osobním životě se snažím vedle komerčních aplikací poznávat a - používat Opensource.
  • -
  • To to jsou opensource aplikace, které používám vedle placených - aplikací a stojí myslím za vyzkoušení: -
  • -
  • Alternativa za OneNote od Microsoftu je aplikace Joplin
  • - -
  • Pro cloud a tvorbu dokumentů k Microsoft 365 doporučuji NextCloud
  • - -
  • Pokud potřebuji šifrovat dokumenty nebo jen s někým něco sdílet a - nechci sdílet s NextCloud nebo OneDrive použiji CryptPad
  • - -
  • Náhradu za Jiru může být Vikunja
  • - -
  • Mimo GitHub svůj kód ukládám na Gitea
  • -
  • Pro tvorbu tohoto blogu vedle VS Code používám Brackets -
  • - -
  • Jako RSS čtečku využívám minimalistickou MiniFlux
  • - -
  • Správce hesel může být Bitwarden -
  • - -
  • Internetový prohlížeč Firefox -
  • - -
  • E-mail klienta používám Thunderbird -
  • - -
  • Alternativu k sociální sítím může být MastodonElement
  • - -
  • Alternativou k Instagramu může být Pixelfed
  • - -
-
- -
-
    -
  • Kde všude mně najdete:
  • -
  • Můj profil na: Gitea
  • -
  • Můj profil na: GitHub
  • -
  • Můj profil na: LinkedIn
  • - - -
-
-
-
    -
  • Budu velmi vděčný za malý příspěvek na provoz mých projektů:
  • -
  • Pár satoshi nebo jiné krypto měny(po dohodě)
  • -
  • Nebo pomocí Lightning technologije na adresu: affableshirt47@walletofsatoshi.com -
  • -
  • či přes QR kód na Lightning:
  • -
  • Satoshi qrcode
  • -
  • Přes paypal pomocí QR kódu:
  • -
  • Paypal qrcode
  • -
  • Aktivačním kódem na aplikaci k recenzi či článku
  • -
  • Kritikou, radou nebo e-mailem pár slov potěší
  • -
  • Také se můžeme potkat na WordPress pivu v Praze, Frodentisti akcích, PHPkáři akcích nebo jen tak na - pivku - a jiné akci. -
  • -
-
-
- - -
- Copyright © Lukáš Kaňka 2024 -
- -
- - - diff --git a/lukaskanka/index/about/zivotopis/image/1702045296079.jpeg b/lukaskanka/index/about/zivotopis/image/1702045296079.jpeg deleted file mode 100644 index c0b1c93..0000000 Binary files a/lukaskanka/index/about/zivotopis/image/1702045296079.jpeg and /dev/null differ diff --git a/lukaskanka/index/apollo-nvim/colors.css b/lukaskanka/index/apollo-nvim/colors.css deleted file mode 100644 index 110b1d7..0000000 --- a/lukaskanka/index/apollo-nvim/colors.css +++ /dev/null @@ -1,14 +0,0 @@ -:root { - --dracula-body-bg: #2a232b; - --dracula-color: #f8f8f2; - --dracula-header-bg: #2a232b; - --dracula-scrollToTopBtn-color: #9fea8a; - --dracula-links-color: #f76b00; - --dracula-nav-bg: #2a232b; - --dracula-nav-links-color: #f76b00; - --dracula-h1-color: #e54472; - --dracula-h2-color: #18f700; - --dracula-solid-bg: #2a232b; - --dracula-solid-color: #f76b00; - --dracula-footer-bg: #2a232b; -} diff --git a/lukaskanka/index/apollo-nvim/img/config.png b/lukaskanka/index/apollo-nvim/img/config.png deleted file mode 100644 index 325c9f2..0000000 Binary files a/lukaskanka/index/apollo-nvim/img/config.png and /dev/null differ diff --git a/lukaskanka/index/apollo-nvim/img/fzf.png b/lukaskanka/index/apollo-nvim/img/fzf.png deleted file mode 100644 index 3c0db79..0000000 Binary files a/lukaskanka/index/apollo-nvim/img/fzf.png and /dev/null differ diff --git a/lukaskanka/index/apollo-nvim/img/home.png b/lukaskanka/index/apollo-nvim/img/home.png deleted file mode 100644 index ebe4c7c..0000000 Binary files a/lukaskanka/index/apollo-nvim/img/home.png and /dev/null differ diff --git a/lukaskanka/index/apollo-nvim/img/icons8-rocket.gif b/lukaskanka/index/apollo-nvim/img/icons8-rocket.gif deleted file mode 100644 index c2a91fa..0000000 Binary files a/lukaskanka/index/apollo-nvim/img/icons8-rocket.gif and /dev/null differ diff --git a/lukaskanka/index/apollo-nvim/index.php b/lukaskanka/index/apollo-nvim/index.php deleted file mode 100644 index 7773df2..0000000 --- a/lukaskanka/index/apollo-nvim/index.php +++ /dev/null @@ -1,193 +0,0 @@ -' - - - - - - - - - - - - - - - - - - ApolloNvim - - - -
-

🚀ApolloNvim

- - - - -
-
- - -
-
-

Úvod:

-

- 👉 Neovim setup pro Front-End vývoj postavený na - Coc. -

-

- 👉 Výhody Neovim oproti klasickému IDE jsou nesporně ve svobodě - konfigurace, je tisíce možností, jak Váš Neovim může vypadat a - fungovat. Pro Vaši inspiraci a použití vznikl tento projekt 🚀 - ApolloNvim. -

-

- 👉 Tato distribuce nefunguje jen, že kliknete na tlačítko a - nainstaluje se. Vede Vás k samostatné instalaci pomocí tohoto webu. - Cílem je pochopit, jak Neovim funguje, abyste si sami mohli vše - modifikovat, což i click-on distribucí se nenaučíte. -

-

- 👉 Toto nastavení je primárně pro vývoj webu. Inspiroval jsem se - pluginy, které jsem využíval v VSCode a Webstorm. -

-

👉 Velký důraz je kladen na rychlost a lehkost.

-

- 👉 🚀 ApolloNvim Distro je stále ve vývoji a postupně se na něm - pracuje. -

-

- 👉 Pro nejlepší zážitek s 🚀 ApolloNvim Distro doporučuji používat - multiplexor - Zellij , ale není to samozřejmě - podmínkou. -

-
-
-

Přednosti:

-

- 👉 Hlavní předností tohoto nastavení jsou podpora: Codeium alternativa - k Copilot zdarma, Prettier, AutoSave, diplňování HTML, CSS, JS a - zkratky k zakomentování a odkomentování kódu. Taky je zde několik - pluginu pro příjemnější práci v Neovim. -

-

- 👉 S - LSP - v této instalaci využívám - Coc - pro jeho jednoduchost s minimálními zásahy do konfigurace Coc. LSP se - mi velmi osvědčilo v modálním editoru - Helix-editor - má konfigurace - Helixu. -

-

- 👉 Ty nejlepší témata pro Neovim (ať je nemusíte hledat), je defaultně - nastavéné Dracula. -

-

- 👉 Téma v Neovim si jednoduše změníte v command line příkazem - colorscheme a tlačítkem Tab se budete přepínat mezi jednotlivými - tématy. -

-
-
- Homescreen - config.vim - fzf -
-
-

Plán 🚀ApolloNvim:

-

- 👉 Do budoucna můžete očekávat tyto nové funkce a další novinky: -

-

- 👉 Web na vlastní doméně. -

-

👉 Instalátor 🚀 ApolloNvim přes odkaz z Gitu.

-

👉 Nová vlastní uvítací obrazovka.

-

👉 Nové pluginy.

- 👉 Návody k pluginům, jak nastavit a jak s nimi pracovat. -

-

👉 Návody k práci s Neovim.

-
-
-

Otázky a odpovědi:

-

👉 Kolik stojí 🚀 ApolloNvim? -> Nic 🚀 ApolloNvim je zdarma.

-
-
-

Kontakty:

-

- 👉 🚀 ApolloNvim Telegram skupina -

-

- 👉 Osobní web autora 🚀 ApolloNvim -

-

- 👉 Gitea profil -

-

- 👉 GitHub -

-

- - Mastodon -

-
- -
-

Podpora:

-

- 👉 Pokud jakkoliv chcete podpořit nebo se podílet na obsahu a - funkčnosti 🚀 ApolloNvim, prosím budu rád když mi zde napíšete. -

-

👉 Taky můžete tento projekt podpořit pár Satoshi:

- Satoshi -
-
-

Další projekty a odkazy:

-

- 👉 ArchLinux CZ -

-

- 👉 - Vyhledávač SearXNG CZ -

-

- 👉 - EndeavourOS Linux -

-

- 👉 i3 window manager -

-
- - -
- - - - -' \ No newline at end of file diff --git a/lukaskanka/index/apollo-nvim/install.php b/lukaskanka/index/apollo-nvim/install.php deleted file mode 100644 index c035c25..0000000 --- a/lukaskanka/index/apollo-nvim/install.php +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - ApolloNvim Instalace - - - -
-

🚀ApolloNvim Instalace

- - - - -
-
-
-
-

Instalace a nastavení:

-

- - Vždy se podívej před instalací - nových pluginu, na dokumentaci k - plaginům na Githubu. Předejdeš - tím případným problémům! Pokud - si nejsi jistý postupem nebo ti - není něco jasné, tak raději se - podívej do dokumentace,napiš nám - nebo fórech najdeš odpověď. - -

- -

- 👉 Pokud ještě nemáte nainstalujte si - Neovim. -

-

- 👉 Bude potřeba nainstalovat plug.vim - aby jste mohl/a instalovat rozšíření. -

-

- 👉 Běžte na tuto - stránku - pod Installation si najděte svůj - operační systém a zkopírujte odkaz pod - ním do svého terminálu. -

-

- 👉 Nejprve si však zálohujte své - aktuální nastavení Neovim!!! -

-

👉 Linux & Mac:

-
-

/home/user/.config/nvim/init.vim

-
-

Windows:

-
-

~\AppData\Local\nvim

-
-
-
-

Node.js:

-

- 👉 Doporučuji mít nainstalovaný - Node.js. -

-

- 👉 Dále si v Node.js nainstalujte - Live-server - příkazem: -

-
-

npm i live-server

-
-

- 👉 Ve svém projektu budete moci pouštět - svůj index.html příkazem: -

-
-

npx live-server

-
-

- 👉 Pro správnou funkčnost LSP si - doinstalujte tyto balíčky: -

- -

- vscode-html-langserver -

-

- vscode-css-langserver -

-

- typescript-language-server -

-

- emmet-ls -

-

- eslint -

-

- vtailwindcss-language-server -

-

- marksman -

-

- markdoc-ls -

-
-
-

Neovim:

-

- 👉 Pro instalaci 🚀 ApolloNvim Distra - stačí stáhnout pouze soubor init.vim s - tohoto - repositáře. -

-

- 👉 Uložte ho do kořenováho adresáře - ~/.. /nvim dle tvého - OS. - Nezapomeňte na zálohu - stávajících souborů -

-

- 👉 Neovim pustíte v terminálu příkazem - nvim. -

-

👉 Odklikejte chybová hlášení.

-

- 👉 V Neovimu zadejte do command line - PlugIns , tím - nainstalujete všechny pluginy. - Restartujte Neovim. -

-

- 👉 Pokud Vám některý plugin chybí, - můžete ho lehce doinstalovat nebo naopak - odinstalovat pomocí - plug.vim. Více - informací najdete na GitHubu - plug.vim - nebo velmi rád poradím viz. o nás. -

-

- 👉 Pokud některý plugin nechcete - používat stačí v souboru - init.vim ho - zakomentovat pomocí dvojitých uvozovek - ". -

-

- 👉 Do command line ještě zadejte Coc - příkaz pro doinstalování zbylých - pluginů: -

-
-

- CocInstall coc-todolist - coc-tailwindcss coc-json - coc-html-css-support coc-html - coc-emmet coc-xml coc-tsserver - coc-lsp-wl coc-lit-html - coc-htmldjango coc-css - coc-markdown-preview-enhanced - coc-markdownlint -

-
-

- 👉 A ještě jednou restartujte Neovim a - vše máte připravené. -

-

- 👉 Tuto konfiguraci používám na Linuxu i - MacOS. Je ozkoušena i na Windows 11. -

-
- - - -
- - - diff --git a/lukaskanka/index/apollo-nvim/manuals.php b/lukaskanka/index/apollo-nvim/manuals.php deleted file mode 100644 index a3218ad..0000000 --- a/lukaskanka/index/apollo-nvim/manuals.php +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - - - - - - - ApolloNvim Návody - - - -
-

🚀ApolloNvim Návody

- - - -
-
- -
-

- Vždy se podívej před Instalací na - Githubu, na zdroj. Předejdeš tím - případným problémům! Pokud si nejsi - jistý postupem nebo ti není něco jasné, - tak raději se podívej do - dokumntace,napiš nebo fórech najdeš - odpověď. -

-
- -
-
-

- Jak nainstalovat vim.plug do Neovim -

- -

- Nejprve si však zálohujte své aktuální - nastavení Neovim!!! -

-

Linux & Mac:

-
-

/home/user/.config/nvim/init.vim

-
-

Windows:

-
-

~\AppData\Local\nvim

-
-

- Běžte na tuto - stránku - pod Installation si najděte svůj - operační systém a zkopírujte odkaz pod - ním do svého terminálu a pomocí Enter - nainstalujete vim.plug. -

-

Na Linuxu a macOS to bude tento příkaz:

-
-

- sh -c 'curl -fLo - "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim - --create-dirs \ - https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' -

-
-

- Pro Windows příkaz najdete na - odkazovaném webu výšše. -

- - - - - - - -

- Dále si otevřeme soubor init.vim a pokud - ho nemáme tak si ho vytvoříme zde: -

-

Linux & Mac:

-
-

/home/user/.config/nvim/init.vim

-
-

Windows:

-
-

~\AppData\Local\nvim

-
-

- A do něj vložíme a následně uložíme - tento kód: -

-
-

- call plug#begin(has('nvim') ? - stdpath('data') . '/plugged' : - '~/.vim/plugged') -

-
-

- # Jsem budeš v budoucnu vkládat - pluginy. Začínající PLug a - adresa ke stažení -

-
-

call plug#end()

-
-

- A příkazem Nvim v terminálu spustíme - Neovim. Pokud vám vyskočí chybové - hlášení jen ho odklikněte. -

-

- Pomocí Ctrl + : se - dostanete do příkazového řádku a tam - napíšete PlugInstall -

-

- A restartujeme Neovim. Příkazem - Ctrl + : do príkazového - řádku napíšete q a - restartujeme Neovim. -

-

- Takto pokaždé když si přidáte do - init.vim pluginy, příkazem - PlugInstall je - nainstalujete a restartujeme Neovim. -

-

- Zdroj na - GitHub -

-
- -
- ï -

- Jak nainstalovat Codeium do Neovim -

-

- Codeium - je alternativou k - GitHub Copilot - s tím, že pro jednotlivce je zdarma. - Codeium hodnotím velmi pozitivně a - Copilotu se vyrovná. -

-

- Instalace pomocí plug.vim je jednoduchá, - stačí pouze upravit svůj - init.vim -

-

Vložíme do něj:

-
-

- " Free AI codium
- Plug 'Exafunction/codeium.vim', - { 'branch': 'main' } -

-
-

- Výsledný init.vim bude - vypadat takto: -

-
-

- call plug#begin(has('nvim') ? - stdpath('data') . '/plugged' : - '~/.vim/plugged')
- - " Free AI codium
- Plug 'Exafunction/codeium.vim', - { 'branch': 'main' }
- call plug#end() -

-
-

- A restartujeme Neovim. Příkazem - Ctrl + : do príkazového - řádku napíšete q a - restartujeme Neovim. -

-

- Po restartu provedeme - PlugInstall a ještě jednou - restartujeme Neovim. -

-

- Poslední krok bude konfigurace Codeium, - příkazem CodeiumEnable do - command line. -

-

- Codium vás vyzve k propojení API se - serverem Codium. -

-

A vše by Vám mělo fungovat.

-

- Zdroj na - GitHub -

-
- - -
- - - diff --git a/lukaskanka/index/apollo-nvim/plugins.php b/lukaskanka/index/apollo-nvim/plugins.php deleted file mode 100644 index 857d865..0000000 --- a/lukaskanka/index/apollo-nvim/plugins.php +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - ApolloNvim Pluginy - - - -
-

🚀ApolloNvim Pluginy

- - - - -
-
- - -
- -
-

Výběr pluginu v Lite Web 🚀 ApolloNvim Distro 2024

-

- 👉 - Autoclosetag - nástroj pro uzavírání všech typů závorek a tagů. -

-

- 👉 - NERDTree - vytvoří ti stromový postranní panel. -

-

- 👉 - Coc - manager pro instalování doplňků do Neovim. -

-

- 👉 - Codeium - alternativa k GitHub Copilot, který si případně lehce také můžete - doinstalovat. -

-

- 👉 - Startify - alternativní uvítací obrazovka s pokaždé jiným IT mottem. Nemusí - fungovat s některými terminály či NERDTree nastaveným spuštěním po - startu. -

- 👉 - NERD Commenter - plugin pro zakomentování a odkomentování kódu. Zde ho máme nastaven - na - Ctrl + k. -

-

- 👉 - Wakatime - služba která je schopna měřit kolik času jste trávily při kódování - na pc a i na kterém projektu. Služba se jednoduše propojí přes API. - WakaTime najdeš - zde. -

-

- 👉 - fzf.vim - asynchronií vyhledávač souboru v projektu. Pro mnohé je toto - vyhledávaní rychlejší než klasické stromové, chce to trochu času. - Ale jak se dostane pod kůži vše ostatní Vám už přijde pomalé. -

-

- 👉 - Auto-save - plugin pro automatické ukládání vašich souboru. -

-
-
-

Coc extensions pro front-end:

-

👉 coc-todolist

-

👉 coc-tailwindcss

-

👉 coc-json

-

👉 coc-html-css-support

-

👉 coc-html

-

👉 coc-emmet

-

👉 coc-xml

-

👉 coc-tsserver

-

👉 coc-lsp-wl

-

👉 coc-lit-html

-

👉 coc-htmldjango

-

👉 coc-css

-

👉 coc-markdown-preview-enhanced

-

👉 coc-markdownlint

-

👉 coc-eslint

-
- - -
- - - - - diff --git a/lukaskanka/index/apollo-nvim/sablona.txt b/lukaskanka/index/apollo-nvim/sablona.txt deleted file mode 100644 index 7ff2adb..0000000 --- a/lukaskanka/index/apollo-nvim/sablona.txt +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - ApolloNvim - - - -
-

🚀ApolloNvim

- - - - -
-
- - -
- - - -
- - - - diff --git a/lukaskanka/index/apollo-nvim/script.js b/lukaskanka/index/apollo-nvim/script.js deleted file mode 100644 index a7ed4a0..0000000 --- a/lukaskanka/index/apollo-nvim/script.js +++ /dev/null @@ -1,149 +0,0 @@ -//Navbar menu -const menuIcon = document.querySelector(".menu-icon"); -const menuList = document.querySelector("nav"); -const hamburgerIcon = document.querySelector(".fa-solid"); - -menuIcon.addEventListener("click", () => { - if (hamburgerIcon.classList[1] === "fa-bars") { - hamburgerIcon.classList.add("fa-xmark"); - hamburgerIcon.classList.remove("fa-bars"); - menuList.style.display = "block"; - } else { - hamburgerIcon.classList.add("fa-bars"); - hamburgerIcon.classList.remove("fa-xmark"); - menuList.style.display = "none"; - } -}); - -// Dark / Light Mode -/* -const body = document.querySelector("body"); -const head = document.querySelector("header"); -const links = document.querySelectorAll("a"); -const nav = document.querySelector(".navigation"); -const h1 = document.querySelector("h1"); -const nadpish2 = document.querySelectorAll("h2"); -const p = document.querySelector("p"); -const solid = document.querySelector(".fa-solid"); -const solid1 = document.querySelector(".menu-icon"); -const footer = document.querySelector("footer"); -const gotop = document.querySelector("#scrollToTopBtn"); -const theme = document.querySelector("#toggleButton"); -const box = document.querySelectorAll(".code-box"); -let isDraculaMode = false; - -// Funkce pro nastavení stylů pro Dracula mód -function setDraculaStyles() { - body.style.backgroundColor = "#2a232b"; - body.style.color = "#f8f8f2"; - head.style.backgroundColor = "#2a232b"; - theme.style.color = "#e7efa7"; - gotop.style.color = "#e7efa7"; - links.forEach((a) => { - a.style.color = "#f76b00"; - }); - nav.style.backgroundColor = "#2a232b"; - h1.style.color = "#e54472"; - nadpish2.forEach((h2) => { - h2.style.color = "#18f700"; - }); - solid.style.backgroundColor = "#2a232b"; - solid.style.color = "#f76b00"; - solid1.style.backgroundColor = "#2a232b"; - footer.style.backgroundColor = "#2a232b"; - //gotop.style.backgroundColor = "#18f700"; - //theme.style.backgroundColor = "#18f700"; -} - -// Funkce pro nastavení stylů pro Light mód; -function setLightStyles() { - body.style.backgroundColor = "#e7efa7"; - body.style.color = "#282a36"; - theme.style.color = "#2a232b"; -gotop.style.color = "#2a232b"; - head.style.backgroundColor = "#e7efa7"; - nav.style.backgroundColor = "#e7efa7"; - solid.style.backgroundColor = "#e7efa7"; - solid1.style.backgroundColor = "#e7efa7"; - footer.style.backgroundColor = "#e7efa7"; - nadpish2.forEach((h2) => { - h2.style.color = "#c627d8"; - }); - //gotop.style.backgroundColor = "#a7e6ef"; - //theme.style.backgroundColor = "#a7e6ef"; - box.forEach((p) => { - p.style.color = "white"; - }); -} - -// Funkce pro přepnutí módu -function toggleMode() { - if (isDraculaMode) { - // Pokud je momentálně v Dracula modu, přepnout na Light mód - setLightStyles(); - isDraculaMode = false; - } else { - // Pokud je momentálně v Light modu, přepnout na Dracula mód - setDraculaStyles(); - isDraculaMode = true; - } -} - -// Funkce na změnu stylů -document.getElementById("toggleButton").addEventListener("click", toggleMode); - -// Nastavení - výchozí styl na Dark -setDraculaStyles(); -isDraculaMode = true; -*/ - -// Photo Gallery -> section (zoom) -const image1 = document.querySelector(".picture"); - -image1.addEventListener("mouseenter", () => { - image1.style.transform = "scale(2.2)"; -}); - -image1.addEventListener("mouseleave", () => { - image1.style.transform = "scale(1)"; -}); - -const image2 = document.querySelector(".picture1"); - -image2.addEventListener("mouseenter", () => { - image2.style.transform = "scale(2.2)"; -}); - -image2.addEventListener("mouseleave", () => { - image2.style.transform = "scale(1)"; -}); - -const image3 = document.querySelector(".picture2"); - -image3.addEventListener("mouseenter", () => { - image3.style.transform = "scale(2.2)"; -}); - -image3.addEventListener("mouseleave", () => { - image3.style.transform = "scale(1)"; -}); - -// Tlačítko go to top -// Zobrazení tlačítka od rolovaní části stránky (víc logické než až na konci) -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - document.getElementById("scrollToTopBtn").style.display = "block"; - } else { - document.getElementById("scrollToTopBtn").style.display = "none"; - } -} - -// Posunout nahoru, když uživatel klikne na tlačítko -function scrollToTop() { - document.body.scrollTop = 0; // Pro Safari - document.documentElement.scrollTop = 0; // Pro ostatní prohlížeče -} diff --git a/lukaskanka/index/apollo-nvim/style.css b/lukaskanka/index/apollo-nvim/style.css deleted file mode 100644 index 78b5441..0000000 --- a/lukaskanka/index/apollo-nvim/style.css +++ /dev/null @@ -1,239 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap"); -@import url("colors.css"); - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} -body { - max-width: 1000px; - margin: 0 auto; - font-family: "Ubuntu", sans-serif; - background-color: var(--dracula-body-bg); - color: var(--dracula-color); -} - -/*Header */ - -h1 { - padding-left: 8px; -} - -header { - margin-top: 25px; - display: flex; - align-items: center; - height: 70px; - flex-direction: row; - /*position: fixed;*/ - background-color: var(--dracula-header-bg); -} - -a { - color: var(--dracula-links-color); -} -.title { - padding-top: 25px; -} - -.title { - flex-grow: 1; - display: flex; -} - -/* navigation */ -nav { - margin-right: 30px; -} - -nav li { - display: inline-block; - list-style-type: none; - margin-right: 20px; -} - -nav li a { - text-decoration: none; - color: var(--dracula-nav-links-color); -} - -.navigation { - background-color: var(--dracula-nav-bg); -} - -h1 { - color: var(--dracula-h1-color); -} - -h2 { - color: var(--dracula-h2-color); -} - -.fa-solid { - background-color: var(--dracula-solid-bg); - color: var(--dracula-solid-color); -} -/* navigation icons */ - -.menu-icon { - display: none; - margin-right: 30px; -} - -/*Header small display*/ -@media (max-width: 600px) { - body { - padding: 10px; - } - - header { - position: relative; - } - header nav { - position: absolute; - top: 70px; - width: 100%; - display: none; - } - - .menu-icon { - display: block; - font-size: 23px; - } - - header nav li { - display: block !important; - text-align: center; - margin-top: 10px; - margin-bottom: 10px; - } -} - -/* Sekce */ - -.content { - text-align: center; -} - -#welcome { - padding-top: 50px; - padding-bottom: 50px; -} - -#install { - padding-top: 50px; -} - -#node { - padding-top: 50px; - padding-bottom: 50px; -} - -#apollo { - padding-top: 50px; - padding-bottom: 50px; -} - -#coc { - padding-top: 50px; - padding-bottom: 50px; -} - -#contact { - padding-top: 50px; - padding-bottom: 50px; -} - -#plugin { - padding-top: 50px; -} - -#other { - padding-top: 50px; -} - - -/*Code box*/ -.code-box { - background-color: #353535; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-family: monospace; - max-width: 500px; - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; -} - -/*Picture settings*/ - -.sat { - width: 175px; - height: 175px; -} - -.photo { - text-align: center; - padding-top: 50px; -} -.photo img { - width: 300px; - height: 200px; - margin: 10px; - transition: all 0.5s linear; -} -/*footer pevná pozice*/ - -footer { - bottom: 0; - margin-bottom: 10px; - margin-left: 25px; - margin-top: 20px; -} - -footer a { - text-decoration: none; -} - -#scrollToTopBtn { - display: none; - position: fixed; - bottom: 20px; - right: 20px; - /*butoon přes obsah*/ - z-index: 99; - outline: none; - cursor: pointer; - padding: 15px; - border-radius: 50%; - background-color: transparent; - color: var(--dracula-scrollToTopBtn-color); -} - -/* Styl pro ikonu */ -#scrollToTopBtn i { - font-size: 34px; -} - - -/*Instalace*/ - -.list ul { -list-style-type: none; -} - -.list { - padding-top: 50px; - padding-bottom: 50px; -} - -#plug-vim { - padding-top: 50px; - padding-bottom: 50px; -} - -.h2-install { - padding-bottom: 15px; -} diff --git a/lukaskanka/index/games/fractal/index.php b/lukaskanka/index/games/fractal/index.php deleted file mode 100644 index 9a94f69..0000000 --- a/lukaskanka/index/games/fractal/index.php +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - Fractal - - - - - - - - -
- -

- Your browser doesn't seem to support the <canvas> tag. Try - Firefox. -

-
-
- - Reset - Capture
-
-
- - - - diff --git a/lukaskanka/index/games/fractal/script/starter-template.js b/lukaskanka/index/games/fractal/script/starter-template.js deleted file mode 100644 index 1c740d9..0000000 --- a/lukaskanka/index/games/fractal/script/starter-template.js +++ /dev/null @@ -1,12 +0,0 @@ -function saveCanvas() { - saveCanvasButton.download = "image.png"; - saveCanvasButton.href = canvas - .toDataURL("image/png") - .replace("image/png", "image/octet-stream"); -} - -function goFullScreen() { - if (canvas.requestFullScreen) canvas.requestFullScreen(); - else if (canvas.webkitRequestFullScreen) canvas.webkitRequestFullScreen(); - else if (canvas.mozRequestFullScreen) canvas.mozRequestFullScreen(); -} diff --git a/lukaskanka/index/games/fractal/script/xaos.js b/lukaskanka/index/games/fractal/script/xaos.js deleted file mode 100644 index b5135f6..0000000 --- a/lukaskanka/index/games/fractal/script/xaos.js +++ /dev/null @@ -1,1518 +0,0 @@ -/* - * XaoS.js - * https://github.com/jblang/XaoS.js - * - * Copyright (C)2011 John B. Langston III - * Copyright (C)2001, 2010 Andrea Medeghini - * Copyright (C)1996, 1997 Jan Hubicka and Thomas Marsh - * - * Based on code from XaoS by Jan Hubicka (http://xaos.sf.net) - * and from JAME by Andrea Medeghini (http://www.fractalwalk.net) - * - * This file is part of XaoS.js. - * - * XaoS.js is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * XaoS.js is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with XaoS.js. If not, see . - * - */ -var xaos = xaos || {}; - -xaos.zoom = (function () { - "use strict"; - - const USE_XAOS = true; // Whether to use zooming or recalculate every frame - const USE_SYMMETRY = true; // Whether to use symmetry when possible - const USE_SOLIDGUESS = true; // Whether to use solid guessing to avoid calculations - const RANGES = 2; // Number of ranges to use for sizing approximation data - const RANGE = 4; // Maximum distance to use for approximation - const MASK = 0x7; // Mask value for maximum potential source lines - const DSIZE = RANGES + 1; // Shift value for target lines - const FPMUL = 64; // Multiplication factor for fixed-point representation - const FPRANGE = FPMUL * RANGE; // Fixed point range of approximation - const MAX_PRICE = Number.MAX_VALUE; // Maximum price of uninitialized approximation - const NEW_PRICE = FPRANGE * FPRANGE; // Price of calculating a new line - const GUESS_RANGE = 4; // Range to use for solid guessing - - /** A price entry in the approximation table - * @constructor - */ - function Price() { - this.previous = null; // Previous price calculated for the same line - this.index = 0; // Index of the source for this approximation (-1 means new calculation) - this.price = MAX_PRICE; // Price calculated for this line - } - - /** A group of pixels to be moved - * @constructor - */ - function Move() { - this.length = 0; // number of pixels to move - this.from = 0; // starting offset of pixel source - this.to = 0; // starting offset of pixel destination - } - - /** A single row or column of pixels in the image - * @constructor - */ - function Line() { - this.recalculate = false; // whether to recalculate this line - this.dirty = false; // whether this line needs to be redrawn - this.isRow = false; // whether this is a row (true) or column (false) - this.index = 0; // index of row or column within the image - this.symIndex = 0; // index of pixels to use for symmetry - this.symTo = 0; // position of pixels this is symmetrical to - this.symRef = 0; // position of pixels referring to this one - this.oldPosition = 0.0; // line's old position in the fractal's complex plane - this.newPosition = 0.0; // line's new position in the fractal's complex plane - this.priority = 0.0; // calculation priority for this row/column - } - - /** An image derived from an HTML5 canvas - * @param canvas - the canvas used to display the image - * @constructor - */ - function CanvasImage(canvas) { - let width = canvas.clientWidth; - let height = canvas.clientHeight; - if (canvas.width !== width || canvas.height !== height) { - canvas.width = width; - canvas.height = height; - } else { - ctx.clearRect(0, 0, width, height); - } - - this.canvas = canvas; - this.context = canvas.getContext("2d"); - this.width = canvas.width; - this.height = canvas.height; - this.newImageData = this.context.createImageData(this.width, this.height); - this.oldImageData = this.context.createImageData(this.width, this.height); - this.newBuffer = new Uint32Array(this.newImageData.data.buffer); - this.oldBuffer = new Uint32Array(this.oldImageData.data.buffer); - } - - /** Swap new and old buffers */ - CanvasImage.prototype.swapBuffers = function () { - var tmp = this.oldBuffer; - this.oldBuffer = this.newBuffer; - this.newBuffer = tmp; - tmp = this.oldImageData; - this.newImageData = this.oldImageData; - this.oldImageData = tmp; - }; - - /** Draw the current image */ - CanvasImage.prototype.paint = function () { - this.context.putImageData(this.newImageData, 0, 0); - }; - - /** Utility function to make an array of the specified size - * with the specified initial value. It will do the right thing - * to create unique items, whether you pass in a prototype, a - * constructor, or a primitive. - * @param {number} size - the size of the array. - * @param initial - the initial value for each entry. - */ - function makeArray(size, initial) { - var i, - data = []; - for (i = 0; i < size; i++) { - if (typeof initial === "object") { - // prototype object - data[i] = Object.create(initial); - } else if (typeof initial === "function") { - // constructor - data[i] = new initial(); - } else { - // primitive - data[i] = initial; - } - } - return data; - } - - /** Container for all zoom context data for a particular canvas. - * - * @param image {CanvasImage} Image on which to draw the fractal. - * @param fractal {FractalContext} Fractal parameters. - * @constructor - */ - function ZoomContext(image, fractal) { - var size = Math.max(image.width, image.height); - this.image = image; // the image to draw the fractal on - this.fractal = fractal; // the fractal formula used for the image - this.columns = makeArray(image.width, Line); // columns in the fractal image - this.rows = makeArray(image.height, Line); // rows in the fractal image - this.sourcePos = makeArray(size + 1, 0); // fixed-point positions for source lines - this.oldBest = makeArray(size, null); // best prices for previous line - this.newBest = makeArray(size, null); // best prices for current line - this.calcPrices = makeArray(size, Price); // prices for calculating new lines - this.movePrices = makeArray(size << DSIZE, Price); // prices for approximating new lines from exsiting ones - this.moveTable = makeArray(image.width + 1, Move); // table of pixels to be moved - this.fillTable = makeArray(image.width + 1, Move); // table of pixels to be filled - this.queue = makeArray(image.width + image.height, null); // queue of lines to calculate - this.queueLength = 0; // length of the calculation queue - this.startTime = 0; // time that the current frame was started - this.minFPS = 60; // target FPS to maintain - this.fudgeFactor = 0; // fudge factor used to achieve target FPS - this.incomplete = false; // flag indicates incomplete calculation - this.zooming = false; // flag indicates image is currently zooming - } - - /** Swaps the old and new best prices in the this container. */ - ZoomContext.prototype.swapBest = function () { - var tmpBest = this.oldBest; - this.oldBest = this.newBest; - this.newBest = tmpBest; - }; - - /** Convert fractal viewport from radius and center to x and y start to end ranges */ - ZoomContext.prototype.convertArea = function () { - var radius = this.fractal.region.radius; - var center = this.fractal.region.center; - var aspect = this.image.width / this.image.height; - var size = Math.max(radius.x, radius.y * aspect); - return { - begin: { - x: center.x - size / 2, - y: (center.y - size / 2) / aspect, - }, - end: { - x: center.x + size / 2, - y: (center.y + size / 2) / aspect, - }, - }; - }; - - /** Resets line of pixels for fresh calculation - * - * @param line - row or column of pixels - * @param begin - starting fractal cooridnate - * @param end - ending coordinate - * @param isRow - whether this is a row or column - * @returns {number} - */ - ZoomContext.prototype.initialize = function (lines, begin, end, isRow) { - var i; - var p; - var step = (end - begin) / lines.length; - var line = null; - - for (i = 0, p = begin; i < lines.length; i++, p += step) { - line = lines[i]; - line.recalculate = true; - line.dirty = true; - line.isRow = isRow; - line.index = i; - line.oldPosition = p; - line.newPosition = p; - line.symIndex = i; - line.symTo = -1; - line.symRef = -1; - } - return step; - }; - - /** Calculate price of approximating one line from another - * - * @param p1 - position of first line - * @param p2 - position of second line - * @returns {number} - price of approximation - */ - function calcPrice(p1, p2) { - return (p1 - p2) * (p1 - p2); - } - - /** Calculate fixed-point representation of each line's old position - * @param lines - lines to use for calculation - * @param begin - beginning of floating point range - * @param end - end of floating point range - */ - ZoomContext.prototype.calcFixedpoint = function (lines, begin, end) { - var tofix = (lines.length * FPMUL) / (end - begin); - var i; - this.sourcePos[lines.length] = Number.MAX_VALUE; - for (i = lines.length - 1; i >= 0; i--) { - this.sourcePos[i] = ((lines[i].oldPosition - begin) * tofix) | 0; - if (this.sourcePos[i] > this.sourcePos[i + 1]) { - this.sourcePos[i] = this.sourcePos[i + 1]; - } - } - }; - - /** Choose the best approximation for lines based on previous frame - * - * @param lines - relocation table for rows or columns - * @param begin - beginning coordinate (x or y) - * @param end - ending coordinate (x or y) - * @param newPosition - array of newPosition coordinates on the complex plane - * @returns {number} - */ - ZoomContext.prototype.approximate = function (lines, begin, end) { - var previous = null; // pointer to previous approximation - var best = null; // pointer to best approximation - var line = null; // pointer to current line - var price = 0; // price of current approximation - var dest; // index of the current destination line - var idealPos = 0; // ideal position for the current destination - var maxPos = 0; // maximum valid source position of the current destination - var source = 0; // index of current source line - var prevBegin = 0; // index of first potential source for current destination - var prevEnd = 0; // index of last potential source for current destination - var currBegin = 0; // index of first potential source for next destination - var flag = 0; - var size = lines.length; - var step = (end - begin) / size; - var sourcePos = this.sourcePos; - - // Calculate fixed-point positions of all source lines - this.calcFixedpoint(lines, begin, end); - - for (dest = 0, idealPos = 0; dest < size; dest++, idealPos += FPMUL) { - this.swapBest(); - maxPos = idealPos - FPRANGE; - if (maxPos < -FPMUL) { - maxPos = -FPMUL; - } - source = prevBegin; - while (sourcePos[source] < maxPos) { - source++; - } - currBegin = source; - maxPos = idealPos + FPRANGE; - - // Find the previous approximation - if (prevBegin !== prevEnd && source > prevBegin) { - // Previous line had approximations; use them - if (source < prevEnd) { - previous = this.oldBest[source - 1]; - } else { - previous = this.oldBest[prevEnd - 1]; - } - price = previous.price; - } else if (dest > 0) { - // Previous line had no approximations - // Use the price of calculating the previous line - previous = this.calcPrices[dest - 1]; - price = previous.price; - } else { - // We're on the first line; no previous prices exists - previous = null; - price = 0; - } - - // Add the price for calculating this line - price += NEW_PRICE; - best = this.calcPrices[dest]; - best.price = price; - best.index = -1; - best.previous = previous; - - // Try all possible approximations for this line and calculate the best one - if (prevBegin !== prevEnd) { - if (source === prevBegin) { - // We're on the first line so there is no previous line - if (sourcePos[source] !== sourcePos[source + 1]) { - previous = this.calcPrices[dest - 1]; - price = previous.price + calcPrice(sourcePos[source], idealPos); - if (price < best.price) { - best = this.movePrices[(source << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = source; - best.previous = previous; - } - } - this.newBest[source++] = best; - } - previous = null; - - // Potential sources for the previous and current line overlap within - // this range, so we have to calculate every possibility and find the best - while (source < prevEnd) { - if (sourcePos[source] !== sourcePos[source + 1]) { - previous = this.oldBest[source - 1]; - price = previous.price + NEW_PRICE; - if (price < best.price) { - best = this.movePrices[((source - 1) << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = -1; - best.previous = previous; - this.newBest[source - 1] = best; - } - price = previous.price + calcPrice(sourcePos[source], idealPos); - if (price < best.price) { - best = this.movePrices[(source << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = source; - best.previous = previous; - } else if (sourcePos[source] > idealPos) { - this.newBest[source++] = best; - break; - } - } - this.newBest[source++] = best; - } - - // We are past the overlapping area - if (source > prevBegin) { - previous = this.oldBest[source - 1]; - } else { - previous = this.calcPrices[dest - 1]; - } - price = previous.price + NEW_PRICE; - if (price < best.price && source > currBegin) { - best = this.movePrices[((source - 1) << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = -1; - best.previous = previous; - this.newBest[source - 1] = best; - } - while (sourcePos[source] < maxPos) { - if (sourcePos[source] !== sourcePos[source + 1]) { - price = previous.price + calcPrice(sourcePos[source], idealPos); - if (price < best.price) { - best = this.movePrices[(source << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = source; - best.previous = previous; - } else if (sourcePos[source] > idealPos) { - break; - } - } - this.newBest[source++] = best; - } - while (sourcePos[source] < maxPos) { - this.newBest[source++] = best; - } - } else if (sourcePos[source] < maxPos) { - if (dest > 0) { - previous = this.calcPrices[dest - 1]; - price = previous.price; - } else { - previous = null; - price = 0; - } - while (sourcePos[source] < maxPos) { - if (sourcePos[source] !== sourcePos[source + 1]) { - price += calcPrice(sourcePos[source], idealPos); - if (price < best.price) { - best = this.movePrices[(source << DSIZE) + (dest & MASK)]; - best.price = price; - best.index = source; - best.previous = previous; - } else if (sourcePos[source] > idealPos) { - break; - } - } - this.newBest[source++] = best; - } - while (sourcePos[source] < maxPos) { - this.newBest[source++] = best; - } - } - prevBegin = currBegin; - currBegin = prevEnd; - prevEnd = source; - } - if (begin > lines[0].oldPosition && end < lines[size - 1].oldPosition) { - flag = 1; - } - if (sourcePos[0] > 0 && sourcePos[size - 1] < size * FPMUL) { - flag = 2; - } - for (dest = size - 1; dest >= 0; dest--) { - line = lines[dest]; - line.symTo = -1; - line.symRef = -1; - if (best.index < 0) { - line.recalculate = true; - line.dirty = true; - line.symIndex = line.index; - } else { - line.symIndex = best.index; - line.newPosition = lines[best.index].oldPosition; - line.recalculate = false; - line.dirty = false; - } - best = best.previous; - } - newPositions(lines, begin, end, step, flag); - return step; - }; - - /** Choose new positions for lines based on calculated prices - * - * @param lines - * @param size - * @param begin1 - * @param end1 - * @param step - * @param newPosition - * @param flag - */ - function newPositions(lines, begin1, end1, step, flag) { - var delta = 0; - var size = lines.length; - var begin = 0; - var end = 0; - var s = -1; - var e = -1; - if (begin1 > end1) { - begin1 = end1; - } - while (s < size - 1) { - e = s + 1; - if (lines[e].recalculate) { - while (e < size) { - if (!lines[e].recalculate) { - break; - } - e++; - } - if (e < size) { - end = lines[e].newPosition; - } else { - end = end1; - } - if (s < 0) { - begin = begin1; - } else { - begin = lines[s].newPosition; - } - if (e === size && begin > end) { - end = begin; - } - if (e - s === 2) { - delta = (end - begin) * 0.5; - } else { - delta = (end - begin) / (e - s); - } - switch (flag) { - case 1: - for (s++; s < e; s++) { - begin += delta; - lines[s].newPosition = begin; - lines[s].priority = - 1 / (1 + Math.abs(lines[s].oldPosition - begin) * step); - } - break; - case 2: - for (s++; s < e; s++) { - begin += delta; - lines[s].newPosition = begin; - lines[s].priority = Math.abs(lines[s].oldPosition - begin) * step; - } - break; - default: - for (s++; s < e; s++) { - begin += delta; - lines[s].newPosition = begin; - lines[s].priority = 1.0; - } - break; - } - } - s = e; - } - } - - /** Populate symmetry data into relocation table - * - * @param lines - * @param symi - * @param symPosition - * @param step - */ - function prepareSymmetry(lines, symi, symPosition, step) { - var i; - var j = 0; - var tmp; - var abs; - var distance; - var newPosition; - var size = lines.length; - var max = size - RANGE - 1; - var min = RANGE; - var istart = 0; - var line = null; - var otherLine = null; - var symj = 2 * symi - size; - symPosition *= 2; - if (symj < 0) { - symj = 0; - } - distance = step * RANGE; - for (i = symj; i < symi; i++) { - line = lines[i]; - if (line.symTo !== -1) { - continue; - } - newPosition = line.newPosition; - line.symTo = 2 * symi - i; - if (line.symTo > max) { - line.symTo = max; - } - j = line.symTo - istart > RANGE ? -RANGE : -line.symTo + istart; - if (line.recalculate) { - while (j < RANGE && line.symTo + j < size - 1) { - tmp = symPosition - lines[line.symTo + j].newPosition; - abs = Math.abs(tmp - newPosition); - if (abs < distance) { - if ( - (i === 0 || tmp > lines[i - 1].newPosition) && - tmp < lines[i + 1].newPosition - ) { - distance = abs; - min = j; - } - } else if (tmp < newPosition) { - break; - } - j++; - } - } else { - while (j < RANGE && line.symTo + j < size - 1) { - if (line.recalculate) { - tmp = symPosition - lines[line.symTo + j].newPosition; - abs = Math.abs(tmp - newPosition); - if (abs < distance) { - if ( - (i === 0 || tmp > lines[i - 1].newPosition) && - tmp < lines[i + 1].newPosition - ) { - distance = abs; - min = j; - } - } else if (tmp < newPosition) { - break; - } - } - j++; - } - } - line.symTo += min; - otherLine = lines[line.symTo]; - if ( - min === RANGE || - line.symTo <= symi || - otherLine.symTo !== -1 || - otherLine.symRef !== -1 - ) { - line.symTo = -1; - continue; - } - if (!line.recalculate) { - line.symTo = -1; - if (otherLine.symTo !== -1 || !otherLine.recalculate) { - continue; - } - otherLine.symIndex = line.symIndex; - otherLine.symTo = i; - istart = line.symTo - 1; - otherLine.recalculate = false; - otherLine.dirty = true; - line.symRef = line.symTo; - otherLine.newPosition = symPosition - line.newPosition; - } else { - if (otherLine.symTo !== -1) { - line.symTo = -1; - continue; - } - line.symIndex = otherLine.symIndex; - istart = line.symTo - 1; - line.recalculate = false; - line.dirty = true; - otherLine.symRef = i; - line.newPosition = symPosition - otherLine.newPosition; - } - } - } - - /** Optimized array copy using Duff's Device. - * - * @param from {Array} source array - * @param fromOffset {number} offset into source array - * @param to {Array} idealPos array - * @param toOffset {number} offset into idealPos array - * @param length {number} elements to copy - */ - function arrayCopy(from, fromOffset, to, toOffset, length) { - var n = length % 8; - while (n--) { - to[toOffset++] = from[fromOffset++]; - } - n = (length / 8) | 0; - while (n--) { - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - to[toOffset++] = from[fromOffset++]; - } - } - - /** Apply previously calculated symmetry to image */ - ZoomContext.prototype.doSymmetry = function () { - var from_offset = 0; - var to_offset = 0; - var i; - var j = 0; - var buffer = this.image.newBuffer; - var bufferWidth = this.image.width; - for (i = 0; i < this.rows.length; i++) { - if (this.rows[i].symTo >= 0 && !this.rows[this.rows[i].symTo].dirty) { - from_offset = this.rows[i].symTo * bufferWidth; - arrayCopy(buffer, from_offset, buffer, to_offset, bufferWidth); - this.rows[i].dirty = false; - } - to_offset += bufferWidth; - } - for (i = 0; i < this.columns.length; i++) { - if ( - this.columns[i].symTo >= 0 && - !this.columns[this.columns[i].symTo].dirty - ) { - to_offset = i; - from_offset = this.columns[i].symTo; - for (j = 0; j < this.rows.length; j++) { - buffer[to_offset] = buffer[from_offset]; - to_offset += bufferWidth; - from_offset += bufferWidth; - } - this.columns[i].dirty = false; - } - } - }; - - /** Build an optimized move table based on relocation table */ - ZoomContext.prototype.prepareMove = function () { - var move = null; - var i = 0; - var j = 0; - var s = 0; - while (i < this.columns.length) { - if (!this.columns[i].dirty) { - move = this.moveTable[s]; - move.to = i; - move.length = 1; - move.from = this.columns[i].symIndex; - for (j = i + 1; j < this.columns.length; j++) { - if ( - this.columns[j].dirty || - j - this.columns[j].symIndex !== move.to - move.from - ) { - break; - } - move.length++; - } - i = j; - s++; - } else { - i++; - } - } - move = this.moveTable[s]; - move.length = 0; - }; - - /** Execute moves defined in move table */ - ZoomContext.prototype.doMove = function () { - var move = null; - var newOffset = 0; - var oldOffset = 0; - var from = 0; - var to = 0; - var i; - var s = 0; - var length = 0; - var newBuffer = this.image.newBuffer; - var oldBuffer = this.image.oldBuffer; - var bufferWidth = this.image.width; - for (i = 0; i < this.rows.length; i++) { - if (!this.rows[i].dirty) { - s = 0; - oldOffset = this.rows[i].symIndex * bufferWidth; - while ((move = this.moveTable[s]).length > 0) { - from = oldOffset + move.from; - to = newOffset + move.to; - length = move.length; - arrayCopy(oldBuffer, from, newBuffer, to, length); - s++; - } - } - newOffset += bufferWidth; - } - }; - - /** Shortcut for prepare and execute move */ - ZoomContext.prototype.movePixels = function () { - this.prepareMove(); - this.doMove(); - }; - - /** Prepare fill table based on relocation table */ - ZoomContext.prototype.prepareFill = function () { - var fill = null; - var i; - var j = 0; - var k = 0; - var s = 0; - var n = 0; - for (i = 0; i < this.columns.length; i++) { - if (this.columns[i].dirty) { - j = i - 1; - for ( - k = i + 1; - k < this.columns.length && this.columns[k].dirty; - k++ - ) {} - while (i < this.columns.length && this.columns[i].dirty) { - if ( - k < this.columns.length && - (j < i || - this.columns[i].newPosition - this.columns[j].newPosition > - this.columns[k].newPosition - this.columns[i].newPosition) - ) { - j = k; - } else if (j < 0) { - break; - } - n = k - i; - fill = this.fillTable[s]; - fill.length = n; - fill.from = j; - fill.to = i; - while (n > 0) { - this.columns[i].newPosition = this.columns[j].newPosition; - this.columns[i].dirty = false; - n--; - i++; - } - s++; - } - } - } - fill = this.fillTable[s]; - fill.length = 0; - }; - - /** Apply fill table */ - ZoomContext.prototype.doFill = function () { - var fill = null; - var from_offset = 0; - var to_offset = 0; - var from = 0; - var to = 0; - var i; - var j = 0; - var k = 0; - var t = 0; - var s = 0; - var d = 0; - var buffer = this.image.newBuffer; - var bufferWidth = this.image.width; - for (i = 0; i < this.rows.length; i++) { - if (this.rows[i].dirty) { - j = i - 1; - for (k = i + 1; k < this.rows.length && this.rows[k].dirty; k++) {} - while (i < this.rows.length && this.rows[i].dirty) { - if ( - k < this.rows.length && - (j < i || - this.rows[i].newPosition - this.rows[j].newPosition > - this.rows[k].newPosition - this.rows[i].newPosition) - ) { - j = k; - } else if (j < 0) { - break; - } - to_offset = i * bufferWidth; - from_offset = j * bufferWidth; - if (!this.rows[j].dirty) { - s = 0; - while ((fill = this.fillTable[s]).length > 0) { - from = from_offset + fill.from; - to = from_offset + fill.to; - for (t = 0; t < fill.length; t++) { - d = to + t; - buffer[d] = buffer[from]; - } - s++; - } - } - arrayCopy(buffer, from_offset, buffer, to_offset, bufferWidth); - this.rows[i].newPosition = this.rows[j].newPosition; - this.rows[i].dirty = true; - i++; - } - } else { - s = 0; - from_offset = i * bufferWidth; - while ((fill = this.fillTable[s]).length > 0) { - from = from_offset + fill.from; - to = from_offset + fill.to; - for (t = 0; t < fill.length; t++) { - d = to + t; - buffer[d] = buffer[from]; - } - s++; - } - this.rows[i].dirty = true; - } - } - }; - - /** Shortcut to prepare and apply fill table */ - ZoomContext.prototype.fill = function () { - this.prepareFill(); - this.doFill(); - }; - - /** Render line using solid guessing - * - * @param row - */ - ZoomContext.prototype.renderRow = function (row) { - var buffer = this.image.newBuffer; - var bufferWidth = this.image.width; - var newPosition = row.newPosition; - var r = row.index; - var offset = r * bufferWidth; - var i; - var j; - var k; - var n; - var distl; - var distr; - var distu; - var distd; - var offsetu; - var offsetd; - var offsetl; - var offsetul; - var offsetur; - var offsetdl; - var offsetdr; - var rend = r - GUESS_RANGE; - var length; - var current; - if (rend < 0) { - rend = 0; - } - for (i = r - 1; i >= rend && this.rows[i].dirty; i--) {} - distu = r - i; - rend = r + GUESS_RANGE; - if (rend >= this.rows.length) { - rend = this.rows.length - 1; - } - for (j = r + 1; j < rend && this.rows[j].dirty; j++) {} - distd = j - r; - if ( - !USE_SOLIDGUESS || - i < 0 || - j >= this.rows.length || - this.rows[i].dirty || - this.rows[j].dirty - ) { - for (k = 0, length = this.columns.length; k < length; k++) { - current = this.columns[k]; - if (!this.columns[k].dirty) { - buffer[offset] = this.fractal.formula( - current.newPosition, - newPosition - ); - } - offset++; - } - } else { - distr = 0; - distl = Number.MAX_VALUE / 2; - offsetu = offset - distu * bufferWidth; - offsetd = offset + distd * bufferWidth; - for (k = 0, length = this.columns.length; k < length; k++) { - current = this.columns[k]; - if (!this.columns[k].dirty) { - if (distr <= 0) { - rend = k + GUESS_RANGE; - if (rend >= this.columns.length) { - rend = this.columns.length - 1; - } - for (j = k + 1; j < rend && this.columns[j].dirty; j++) { - distr = j - k; - } - if (j >= rend) { - distr = Number.MAX_VALUE / 2; - } - } - if (distr < Number.MAX_VALUE / 4 && distl < Number.MAX_VALUE / 4) { - offsetl = offset - distl; - offsetul = offsetu - distl; - offsetdl = offsetd - distl; - offsetur = offsetu + distr; - offsetdr = offsetd + distr; - n = buffer[offsetl]; - if ( - n == buffer[offsetu] && - n == buffer[offsetd] && - n == buffer[offsetul] && - n == buffer[offsetur] && - n == buffer[offsetdl] && - n == buffer[offsetdr] - ) { - buffer[offset] = n; - } else { - buffer[offset] = this.fractal.formula( - current.newPosition, - newPosition - ); - } - } else { - buffer[offset] = this.fractal.formula( - current.newPosition, - newPosition - ); - } - distl = 0; - } - offset++; - offsetu++; - offsetd++; - distr--; - distl++; - } - } - row.recalculate = false; - row.dirty = false; - }; - - /** Render column using solid guessing - * - * @param column - */ - ZoomContext.prototype.renderColumn = function (column) { - var buffer = this.image.newBuffer; - var bufferWidth = this.image.width; - var newPosition = column.newPosition; - var r = column.index; - var offset = r; - var rend = r - GUESS_RANGE; - var i; - var j; - var k; - var n; - var distl; - var distr; - var distu; - var distd; - var offsetl; - var offsetr; - var offsetu; - var offsetlu; - var offsetru; - var offsetld; - var offsetrd; - var sumu; - var sumd; - var length; - var current; - if (rend < 0) { - rend = 0; - } - for (i = r - 1; i >= rend && this.columns[i].dirty; i--) {} - distl = r - i; - rend = r + GUESS_RANGE; - if (rend >= this.columns.length) { - rend = this.columns.length - 1; - } - for (j = r + 1; j < rend && this.columns[j].dirty; j++) {} - distr = j - r; - if ( - !USE_SOLIDGUESS || - i < 0 || - j >= this.columns.length || - this.columns[i].dirty || - this.columns[j].dirty - ) { - for (k = 0, length = this.rows.length; k < length; k++) { - current = this.rows[k]; - if (!this.rows[k].dirty) { - buffer[offset] = this.fractal.formula( - newPosition, - current.newPosition - ); - } - offset += bufferWidth; - } - } else { - distd = 0; - distu = Number.MAX_VALUE / 2; - offsetl = offset - distl; - offsetr = offset + distr; - for (k = 0, length = this.rows.length; k < length; k++) { - current = this.rows[k]; - if (!this.rows[k].dirty) { - if (distd <= 0) { - rend = k + GUESS_RANGE; - if (rend >= this.rows.length) { - rend = this.rows.length - 1; - } - for (j = k + 1; j < rend && this.rows[j].dirty; j++) { - distd = j - k; - } - if (j >= rend) { - distd = Number.MAX_VALUE / 2; - } - } - if (distd < Number.MAX_VALUE / 4 && distu < Number.MAX_VALUE / 4) { - sumu = distu * bufferWidth; - sumd = distd * bufferWidth; - offsetu = offset - sumu; - offsetlu = offsetl - sumu; - offsetru = offsetr - sumu; - offsetld = offsetl + sumd; - offsetrd = offsetr + sumd; - n = buffer[offsetu]; - if ( - n == buffer[offsetl] && - n == buffer[offsetr] && - n == buffer[offsetlu] && - n == buffer[offsetru] && - n == buffer[offsetld] && - n == buffer[offsetrd] - ) { - buffer[offset] = n; - } else { - buffer[offset] = this.fractal.formula( - newPosition, - current.newPosition - ); - } - } else { - buffer[offset] = this.fractal.formula( - newPosition, - current.newPosition - ); - } - distu = 0; - } - offset += bufferWidth; - offsetl += bufferWidth; - offsetr += bufferWidth; - distd--; - distu++; - } - } - column.recalculate = false; - column.dirty = false; - }; - - /** Calculate whether we're taking too long to render the fractal to meet the idealPos FPS */ - ZoomContext.prototype.tooSlow = function () { - var newTime = new Date().getTime(), - minFPS = this.zooming ? this.minFPS : 10; - return 1000 / (newTime - this.startTime + this.fudgeFactor) < minFPS; - }; - - /** Prioritize calculation of lines between begin and end - * - * @param lines - rows or columns to prioritize - * @param begin - index of first line to prioritize - * @param end - index of last line to prioritize - */ - function calcPriority(lines, begin, end) { - var middle; - while (begin < end) { - middle = begin + ((end - begin) >> 1); - lines[middle].priority = - (lines[end].newPosition - lines[middle].newPosition) * - lines[middle].priority; - if (lines[middle].symRef !== -1) { - lines[middle].priority /= 2.0; - } - calcPriority(lines, begin, middle); - begin = middle + 1; - } - } - - /** Enqueue all the lines to be recalculated and set their priority - * - * @param lines - lines to enqueue for calculation - */ - ZoomContext.prototype.enqueueCalculations = function (lines) { - var i; - var j = 0; - for (i = 0; i < lines.length; i++) { - if (lines[i].recalculate) { - for (j = i; j < lines.length && lines[j].recalculate; j++) { - this.queue[this.queueLength++] = lines[j]; - } - if (j === lines.length) { - j -= 1; - } - calcPriority(lines, i, j); - i = j; - } - } - }; - - /** Sort calculation queue according to priority (using quicksort) - * - * @param queue - * @param l - * @param r - */ - function sortQueue(queue, l, r) { - var m = (queue[l].priority + queue[r].priority) / 2.0; - var tmp = null; - var i = l; - var j = r; - do { - while (queue[i].priority > m) { - i++; - } - while (queue[j].priority < m) { - j--; - } - if (i <= j) { - tmp = queue[i]; - queue[i] = queue[j]; - queue[j] = tmp; - i++; - j--; - } - } while (j >= i); - if (l < j) { - sortQueue(queue, l, j); - } - if (r > i) { - sortQueue(queue, i, r); - } - } - - /** Process the relocation table */ - ZoomContext.prototype.calculate = function () { - var i, newTime; - this.incomplete = false; - this.queueLength = 0; - this.enqueueCalculations(this.columns); - this.enqueueCalculations(this.rows); - if (this.queueLength > 0) { - if (this.queueLength > 1) { - sortQueue(this.queue, 0, this.queueLength - 1); - } - for (i = 0; i < this.queueLength; i++) { - if (this.queue[i].isRow) { - this.renderRow(this.queue[i]); - } else { - this.renderColumn(this.queue[i]); - } - if (!this.recalculate && this.tooSlow() && i < this.queueLength) { - this.incomplete = true; - this.fill(); - break; - } - } - } - }; - - /** Update newPosition array with newly calculated positions */ - ZoomContext.prototype.updatePosition = function () { - var k; - var len; - for (k = 0, len = this.columns.length; k < len; k++) { - this.columns[k].oldPosition = this.columns[k].newPosition; - } - for (k = 0, len = this.rows.length; k < len; k++) { - this.rows[k].oldPosition = this.rows[k].newPosition; - } - }; - - /** Calculate FPS achieved and determine if fudge factor needs adjustment for next frame */ - ZoomContext.prototype.updateFPS = function () { - var fps = 1000 / (new Date().getTime() - this.startTime); - if (fps < this.minFPS) { - this.fudgeFactor++; - } else if (fps > this.minFPS + 10 && this.fudgeFactor > 0) { - this.fudgeFactor--; - } - console.log(fps + " fps"); - }; - - /** Overall fractal drawing workflow, calls other functions */ - ZoomContext.prototype.drawFractal = function (recalculate) { - var area = this.convertArea(); - var symx = this.fractal.symmetry && this.fractal.symmetry.x; - var symy = this.fractal.symmetry && this.fractal.symmetry.y; - var stepx, stepy; - this.startTime = new Date().getTime(); - this.recalculate = recalculate; - if (recalculate || !USE_XAOS) { - stepx = this.initialize(this.columns, area.begin.x, area.end.x, false); - stepy = this.initialize(this.rows, area.begin.y, area.end.y, true); - } else { - stepx = this.approximate(this.columns, area.begin.x, area.end.x); - stepy = this.approximate(this.rows, area.begin.y, area.end.y); - } - if ( - USE_SYMMETRY && - typeof symy === "number" && - !(area.begin.y > symy || symy > area.end.y) - ) { - prepareSymmetry( - this.rows, - Math.floor((symy - area.begin.y) / stepy), - symy, - stepy - ); - } - if ( - USE_SYMMETRY && - typeof symx === "number" && - !(area.begin.x > symx || symx > area.end.x) - ) { - prepareSymmetry( - this.columns, - Math.floor((symx - area.begin.x) / stepx), - symx, - stepx - ); - } - this.image.swapBuffers(); - this.movePixels(); - this.calculate(); - if ( - (USE_SYMMETRY && typeof symx === "number") || - typeof symy === "number" - ) { - this.doSymmetry(); - } - this.image.paint(); - this.updatePosition(); - this.updateFPS(); - }; - - /** Adjust display region to zoom based on mouse buttons */ - ZoomContext.prototype.updateRegion = function (mouse) { - var MAXSTEP = 0.008 * 3; - var MUL = 0.3; - var area = this.convertArea(); - var x = - area.begin.x + mouse.x * ((area.end.x - area.begin.x) / this.image.width); - var y = - area.begin.y + - mouse.y * ((area.end.y - area.begin.y) / this.image.height); - var deltax = - (mouse.oldx - mouse.x) * ((area.end.x - area.begin.x) / this.image.width); - var deltay = - (mouse.oldy - mouse.y) * - ((area.end.y - area.begin.y) / this.image.height); - var step; - var mmul; - if (mouse.button[1] || (mouse.button[0] && mouse.button[2])) { - // Pan when middle or left+right buttons are pressed - step = 0; - } else if (mouse.button[0]) { - // Zoom in when left button is pressed - step = MAXSTEP * 2; - } else if (mouse.button[2]) { - // Zoom out when right button is pressed - step = -MAXSTEP * 2; - } else { - this.zooming = false; - return; - } - mmul = Math.pow(1 - step, MUL); - area.begin.x = x + (area.begin.x - x) * mmul; - area.end.x = x + (area.end.x - x) * mmul; - area.begin.y = y + (area.begin.y - y) * mmul; - area.end.y = y + (area.end.y - y) * mmul; - this.fractal.region.radius.x = area.end.x - area.begin.x; - this.fractal.region.radius.y = area.end.y - area.begin.y; - this.fractal.region.center.x = (area.begin.x + area.end.x) / 2; - this.fractal.region.center.y = - ((area.begin.y + area.end.y) / 2) * - (this.image.width / this.image.height); - this.zooming = true; - }; - - /** Attaches zoomer to specified canvas */ - return function (canvas, fractal) { - var image = new CanvasImage(canvas); - var zoomer = new ZoomContext(image, fractal); - var mouse = { x: 0, y: 0, button: [false, false, false] }; - - function doZoom() { - zoomer.updateRegion(mouse); - if (zoomer.zooming || zoomer.incomplete) { - requestAnimationFrame(doZoom); - zoomer.drawFractal(false); - } - } - - canvas.ontouchstart = function (e) { - if (e.touches.length < 3) { - var touch = e.touches[0]; - e.touches.length == 2 - ? (mouse.button[2] = true) - : (mouse.button[2] = false); - var mouseEvent = new MouseEvent("mousedown", { - clientX: touch.clientX, - clientY: touch.clientY, - }); - canvas.dispatchEvent(mouseEvent); - } - }; - - canvas.ontouchend = function (e) { - var mouseEvent = new MouseEvent("mouseup", {}); - canvas.dispatchEvent(mouseEvent); - }; - - canvas.ontouchmove = function (e) { - var touch = e.touches[0]; - var mouseEvent = new MouseEvent("mousemove", { - clientX: touch.clientX, - clientY: touch.clientY, - }); - canvas.dispatchEvent(mouseEvent); - }; - - canvas.onmousedown = function (e) { - mouse.button[e.button] = true; - mouse.x = e.offsetX || e.clientX - canvas.offsetLeft; - mouse.y = e.offsetY || e.clientY - canvas.offsetTop; - mouse.oldx = e.offsetX || e.clientX - canvas.offsetLeft; - mouse.oldy = e.offsetY || e.clientY - canvas.offsetTop; - doZoom(); - }; - - canvas.onmouseup = function (e) { - mouse.button[e.button] = false; - }; - - canvas.onmousemove = function (e) { - mouse.x = e.offsetX || e.clientX - canvas.offsetLeft; - mouse.y = e.offsetY || e.clientY - canvas.offsetTop; - }; - - canvas.oncontextmenu = function () { - return false; - }; - - canvas.onmouseout = function () { - mouse.button = [false, false, false]; - }; - - zoomer.drawFractal(true); - }; -})(); - -/** Create the default XaoS color palette */ -xaos.defaultPalette = function () { - var MAXENTRIES = 65536; - var segmentsize = 8; - var setsegments = Math.floor((MAXENTRIES + 3) / segmentsize); - var nsegments = Math.floor(255 / segmentsize); - var segments = [ - [0, 0, 0], - [120, 119, 238], - [24, 7, 25], - [197, 66, 28], - [29, 18, 11], - [135, 46, 71], - [24, 27, 13], - [241, 230, 128], - [17, 31, 24], - [240, 162, 139], - [11, 4, 30], - [106, 87, 189], - [29, 21, 14], - [12, 140, 118], - [10, 6, 29], - [50, 144, 77], - [22, 0, 24], - [148, 188, 243], - [4, 32, 7], - [231, 146, 14], - [10, 13, 20], - [184, 147, 68], - [13, 28, 3], - [169, 248, 152], - [4, 0, 34], - [62, 83, 48], - [7, 21, 22], - [152, 97, 184], - [8, 3, 12], - [247, 92, 235], - [31, 32, 16], - ]; - var i, y; - var r, g, b; - var rs, gs, bs; - var palette = []; - - for (i = 0; i < setsegments; i++) { - r = segments[i % nsegments][0]; - g = segments[i % nsegments][1]; - b = segments[i % nsegments][2]; - rs = (segments[((i + 1) % setsegments) % nsegments][0] - r) / segmentsize; - gs = (segments[((i + 1) % setsegments) % nsegments][1] - g) / segmentsize; - bs = (segments[((i + 1) % setsegments) % nsegments][2] - b) / segmentsize; - for (y = 0; y < segmentsize; y++) { - palette.push((255 << 24) | (b << 16) | (g << 8) | r); - r += rs; - g += gs; - b += bs; - } - } - return new Uint32Array(palette); -}; - -xaos.mandelbrot = { - symmetry: { x: null, y: 0 }, - region: { - center: { x: -0.75, y: 0.0 }, - radius: { x: 2.5, y: 2.5 }, - angle: 0, - }, - z0: { x: 0, y: 0 }, - maxiter: 512, - bailout: 4, - formula: function (cr, ci) { - var maxiter = this.maxiter, - bailout = this.bailout, - zr = this.z0.x, - zi = this.z0.y, - i = maxiter; - - while (i--) { - var zr2 = zr * zr; - var zi2 = zi * zi; - - if (zr2 + zi2 > bailout) { - return this.palette[(maxiter - i) % this.palette.length]; - } - - zi = ci + 2 * zr * zi; - zr = cr + zr2 - zi2; - } - - return this.palette[0]; - }, - palette: xaos.defaultPalette(), -}; - -xaos.zoom(document.getElementById("canvas"), xaos.mandelbrot); diff --git a/lukaskanka/index/games/fractal/style.css b/lukaskanka/index/games/fractal/style.css deleted file mode 100644 index 9ada16e..0000000 --- a/lukaskanka/index/games/fractal/style.css +++ /dev/null @@ -1,67 +0,0 @@ -#controls { - position: relative; - margin-bottom: 2.5em; -} - -#canvas { - width: 100%; - height: 100vh; - margin-bottom: 0.5em; - display: inline-block; - vertical-align: baseline; -} - -#fullScreenButton { - position: absolute; - height: 100vh; - width: 100%; - bottom: 3rem; - visibility: hidden; -} - -@media only screen and (max-width: 600px) { - #fullScreenButton { - visibility: visible; - opacity: 0; - } - - #saveCanvasButton { - visibility: hidden; - } -} - -#resetButton { - position: absolute; - left: 0em; -} - -#saveCanvasButton { - position: absolute; - right: 0.1em; - visibility: visible; -} - -.container { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} - -@media (min-width: 768px) { - .container { - width: 750px; - } -} - -@media (min-width: 992px) { - .container { - width: 970px; - } -} - -@media (min-width: 1200px) { - .container { - width: 1170px; - } -} diff --git a/lukaskanka/index/games/index.php b/lukaskanka/index/games/index.php deleted file mode 100644 index 63f485e..0000000 --- a/lukaskanka/index/games/index.php +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - Games - - - - - - - -
-
-

- Rock Paper Scissors 🪨📄✂️ -

- - The first game I ever made! I wrote this when I first began learning - Javascript, to be specific I wrote the logic during that time. The - game was only playable through the terminal, now its fairly portable - and can be integrated into anything. - -
- -
- -
-

- Eternal Space -

- - Currently only playable on a pc, I haven't tried figuring out how to - scale down the game lol. I participated in the Opera GX + GameMaker - game jam and created this monstrosity. The game jam was alien themed, - however I never got that far. Before taking part in this game jam I - have never programmed an actual game nor have been in a game jam. I - learned how to program in GameMaker Language (basically Javascript) - during the event. - -
- -
- -
-

- Fractal -

- - Interactive Javascript real-time fractal renderer using XaoS.js. Works - best on a PC. - -
- - - -
- You have reached the end of the page. (ノ◕ヮ◕)ノ*:・゚✧ -
-
- - diff --git a/lukaskanka/index/games/rps/index.html b/lukaskanka/index/games/rps/index.html deleted file mode 100644 index 06c3bd1..0000000 --- a/lukaskanka/index/games/rps/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - Rock Paper Scissors - - - - - - - -
-
-
-

-

-
- -
- - - - -
- -
-

- -

-

-
-
-
- You have reached the end of the page. (ノ◕ヮ◕)ノ*:・゚✧ -
-
- - diff --git a/lukaskanka/index/games/rps/script/script.js b/lukaskanka/index/games/rps/script/script.js deleted file mode 100644 index b555617..0000000 --- a/lukaskanka/index/games/rps/script/script.js +++ /dev/null @@ -1,93 +0,0 @@ -let userChoice = ""; - -const getUserChoice = (userInput) => { - userChoice = userInput; -}; - -function getComputerChoice() { - let cpuChoice = Math.floor(Math.random() * 3); - if (cpuChoice === 0) { - return "rock"; - } else if (cpuChoice === 1) { - return "paper"; - } else if (cpuChoice === 2) { - return "scissors"; - } -} - -function determineWinner(userChoice, computerChoice) { - if (userChoice === computerChoice) { - return "Tie"; - } - if (userChoice === "rock") { - if (computerChoice === "paper") { - return "Computer"; - } else { - return "Player"; - } - } - if (userChoice === "paper") { - if (computerChoice === "scissors") { - return "Computer"; - } else { - return "Player"; - } - } - if (userChoice === "scissors") { - if (computerChoice === "rock") { - return "Computer"; - } else { - return "Player"; - } - } -} - -const score = { - player: 0, - cpu: 0, - ties: 0, - rounds: 0, -}; - -function playGame() { - var computerChoice = getComputerChoice(); - const winner = determineWinner(userChoice, computerChoice); - - score.rounds++; - switch (winner) { - case "Player": - score.player++; - break; - case "Computer": - score.cpu++; - break; - case "Tie": - score.ties++; - break; - } - - console.log("\nPlayer: " + userChoice); - console.log("CPU: " + computerChoice); - if (winner != "Tie") { - console.log("Winner: " + winner); - } else { - console.log("Tie game!"); - } - console.log(score); - - scorePlayer.textContent = `Player wins: ${score.player}` + " "; - scoreCPU.textContent = `Computer wins: ${score.cpu}`; - round.textContent = `Round ${score.rounds}`; - choicePlayer.textContent = `You: ${userChoice}`; - choiceCPU.textContent = `CPU: ${computerChoice}`; - if (winner != "Tie") { - gameWinner.textContent = "Winner: " + winner; - } else { - gameWinner.textContent = "Tie game!"; - } -} - -function play(input) { - getUserChoice(input); - playGame(); -} diff --git a/lukaskanka/index/kakoune/img/command.png b/lukaskanka/index/kakoune/img/command.png deleted file mode 100644 index 8358f68..0000000 Binary files a/lukaskanka/index/kakoune/img/command.png and /dev/null differ diff --git a/lukaskanka/index/kakoune/img/config.png b/lukaskanka/index/kakoune/img/config.png deleted file mode 100644 index e77bec8..0000000 Binary files a/lukaskanka/index/kakoune/img/config.png and /dev/null differ diff --git a/lukaskanka/index/kakoune/img/home.png b/lukaskanka/index/kakoune/img/home.png deleted file mode 100644 index 0b3b383..0000000 Binary files a/lukaskanka/index/kakoune/img/home.png and /dev/null differ diff --git a/lukaskanka/index/kakoune/img/icons8-rocket.gif b/lukaskanka/index/kakoune/img/icons8-rocket.gif deleted file mode 100644 index c2a91fa..0000000 Binary files a/lukaskanka/index/kakoune/img/icons8-rocket.gif and /dev/null differ diff --git a/lukaskanka/index/kakoune/img/kakoune_logo_full.png b/lukaskanka/index/kakoune/img/kakoune_logo_full.png deleted file mode 100644 index 5e27405..0000000 Binary files a/lukaskanka/index/kakoune/img/kakoune_logo_full.png and /dev/null differ diff --git a/lukaskanka/index/kakoune/index.php b/lukaskanka/index/kakoune/index.php deleted file mode 100644 index 5fb7cdc..0000000 --- a/lukaskanka/index/kakoune/index.php +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - Kakoune Czech Community - - - -
- - - - - - -
-
- -
1
- - -
-
-

Úvod:

-

- 👉 Kakoune Front-End Power postavený na - LSP. -

-

- 👉 Kakoune je modální editor pro - Linux a - macOS - jako je třeba - Vim či - Neovim. . Z Kakoune - vychází také jeden velmi oblíbený modální editor - Helix-editor. - Jak Kakoune, tak Helix se od Vim a Neovim liší v ovládání, kde je opačná - logika příkazu a je bližší lidské řeči. Nespornou výhodou Kakoune je - oproti Helixu možnost rozšířit aplikaci o pluginy. Proto je - Kakoune vhodný pro zkušenější uživatele. Náš web by Ti měl pomoct s - prvotním nastavením. Pokud si i tak na tento editor netroufáš, Helix je skvělá náhrada. -

-

- 👉 Tato distribuce nefunguje tak, že jen klikneš na tlačítko a nainstaluje - se. Vede Tě k samostatné instalaci pomocí tohoto webu. Cílem je - pochopit, jak Kakoune funguje, abyste si mohli sami vše modifikovat. -

-

- 👉 Toto nastavení je primárně pro vývoj webu, ale není problém si vše - přizpůsobit. Inspiroval jsem se pluginy, které jsem využíval ve VSCode a - Webstorm. -

-

👉 Velký důraz je kladen na rychlost a lehkost.

-

👉 Tento blog je stále ve vývoji a postupně se na něm pracuje.

-

- 👉 Pro nejlepší zážitek s Kakoune doporučuji používat multiplexor - Zellij , ale není to samozřejmě - podmínkou. -

-
-
-

Přednosti:

-

- 👉 Hlavní předností tohoto nastavení jsou AutoSave, - doplňování HTML, CSS, JS a zkratky k zakomentování a odkomentování - kódu. Taky je zde několik pluginu pro příjemnější práci v Kakoune. -

-

- 👉 LSP se - mi velmi osvědčilo v modálním editoru - Helix-editor. - Mou konfiguraci Helixu najdete - zde. -

-

- 👉 Ta nejlepší témata v Kakoune nemusíš hledat, najdeš je po instalaci. Defaultně je - v naší konfiguraci nastaveno gruvbox-dark. -

-

- 👉 Témá v Kakoune si jednoduše změníš v command line příkazem - `colorscheme` a tlačítkem Tab se budeš přepínat mezi jednotlivými - tématy. Command mode, česky příkazový mód, vyvoláš zkratkou Ctrl + : . -

-
-
- Homescreen - Zellij - Command -
-
-

Instalace a nastavení:

-

- 👉 Pokud ještě nemáš, nainstaluj si, - Kakoune. -

-

👉 Nejprve si zálohuj své aktuální nastavení Kakoune!!!

-

👉 Linux & Mac:

-
-

~/.config/kak/kakrc

-
-

👉 Aby Kakoune dobře komunikoval s LSP, je potřeba mít nainstalovaný Rust.

-
-
-

Node.js:

-

- 👉 Doporučuji mít nainstalovaný - Node.js. -

-

👉 Pro správnou funkčnost LSP si doinstaluj tyto balíčky:

-

vscode-html-language-server

-

vscode-css-language-server

-

typescript-language-server -

-

emmet-ls

-

tailwindcss-language-server -

-

marksman

-

markdoc-ls

-

👉 A také si doinstaluj tento server pro správnou funkčnost HTML v LSP příkazem:

-
-

npm install -g vscode-{html,css,json}-languageserver-bin

-
-

- 👉 Dále si v Node.js nainstaluj - Live-server. -

-

- 👉 Platí v případě, že chceš dělat front-end nebo programuješ v - Javascriptu. -

-

👉 Ve svém projektu budeš moci pouštět index.html příkazem:

-
-

npx live-server

-
-

👉 Všechny servery, co si můžeš pomocí LSP nainstalovat, najdeš zde.

-
-
-

Kakoune:

-

- 👉 Pro instalaci Kakoune Front-End Power Ti stačí stáhnout pouze soubor - kakrc z tohoto repozitáře . -

-

- 👉 Ulož ho do kořenováho adresáře ~/.config/kak/. Nezapomeň na zálohu stávajících - souborů, pokud máš i své configy. -

-

👉 Kakoune pustíš v terminálu příkazem kak.

-

- 👉 V Kakoune zadej do command line plug-install, tím - nainstaluješ všechny pluginy. Restartuj Kakoune. -

-

- 👉 Pokud Ti některý plugin chybí, můžeš ho lehce doinstalovat nebo - naopak odinstalovat. Více informací - najdeš v Kakoune - dokumentaci - nebo velmi Ti rád poradím viz. Kontakty. -

-

- 👉 Pokud některý plugin nechceš používat, stačí ho v souboru - kakrc zakomentovat pomocí hastagu - #. -

-

- 👉 Tuto konfiguraci používám na Linuxu i macOS.

-
-
-

Plán Kakoune Front-End Power:

-

- 👉 Do budoucna můžeš očekávat tyto nové funkce a další novinky: -

-

- 👉 Web na vlastní doméně. Zatím Kakoune Front-End Power najdeš - zde. -

-

👉 Nové pluginy.

-

- 👉 Návody k pluginům, jak nastavit a jak s nimi pracovat. -

-

👉 Návody k práci s Kakoune.

-
-
-

Výběr pluginu v Kakoune Front-End Power:

-

- 👉 plug.kak nejduležitější plugin, aby bylo možné instalovat další pluginy.

-

- 👉 kakoune-lsp -

-

- 👉 luar rozšíří možnost instalovat pluginy napsané v jazyce Lua.

-

- 👉 byline.kak vybere celý řádek pomocí klávesy x jako v Helix-editoru.

-

- 👉 auto-pairs automaticky doplní závorky.

-

- 👉 fzf.kak rychlé asynchronní vyhledávaní souborů.

-
-
-

Otázky a odpovědi:

-

👉 Kolik Kakoune stojí? -> Nic, Kakoune je zdarma.

-
-
-

Kontakty:

-

- 👉 Kakoune community Telegram skupina -

-

- 👉 Osobní web autora -

-

- 👉 Gitea profil -

-

- 👉 GitHub -

-

- 👉 - Nostr -

-

- 👉 Mastodon -

-
-
-

Podpora:

-

- 👉 Pokud mě chceš podpořit nebo se podílet na obsahu tohoto webu, budu rád, když mi napíšeš. -

-

👉 Taky můžeš tento projekt podpořit pár Satoshi:

- Satoshi -
-
-

Další projekty a odkazy:

-

- 👉 ArchLinux CZ -

-

- 👉 - Vyhledávač SearXNG CZ -

-

- 👉 - EndeavourOS Linux -

-

- 👉 i3 window manager -

-
-
- - - - - - - \ No newline at end of file diff --git a/lukaskanka/index/kakoune/script.js b/lukaskanka/index/kakoune/script.js deleted file mode 100644 index f14160e..0000000 --- a/lukaskanka/index/kakoune/script.js +++ /dev/null @@ -1,153 +0,0 @@ -//Navbar menu -const menuIcon = document.querySelector(".menu-icon"); -const menuList = document.querySelector("nav"); -const hamburgerIcon = document.querySelector(".fa-solid"); - -menuIcon.addEventListener("click", () => { - if (hamburgerIcon.classList[1] === "fa-bars") { - hamburgerIcon.classList.add("fa-xmark"); - hamburgerIcon.classList.remove("fa-bars"); - menuList.style.display = "block"; - } else { - hamburgerIcon.classList.add("fa-bars"); - hamburgerIcon.classList.remove("fa-xmark"); - menuList.style.display = "none"; - } -}); - -// Dark / Light Mode - -const body = document.querySelector("body"); -const head = document.querySelector("header"); -const links = document.querySelectorAll("a"); -const nav = document.querySelector(".navigation"); -const h1 = document.querySelector("h1"); -const nadpish2 = document.querySelectorAll("h2"); -const p = document.querySelector("p"); -const solid = document.querySelector(".fa-solid"); -const solid1 = document.querySelector(".menu-icon"); -const footer = document.querySelector("footer"); -const gotop = document.querySelector("#scrollToTopBtn"); -const theme = document.querySelector("#toggleButton"); -const box = document.querySelectorAll(".code-box"); -let isDraculaMode = false; - -// Funkce pro nastavení stylů pro Dracula mód -function setDraculaStyles() { - body.style.backgroundColor = "#2a232b"; - body.style.color = "#f8f8f2"; - head.style.backgroundColor = "#2a232b"; - theme.style.color = "#9fea8a"; - gotop.style.color = "#9fea8a"; - links.forEach((a) => { - a.style.color = "#f76b00"; - }); - nav.style.backgroundColor = "#2a232b"; - h1.style.color = "#e54472"; - nadpish2.forEach((h2) => { - h2.style.color = "#18f700"; - }); - solid.style.backgroundColor = "#2a232b"; - solid.style.color = "#f76b00"; - solid1.style.backgroundColor = "#2a232b"; - footer.style.backgroundColor = "#2a232b"; - //gotop.style.backgroundColor = "#18f700"; - //theme.style.backgroundColor = "#18f700"; -} - -// Funkce pro nastavení stylů pro Light mód; -function setKakouneStyles() { - body.style.backgroundColor = "#9fea8a"; - body.style.color = "#282a36"; - h1.style.color = "#e84046"; - theme.style.color = "#2a232b"; - links.forEach((a) => { - a.style.color = "#ea3838"; - }); - gotop.style.color = "#2a232b"; - head.style.backgroundColor = "#9fea8a"; - nav.style.backgroundColor = "#9fea8a"; - solid.style.backgroundColor = "#9fea8a"; - solid1.style.backgroundColor = "#9fea8a"; - footer.style.backgroundColor = "#9fea8a"; - nadpish2.forEach((h2) => { - h2.style.color = "#1909f4"; - }); - //gotop.style.backgroundColor = "#a7e6ef"; - //theme.style.backgroundColor = "#a7e6ef"; - box.forEach((p) => { - p.style.color = "white"; - }); -} - -// Funkce pro přepnutí módu -function toggleMode() { - if (isDraculaMode) { - // Pokud je momentálně v Dracula modu, přepnout na Light mód - setKakouneStyles(); - isDraculaMode = false; - } else { - // Pokud je momentálně v Light modu, přepnout na Dracula mód - setDraculaStyles(); - isDraculaMode = true; - } -} - -// Funkce na změnu stylů -document.getElementById("toggleButton").addEventListener("click", toggleMode); - -// Nastavení - výchozí styl na Dark -setKakouneStyles(); -isDraculaMode = true; - -// Photo Gallery -> section (zoom) -const image1 = document.querySelector(".picture"); - -image1.addEventListener("mouseenter", () => { - image1.style.transform = "scale(2.2)"; -}); - -image1.addEventListener("mouseleave", () => { - image1.style.transform = "scale(1)"; -}); - -const image2 = document.querySelector(".picture1"); - -image2.addEventListener("mouseenter", () => { - image2.style.transform = "scale(2.2)"; -}); - -image2.addEventListener("mouseleave", () => { - image2.style.transform = "scale(1)"; -}); - -const image3 = document.querySelector(".picture2"); - -image3.addEventListener("mouseenter", () => { - image3.style.transform = "scale(2.2)"; -}); - -image3.addEventListener("mouseleave", () => { - image3.style.transform = "scale(1)"; -}); - -// Tlačítko go to top -// Zobrazení tlačítka od rolovaní části stránky (víc logické než až na konci) -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - document.getElementById("scrollToTopBtn").style.display = "block"; - } else { - document.getElementById("scrollToTopBtn").style.display = "none"; - } -} - -// Posunout nahoru, když uživatel klikne na tlačítko -function scrollToTop() { - document.body.scrollTop = 0; // Pro Safari - document.documentElement.scrollTop = 0; // Pro ostatní prohlížeče -} - diff --git a/lukaskanka/index/kakoune/style.css b/lukaskanka/index/kakoune/style.css deleted file mode 100644 index f4b024e..0000000 --- a/lukaskanka/index/kakoune/style.css +++ /dev/null @@ -1,212 +0,0 @@ -* { - margin: 0; - - padding: 0; - - box-sizing: border-box; -} -body { - max-width: 1000px; - margin: 0 auto; - font-family: "Ubuntu", sans-serif; -} - -/*Header */ - -h1 { - padding-left: 8px; -} - -header { - margin-top: 25px; - display: flex; - align-items: center; - height: 70px; - flex-direction: row; - /*position: fixed;*/ -} - -.title { - padding-top: 25px; -} - -.logo { - flex-grow: 1; - display: flex; -} - -.logo img { - /*width: 100px;*/ - height: 100px; - padding-top: 15px; - margin-left: 20px; -} - -/* navigation */ -nav { - margin-right: 30px; -} - -nav li { - display: inline-block; - list-style-type: none; - margin-right: 20px; -} - -nav li a { - text-decoration: none; - color: black; -} - -/* navigation icons */ - -.menu-icon { - display: none; - margin-right: 30px; -} - -/*Dark/Light mode button*/ -#toggleButton { - float: right; - margin-right: 30px; - margin-top: 10px; - padding: 5px; -} - -#toggleButton { - bottom: 20px; - right: 20px; - border: none; - outline: none; - background-color: transparent; - font-size: 34px; - cursor: pointer; -} - -/*Header small display*/ -@media (max-width: 600px) { - body { - padding: 10px; - } - - header { - position: relative; - } - header nav { - position: absolute; - top: 70px; - width: 100%; - display: none; - } - - .menu-icon { - display: block; - font-size: 23px; - } - - header nav li { - display: block !important; - text-align: center; - margin-top: 10px; - margin-bottom: 10px; - } - - hr { - display: none; - } -} - -/* Sekce */ - -.content { - text-align: center; -} - -.welcome { - padding-top: 115px; - padding-bottom: 50px; -} - -#install { - padding-top: 50px; -} - -#node { - padding-top: 50px; - padding-bottom: 50px; -} - -#plans { - padding-top: 50px; - padding-bottom: 50px; -} - - -#contact { - padding-top: 50px; - padding-bottom: 50px; -} - -#other { - padding-top: 50px; -} - -/*Code box*/ -.code-box { - background-color: #353535; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-family: monospace; - max-width: 400px; - margin: 0 auto; -} - -/*Picture settings*/ - -.sat { - width: 175px; - height: 175px; -} - -.photo { - text-align: center; - padding-top: 50px; -} -.photo img { - width: 300px; - height: 200px; - margin: 10px; - transition: all 0.5s linear; -} -/*footer pevná pozice*/ - -footer { - bottom: 0; - margin-bottom: 10px; - margin-left: 25px; - margin-top: 20px; -} - -footer a { - text-decoration: none; -} - -#scrollToTopBtn { - display: none; - position: fixed; - bottom: 20px; - right: 20px; - /*butoon přes obsah*/ - z-index: 99; - outline: none; - cursor: pointer; - padding: 15px; - border-radius: 50%; - background-color: transparent; -} - -/* Styl pro ikonu */ -#scrollToTopBtn i { - font-size: 34px; -} diff --git a/lukaskanka/index/privaci-policy/index.php b/lukaskanka/index/privaci-policy/index.php deleted file mode 100644 index 13b135a..0000000 --- a/lukaskanka/index/privaci-policy/index.php +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - Zásady ochrany osobních údaju - - - - - - - - - -
- -

- -

Zásady ochrany osobních údajů

- Naposledy aktualizováno: 28.4.2022 -

- -

- Pokud jste návštěvníkem našeho blogu, odběratelem novinek, - přispěvatelem do komentářů poskytujete nám své osobní údaje. My vaše - údaje zpracováváme a za jejich bezpečnost odpovídáme. Slibujeme, že - vaše
údaje dostatečně chráníme a podřizujeme se požadavkům - Nařízení o ochraně osobních údajů (GDPR). -

- -

- Neprodáváme žádný produkt, nejste tedy našimi zákazníky, ale - návštěvníky blogu. -

- -

- Správcem vašich osobních údajů je Lukáš (Lucka ani nekouká přes - rameno!)
- Správcem osobních údajů je Lukáš Kaňka, který provozuje webové stránky - lukan.cz a lukan.cekuj.net. Lukáš vaše údaje spravuje a určuje, jak - dlouho budou osobní údaje zpracovávány, a za jakým účelem. Vybírá -
také další zpracovatele, které ke zpracování využíváme. -

- -

- Jaké údaje zpracováváme a proč?
- Vaše osobní údaje zpracováváme především proto, abychom vám mohli - poskytovat co nejkvalitnější obsah. Jednotlivé důvody zpracování: -

- -

- Předávání osobních údajů třetím osobám.
- Vaše údaje zpracovává správce Lukáš Kaňka, s využitím dalších dvou - zpracovatelů, společnosti Endora , jejichž zpracování spočívá v - uchovávání údajů na zabezpečených cloudových serverech. -

- -

- Abychom mohli měřit, jak se vám na našem blogu líbí, kde trávíte - nejvíce času a kam klikáte, používáme další poskytovatele služeb pro - určité zpracovatelské operace. Jsou to: -

- -

TopList – pomocí měřícího kódu

- -

- Jak nás můžete kontaktovat
- Ať už na nás máte jakoukoliv otázku nebo požadavek, můžete nás - kontaktovat ne e-mailové adrese: lukas.kanka@lukan.cz. -

- -

- Předávání vašich dat mimo Evropskou Unii
- Vaše data zpracováváme výhradně v Evropské unii nebo v zemích, které - zajišťují odpovídající úroveň ochrany na základě rozhodnutí Evropské - komise. -

- -

- Zabezpečení a ochrana osobních údajů
- Vaše data jsou u nás v bezpečí. Přijali jsme technická opatření, která - zajišťují zabezpečení osobních údajů šifrováním přenosu dat pomocí - HTTPS protokolu (ten zámeček, co je vedle naší URL adresy ;-)) a
- zabezpečili vaše osobní údaje v souladu s čl. 32 GDPR. -

- -

- Vaše práva v souvislosti s ochranou osobních údajů: -

- -

- V souvislosti s ochranou osobních údajů máte řadu práv. Pokud budete - chtít některého z těchto práv využít, prosím, kontaktujte nás - prostřednictvím e-mailu: lukas.kanka@lukan.cz -

- -

Máte právo na informace, které si právě teď čtete. 🙂

- -

- Díky právu na přístup nás můžete kdykoli vyzvat a my vám do 30 dnů - doložíme, jaké vaše osobní údaje zpracováváme a proč. Pokud se u vás - něco změní nebo shledáte své osobní údaje neaktuální nebo
- neúplné, máte právo na doplnění a změnu osobních údajů. -

- -

- Právo na omezení zpracování můžete využít, pokud se domníváte, že - zpracováváme vaše nepřesné údaje, domníváte se, že provádíme - zpracování nezákonně, ale nechcete všechny údaje smazat nebo pokud - jste
- vznesli námitku proti zpracování. Omezit můžete rozsah osobních údajů - nebo účelů zpracování. -

- -

Právo na výmaz (být zapomenut)

- -

- Vaším dalším právem je právo na výmaz (být zapomenut). Nechceme na vás - zapomenout, ale pokud si to budete přát, máte na to právo. 😞 V - takovém případě vymažeme veškeré vaše osobní údaje ze svého
- systému i ze systému všech dílčích zpracovatelů a záloh. Na zajištění - práva na výmaz potřebujeme 30 dní. -

- -

Stížnost u Úřadu na ochranu osobních údajů

- -

- Pokud máte pocit, že s vašimi údaji nezacházíme v souladu se zákonem, - máte právo se se svou stížností kdykoli obrátit na Úřad pro ochranu - osobních údajů. Budeme moc rádi, pokud nejprve budete o tomto
- podezření informovat nás, abychom s tím mohli něco udělat a případné - pochybení napravit. -

- -

Mlčenlivost:

-

- Jsme povinni zachovávat mlčenlivost o osobních údajích a o - bezpečnostních opatřeních, jejichž zveřejnění by ohrozilo zabezpečení - vašich osobních údajů. Tato mlčenlivost přitom trvá i po skončení
- závazkových vztahů s námi. Bez vašeho souhlasu také vaše údaje žádné - jiné třetí straně nevydáme. -

- -

Tyto Zásady ochrany osobních údajů nabývají účinnosti 28.4.2022

- - - -
- Copyright © Lukáš Kaňka 2024 -
- -
- - diff --git a/lukaskanka/index/project/YourTravelAssistant/Readme.md b/lukaskanka/index/project/YourTravelAssistant/Readme.md deleted file mode 100644 index a15b983..0000000 --- a/lukaskanka/index/project/YourTravelAssistant/Readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# První povinný projekt v rámci Akademii Engeto - front-end developers - -K projektu připravuji zároveň i testy v frameworku Playwright pod tímto [odkazem](https://github.com/LukasKanka/YourTravelAssistant_Playwright.git). diff --git a/lukaskanka/index/project/YourTravelAssistant/cestovatel.css b/lukaskanka/index/project/YourTravelAssistant/cestovatel.css deleted file mode 100644 index ae34b91..0000000 --- a/lukaskanka/index/project/YourTravelAssistant/cestovatel.css +++ /dev/null @@ -1,554 +0,0 @@ -:root { - --word-black: #000; - --word-white: #fff; - --link-one: #efa69d; - --link-two: #e9877b; - --background-one: #33292a; - --background-two: #644b4f; - --background-three: #333333; - --background-four: #f2f2f2; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: "Roboto", sans-serif; -} - -/* Navigace (horní menu) */ -nav { - padding: 10px; - background-color: var(--background-one); - font-size: 20px; -} -a { - text-decoration: none; - color: var(--word-white); -} - -nav ul { - list-style: none; - display: flex; - justify-content: space-between; - flex-grow: 1; -} - -.navigation { - width: 65%; - margin: 0 auto; -} - -.icon { - width: auto; - height: 22px; - display: none; - margin-left: auto; - margin-right: 12px; -} - -.icon img { - width: 100%; - height: 100%; -} - -@media (max-width: 768px) { - .navigation { - width: 90%; - margin: 0 auto; - } - - nav a { - display: none; - } - - .icon { - display: block; - } -} - -/* Hero - section */ -.hero-section { - height: 80vh; - background-image: url(images/scott-goodwill-y8Ngwq34_Ak-unsplash.jpg); - background-size: cover; - background-position: center; - background-repeat: no-repeat; -} - -.hero-text-wrapper { - position: relative; - width: 65%; - margin: 0 auto; - height: 100%; -} - -.hero-text { - color: var(--word-white); - position: absolute; - right: 0; - bottom: 50px; - font-size: 80px; - text-align: right; -} - -.h2-about { - font-weight: 700; -} - -@media (max-width: 768px) { - .hero-text-wrapper { - width: 90%; - margin: 0 auto; - } - .hero-text { - font-size: 35px; - height: 80px; - margin-bottom: 5px; - } -} - -/* About sekce */ - -.about-section { - margin: 45px 0; -} - -.about-section-wrapper { - width: 65%; - margin: 0 auto; - display: flex; - gap: 20px; -} - -.about-text { - flex: 1; -} - -.about-img { - flex: 1; -} -img { - width: 100%; - height: 100%; - object-fit: cover; -} - -@media (max-width: 768px) { - .about-section-wrapper { - flex-direction: column; - width: 90%; - margin: 0 auto; - } - - .about-text { - text-align: left; - } - - .about-img { - text-align: center; - } - - .about-text-p { - padding-top: 15px; - } -} - -/* What We Do */ - -.what-section { - background-color: var(--background-one); - color: var(--word-white); -} - -.what-section-wrapper { - width: 65%; - margin: 0 auto; -} -.what-text { - text-align: center; -} -.h2-what-we { - font-size: 38px; - text-align: center; - padding-top: 45px; - padding-bottom: 35px; -} - -.where-text { - text-align: center; -} -.icon-what-section { - margin-top: 45px; - padding: 45px; - list-style: none; - display: flex; - justify-content: space-between; - flex-grow: 1; -} - -.img-icons { - width: 100px; - height: 100px; - align-items: center; -} - -.icon-text { - text-align: center; - padding-top: 15px; - font-size: 25px; -} - -@media (max-width: 768px) { - .what-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .icon-what-section { - flex-direction: column; - align-items: center; - text-align: center; - } - - .img-icons { - width: 80px; - height: 80px; - margin-top: 20px; - align-items: center; - } - - .icon-text { - padding-top: 0px; - } -} - -/* Our Trips */ - -.trips-section { - margin-top: 45px; - margin-bottom: 45px; -} -.trips-section-wrapper { - display: flex; - flex-wrap: wrap; - width: 65%; - margin: auto; - gap: 10px; -} - -.images-item { - height: 222px; - width: 32%; - flex-shrink: 1; - border-radius: 4px; -} - -.images-trips-1 { - background-image: url(images/simon-english-48nerZQCHgo-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-2 { - background-image: url(images/james-wheeler-ZOA-cqKuJAA-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-3 { - background-image: url(images/daniel-tseng-73lmMKhi2U8-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-4 { - background-image: url(images/holly-mandarich-UVyOfX3v0Ls-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.text-trips { - background-color: var(--background-four); - color: var(--word-black); - display: flex; - justify-content: center; - align-items: center; - font-size: 32px; - font-weight: 700; -} - -.images-trips-5 { - background-image: url(images/patrick-szylar-45bM3XGqnDE-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-6 { - background-image: url(images/chung-yee-tsang-wqxCKM0R6R8-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-7 { - background-image: url(images/julian-bialowas-ilkTnuMunP8-unsplash.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-8 { - background-image: url(images/matej-drha-rbDzMcJsBkY-unsplash.jpg); - background-size: cover; - background-position: center; -} - -@media (max-width: 768px) { - .trips-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .images-item { - width: 333px; - height: 222px; - } - - .text-trips { - height: 80px; - } -} - -/* Where togo */ -.where-section { - background-color: var(--background-two); - color: var(--word-white); - display: flex; -} - -.where-section-wrapper { - width: 65%; - margin: 0 auto; - padding-top: 45px; - padding-bottom: 45px; - display: flex; -} - -.where-text { - display: flex; -} - -.h2-where { - flex: 1; - font-size: 25px; - width: 272px; - height: 114px; - text-align: left; -} - -.where-text-div { - flex: 1; - width: 572; - height: 201; - text-align: left; -} - -.contact-text { - margin-top: 20px; -} - -.contact-button { - margin-top: 35px; - background-color: var(--background-four); - width: 133px; - height: 43px; - border-radius: 4px; - text-align: center; - line-height: 43px; -} - -.contact-button-text { - font-size: 14px; - font-weight: 700; - font-family: Inter; - color: var(--word-black); - display: block; -} -.mobile { - display: none; -} - -@media (max-width: 768px) { - .where-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .where-text { - flex-direction: column; - } - .desktop { - display: none; - } - - .mobile { - display: block; - font-size: 25px; - margin-bottom: 25px; - } -} - -/* Reviews section */ - -.reviews-section { - width: 65%; - margin: 0 auto; - margin-top: 45px; - margin-bottom: 45px; -} -.h2-reviews { - text-align: center; - padding-bottom: 20px; -} -.reviews-text { - width: 332px; - height: 159px; - text-align: center; - margin: auto; -} - -.reviews-card-wrapper { - display: flex; - align-items: center; - justify-content: space-evenly; - gap: 300px; -} - -.reviews-card { - width: 378.49px; - height: 346px; - text-align: center; -} - -.reviews-card-1 { - width: 378.49px; - height: 346px; - text-align: center; -} - -.reviews-card img { - width: 122.13px; - height: 111px; - border-radius: 50%; -} - -.reviews-card-1 img { - width: 122.13px; - height: 111px; - border-radius: 50%; -} - -.reviews-card-text { - margin-top: 20px; -} - -.reviews-name { - font-weight: 700; - padding-top: 50px; - height: 19px; - align-items: center; -} - -@media (max-width: 768px) { - .reviews-section { - width: 90%; - margin: 0 auto; - } - - .reviews-card-wrapper { - flex-direction: column; - width: 90%; - margin: 0 auto; - gap: 95px; - } - .reviews-card { - width: 324px; - } - - .reviews-card-1 { - width: 324px; - } - - .reviews-text { - width: 263px; - } - - .h2-reviews { - padding-top: 40px; - } - - .reviews-name { - padding-bottom: 40px; - } -} - -/* Photo gallery */ -.photo-gallery { - /* display: flex; */ - /* flex-wrap: wrap; */ -} -.photo-gallery-wrapper { - display: flex; - flex-wrap: wrap; -} - -.picture-img { - width: 100%; - height: auto; - display: block; - object-fit: cover; - max-width: 50%; -} - -@media (max-width: 768px) { - .photo-gallery-wrapper { - flex-direction: column; - margin-top: 100px; - } - .picture-img { - max-width: 100%; - height: 260px; - } -} - -/* Footer */ -.footer-wrapper { - background-color: var(--background-three); - padding: 45px; -} - -.footer-text { - text-align: center; -} -.footer-contact { - color: var(--link-two); - text-decoration: underline; - font-weight: 700; -} -.footer-text-p { - padding-top: 20px; - text-align: center; - color: var(--word-white); - font-weight: 700; -} - -@media (max-width: 768px) { - .footer-contact { - font-size: 12px; - } - .footer-text-p { - font-size: 10px; - } -} diff --git a/lukaskanka/index/project/YourTravelAssistant/cestovatel.php b/lukaskanka/index/project/YourTravelAssistant/cestovatel.php deleted file mode 100644 index b387ae5..0000000 --- a/lukaskanka/index/project/YourTravelAssistant/cestovatel.php +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - - - - - Your Travel Assistant - - -
- - - - - -
-
-

Your
- Travel
- Assistant

-
-
- - -
-
-
-
-

About Us

-

Leigh McAdam is a Calgary-based writer, photographer and social media - enthusiast with over - 48,000 - followers. Her blog: HikeBikeTravel is frequently cited as one of the top travel and outdoor - adventure blogs in Canada, and consistently receives over 135,000 monthly page views. She - shares - her enthusiasm for the outdoors as a brand ambassador for Sporting Life, and has worked on - campaigns for Travel Alberta, Expedia and Flight Hub. Leigh is the author of Discover - Canada: - 100 Inspiring Outdoor Adventures. Currently, she is co-authoring: 125 Nature Hot Spots in - Alberta (spring 2018). A true adventurer, Leigh will try anything once, except perhaps - bungee - jumping. -

-
-
# -
-
-
- - -
-
-
-

What We Do

-

Opportunities for challenging hikes and pleasant strolls are scattered all - over this planet; you - just - need to know where to find them. We do. Kilimanjaro, Everest Base Camp, Patagonia, and the Inca - Trail are out there, waiting for you to walk all over them. We’re proud of our record of - successful - ascents (over 92% of our travellers make it to the top of Kili, depending on the route), but - it’s - our CEOs and local guides that make the journey itself as memorable as the summit. And if you’re - not - into big climbs, don’t sweat it; we’ve got loads of lower-impact walks and iconic treks you’ll - love, - too.

-
- -
    -
  • #
    -

    Hiking

    - -
  • -
  • #
    -

    Cycling

    -
  • -
  • #
    -

    Surfing

    -
  • -
  • #
    -

    Car trips

    -
  • -
-
-
- - -
-
-
-
-
-
-
Our Trips
-
-
-
-
-
-
- - -
-
-
- -
-

Where do you
want to go?

-

Where do you want to go?

-
-
-

- You’ll find 21 detailed adventure guides, over a hundred practical travel tips, book reviews - on - anything outdoors related, packing lists on a range of outdoor activities including - kayaking, - backpacking and camping as well as honest hotel and B&B reviews. -

-

Contact us and we will help you!

- -
-
-
-
- - -
-

Reviews

-
-

Our amazing clients are the reason we exist, and their reactions to our - customized travel experiences - and personalized service keep us smiling all day long. Here is just a sampling of what they’ve said: -

-
-
-
- # -
- She has booked two major European trips for us in the past year and every aspect has met, and - in - most cases exceeded, our expectations. Best prices, best hotels, best itineraries, and best - cruises, she does it all. But the most important thing is she remembers the little things - that - we would do if we were making the plans ourselves. -
- Bertie Norton -
-
-
-
- # -
- Leigh McAdam has been making my travel arrangements for about 20 years and there is no one - else I would trust to arrange my trips and tours. I've also had great fun on a few of the - group trips she has arranged - Peru & Machu Picchu and a 10-day cruise out of Venice and - diving. It's always an eclectic group of well traveled, interesting people. -
- Frank Kinney -
-
-
-
-
- - - - - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/lukaskanka/index/project/YourTravelAssistant/icons/PngItem_1608357.png b/lukaskanka/index/project/YourTravelAssistant/icons/PngItem_1608357.png deleted file mode 100644 index f7dec9b..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/icons/PngItem_1608357.png and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/icons/car-white.png b/lukaskanka/index/project/YourTravelAssistant/icons/car-white.png deleted file mode 100644 index c6f325c..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/icons/car-white.png and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/icons/cycle-white.png b/lukaskanka/index/project/YourTravelAssistant/icons/cycle-white.png deleted file mode 100644 index 6387aaa..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/icons/cycle-white.png and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/icons/hiking-white.png b/lukaskanka/index/project/YourTravelAssistant/icons/hiking-white.png deleted file mode 100644 index 36c90f2..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/icons/hiking-white.png and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/icons/water-white.png b/lukaskanka/index/project/YourTravelAssistant/icons/water-white.png deleted file mode 100644 index 62ffeda..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/icons/water-white.png and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/alexey-fedenkov-BaCZYH9RLmQ-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/alexey-fedenkov-BaCZYH9RLmQ-unsplash.jpg deleted file mode 100644 index 5d0fcc9..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/alexey-fedenkov-BaCZYH9RLmQ-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/anneliese-phillips-uv4-vl3liKM-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/anneliese-phillips-uv4-vl3liKM-unsplash.jpg deleted file mode 100644 index c0a2f3c..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/anneliese-phillips-uv4-vl3liKM-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/chung-yee-tsang-wqxCKM0R6R8-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/chung-yee-tsang-wqxCKM0R6R8-unsplash.jpg deleted file mode 100644 index b50e05d..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/chung-yee-tsang-wqxCKM0R6R8-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/daniel-tseng-73lmMKhi2U8-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/daniel-tseng-73lmMKhi2U8-unsplash.jpg deleted file mode 100644 index 2187830..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/daniel-tseng-73lmMKhi2U8-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/holly-mandarich-UVyOfX3v0Ls-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/holly-mandarich-UVyOfX3v0Ls-unsplash.jpg deleted file mode 100644 index 7c6b25f..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/holly-mandarich-UVyOfX3v0Ls-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash(1).jpg b/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash(1).jpg deleted file mode 100644 index fb86588..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash(1).jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash.jpg deleted file mode 100644 index fb86588..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/james-wheeler-ZOA-cqKuJAA-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/jeffrey-keenan-pUhxoSapPFA-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/jeffrey-keenan-pUhxoSapPFA-unsplash.jpg deleted file mode 100644 index 2f11f0f..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/jeffrey-keenan-pUhxoSapPFA-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/julian-bialowas-ilkTnuMunP8-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/julian-bialowas-ilkTnuMunP8-unsplash.jpg deleted file mode 100644 index 4507328..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/julian-bialowas-ilkTnuMunP8-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/kalen-emsley-kGSapVfg8Kw-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/kalen-emsley-kGSapVfg8Kw-unsplash.jpg deleted file mode 100644 index 81fc614..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/kalen-emsley-kGSapVfg8Kw-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/matej-drha-rbDzMcJsBkY-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/matej-drha-rbDzMcJsBkY-unsplash.jpg deleted file mode 100644 index 9ed51ea..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/matej-drha-rbDzMcJsBkY-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/omer-salom-LoijtQXXNhs-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/omer-salom-LoijtQXXNhs-unsplash.jpg deleted file mode 100644 index 2ac3aa8..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/omer-salom-LoijtQXXNhs-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/patrick-szylar-45bM3XGqnDE-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/patrick-szylar-45bM3XGqnDE-unsplash.jpg deleted file mode 100644 index d2c57ae..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/patrick-szylar-45bM3XGqnDE-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/scott-goodwill-y8Ngwq34_Ak-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/scott-goodwill-y8Ngwq34_Ak-unsplash.jpg deleted file mode 100644 index c688660..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/scott-goodwill-y8Ngwq34_Ak-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/simon-english-48nerZQCHgo-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/simon-english-48nerZQCHgo-unsplash.jpg deleted file mode 100644 index 6c009a8..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/simon-english-48nerZQCHgo-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/YourTravelAssistant/images/vincentiu-solomon-7MH4ped6_Mo-unsplash.jpg b/lukaskanka/index/project/YourTravelAssistant/images/vincentiu-solomon-7MH4ped6_Mo-unsplash.jpg deleted file mode 100644 index f436b0a..0000000 Binary files a/lukaskanka/index/project/YourTravelAssistant/images/vincentiu-solomon-7MH4ped6_Mo-unsplash.jpg and /dev/null differ diff --git a/lukaskanka/index/project/index.php b/lukaskanka/index/project/index.php deleted file mode 100644 index 9f2c37c..0000000 --- a/lukaskanka/index/project/index.php +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - Projekty - - - - - - - - - - -
- - - -
- - - - -
-

- Vítám tě na této stránce, která slouží jako mapa pro mé projekty. -

-

- Zde najtete projekty věnující se k tvorbě webu a hlavně mou cestu Akademií Engeto. -

-

- Všechny projekty jsou vytvořeny v HTML, CSS a strochou JavaScriptu. Ale určitě jsem přidám i další - projekty, které tvořím mimo Akademii.

-

- Projekty které se netýkají tworby webu, najdete na mém GitHubu přes tento odkaz na Gitea. -

-

- U každého projektu najdete popis a odkaz na něj. Buď na Gitea nebo na stránky, kde je projekt umístěn. -

-
- -
-
-

Projekt 1: Tento Blog

-

- Tento projekt je vytvořen mimo Akademii Engeto. Je to můj osobní blog, který postupně vylepšuji. - Tato stránka slouží čistě jako má prezentace.

-

- Postupně jsem přidávám své znolosti z HTML, CSS a také se snažím aby web byl co nejlépe - responzivní. Tento projekt je nekončicí koloběh. -

-
- -
-

Projekt 2: Životopis

-

- Tento projekt je jako první úkol v Akademii.

-

Zadání bylo vytvořit jednoduchý životpis na procvičení základů HTML a CSS. Později jsem ještě pomocí - CSS nastavil v úkolu responsivní web pro mobilní zařízení.

-

-

Projekt Životopis najdete zde.

-
-
-

Projekt 3: Karta produktu

-

Karta produktu. Na tomto projektu jsme se naučily pozicování elementu a pojmy jako Margin a Padding. -

-

Projekt Karta produkdu najdete zde

-
- -
-

Projekt 4: Nature and Culture

-

Tento projekt je zaměřen na responsivitu webu pro mobilní zařízení a také jsme použily porvé Flexbox. -

-

Projekt Nature and Culture najdete zde

- -
-
-

Projekt 5: Your Travel Assistant

-

Tento projekt je vytvořen mimo Akademii Engeto. Jedná se o stránku pro cestovatele.

-

Zadání jsme měli jako na reálném projektu a grafické rozložení se dělalo dle Figmi. Tento projekt byl hodnocený a je jeden ze tří projektů k získání certifikátu v Akademii.

-

Projekt najdeš pod tímto odkazem. Od finální verze co jsem odevzdal se mírně liší, ještě před odevzdáním jsem vychytával poslední mouchy.

-
-
-
- - - -
- Copyright © Lukáš Kaňka 2024 -
-
- - diff --git a/lukaskanka/index/project/kartaProduktu/img/psi-hracka(1).png b/lukaskanka/index/project/kartaProduktu/img/psi-hracka(1).png deleted file mode 100644 index 8a2bcd6..0000000 Binary files a/lukaskanka/index/project/kartaProduktu/img/psi-hracka(1).png and /dev/null differ diff --git a/lukaskanka/index/project/kartaProduktu/img/psi-hracka.png b/lukaskanka/index/project/kartaProduktu/img/psi-hracka.png deleted file mode 100644 index a15b983..0000000 --- a/lukaskanka/index/project/kartaProduktu/img/psi-hracka.png +++ /dev/null @@ -1,3 +0,0 @@ -# První povinný projekt v rámci Akademii Engeto - front-end developers - -K projektu připravuji zároveň i testy v frameworku Playwright pod tímto [odkazem](https://github.com/LukasKanka/YourTravelAssistant_Playwright.git). diff --git a/lukaskanka/index/project/kartaProduktu/karta-produktu.php b/lukaskanka/index/project/kartaProduktu/karta-produktu.php deleted file mode 100644 index 96274b0..0000000 --- a/lukaskanka/index/project/kartaProduktu/karta-produktu.php +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - Karta produktu - - - - -
- -
- Jen u nás - -27% -
- -
- -
- - -

M-Pets Hračka Holly vánoční sněhulák

- - -

Hračka pro psy - pro střední a velká plemena, vydává zvuky, materiál polyester, bílá barva -

- - -
-
Výměna nevhodného dárku za poukaz do 31.1.2024 nyní zdarma! Více informací klini na odkaz: Výměna - dárku. -
- -
- - -
-

149,-

- 109,- - Do košíku -
- - - Skladem > 5 ks - Doprava zdarma -
- - - \ No newline at end of file diff --git a/lukaskanka/index/project/kartaProduktu/style.karta.css b/lukaskanka/index/project/kartaProduktu/style.karta.css deleted file mode 100644 index 16c879d..0000000 --- a/lukaskanka/index/project/kartaProduktu/style.karta.css +++ /dev/null @@ -1,147 +0,0 @@ -:root { - --special-yellow: hsl(56, 94%, 49%); - --special-yellow-2: rgb(231, 231, 149); - --special-red-original: red; - --special-red: #db090d; - --special-black: #040303; - --special-white: #f7f7f7; - --special-green: rgb(0, 128, 0); - --special-agua: rgb(8, 126, 126); - --special-pink: palevioletred; -} -.product-card { - position: relative; - width: 450px; - background-color: var(--special-white); - padding: 16px; - font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif; - border: 6px solid var(--special-black); - - /* responzivita */ - width: calc(100% - 32px); - max-width: 800px; - margin: auto; -} - -.whell { - position: absolute; -} - -.product-only { - background-color: var(--special-yellow); - position: absolute; - border-radius: 50%; - width: 120px; - height: 80px; - left: 35px; - top: 60px; - text-align: center; - font-size: 25px; - color: var(--special-white); - font-weight: bold; - padding-top: 50px; -} - -.discount-badge { - background-color: var(--special-red); - position: absolute; - border-radius: 50%; - width: 120px; - height: 80px; - left: 35px; - top: 160px; - text-align: center; - font-size: 25px; - color: var(--special-white); - font-weight: bold; - padding-top: 50px; -} - -.product-image { - width: 95%; - height: 90%; -} - -h1 { - color: var(--special-agua); -} - -.button { - color: var(--special-red); - border-style: solid; - text-decoration: none; - padding-right: 6px; - padding-left: 6px; - border-radius: 6px; - background-color: var(--special-yellow-2); -} -.product-price-container { - padding: 8px; - background-color: var(--special-pink); - margin-bottom: 16px; - position: relative; - border-radius: 6px; - top: 15px; -} - -.product-price { - font-weight: bold; - font-size: 40px; - display: inline-block; - padding: 8px; - background-color: var(--special-red-original); - border-radius: 6px; -} - -.product-price-old { - font-size: 20px; - color: var(--special-white); - text-decoration: line-through; - width: 75px; - background-color: var(--special-yellow); - margin-top: 1px; - margin-bottom: 1px; - padding-left: 35px; - border-radius: 6px; - font-weight: bold; -} - -.shopping-button { - color: var(--special-black); - font-weight: bold; - font-size: 30px; - text-decoration: none; - position: absolute; - top: 30px; - right: 30px; - border-radius: 6px; - background-color: var(--special-yellow-2); - padding-left: 5px; - padding-right: 5px; - border-style: solid; -} - -.stock { - font-weight: bold; - color: var(--special-green); - font-size: 20px; - padding: 10px; -} - -.transport { - padding-left: 135px; - font-size: 20px; - font-weight: bold; -} - -.button-container { - margin-top: 10px; - /* margin-bottom: 15px; */ -} - -/* ˇMobily */ -@media screen and (max-width: 600px) { - body { - width: calc(100% - 16px); - } -} diff --git a/lukaskanka/index/project/nature/images/PngItem_1608357.png b/lukaskanka/index/project/nature/images/PngItem_1608357.png deleted file mode 100644 index f7dec9b..0000000 Binary files a/lukaskanka/index/project/nature/images/PngItem_1608357.png and /dev/null differ diff --git a/lukaskanka/index/project/nature/images/photo-1512419180521-2c5585bdf851.avif b/lukaskanka/index/project/nature/images/photo-1512419180521-2c5585bdf851.avif deleted file mode 100644 index efc2718..0000000 Binary files a/lukaskanka/index/project/nature/images/photo-1512419180521-2c5585bdf851.avif and /dev/null differ diff --git a/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5(1).avif b/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5(1).avif deleted file mode 100644 index f9d866f..0000000 Binary files a/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5(1).avif and /dev/null differ diff --git a/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5.avif b/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5.avif deleted file mode 100644 index 3e6e5b2..0000000 --- a/lukaskanka/index/project/nature/images/photo-1540503831458-3237544b2ce5.avif +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - Projekty - - - - - - - - - - -
- - - -
- - - - -
-

- Vítám tě na této stránce, která slouží jako mapa pro mé projekty. -

-

- Zde najtete projekty věnující se k tvorbě webu a hlavně mou cestu Akademií Engeto. -

-

- Všechny projekty jsou vytvořeny v HTML, CSS a strochou JavaScriptu. Ale určitě jsem přidám i další - projekty, které tvořím mimo Akademii.

-

- Projekty které se netýkají tworby webu, najdete na mém GitHubu přes tento odkaz na Gitea. -

-

- U každého projektu najdete popis a odkaz na něj. Buď na Gitea nebo na stránky, kde je projekt umístěn. -

-
- -
-
-

Projekt 1: Tento Blog

-

- Tento projekt je vytvořen mimo Akademii Engeto. Je to můj osobní blog, který postupně vylepšuji. - Tato stránka slouží čistě jako má prezentace.

-

- Postupně jsem přidávám své znolosti z HTML, CSS a také se snažím aby web byl co nejlépe - responzivní. Tento projekt je nekončicí koloběh. -

-
- -
-

Projekt 2: Životopis

-

- Tento projekt je jako první úkol v Akademii.

-

Zadání bylo vytvořit jednoduchý životpis na procvičení základů HTML a CSS. Později jsem ještě pomocí - CSS nastavil v úkolu responsivní web pro mobilní zařízení.

-

-

Projekt Životopis najdete zde.

-
-
-

Projekt 3: Karta produktu

-

Karta produktu. Na tomto projektu jsme se naučily pozicování elementu a pojmy jako Margin a Padding. -

-

Projekt Karta produkdu najdete zde

-
- -
-

Projekt 4: Nature and Culture

-

Tento projekt je zaměřen na responsivitu webu pro mobilní zařízení a také jsme použily porvé Flexbox. -

-

Projekt Nature and Culture najdete zde

- -
-
-

Projekt 5: Your Travel Assistant

-

Tento projekt je vytvořen mimo Akademii Engeto. Jedná se o stránku pro cestovatele.

-

Zadání jsme měli jako na reálném projektu a grafické rozložení se dělalo dle Figmi. Tento projekt byl hodnocený a je jeden ze tří projektů k získání certifikátu v Akademii.

-

Projekt najdeš pod tímto odkazem. Od finální verze co jsem odevzdal se mírně liší, ještě před odevzdáním jsem vychytával poslední mouchy.

-
-
-
- - - -
- Copyright © Lukáš Kaňka 2024 -
-
- - diff --git a/lukaskanka/index/project/nature/nature-and-culture.php b/lukaskanka/index/project/nature/nature-and-culture.php deleted file mode 100644 index 669eb34..0000000 --- a/lukaskanka/index/project/nature/nature-and-culture.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - Hero - - - - - - - -
-
-
Exploring Icelandic Villages
-
-

Nature and Culture Converge

-
-
-
- - - - -
- -
- - - \ No newline at end of file diff --git a/lukaskanka/index/project/nature/style-nature.css b/lukaskanka/index/project/nature/style-nature.css deleted file mode 100644 index ab1c6f8..0000000 --- a/lukaskanka/index/project/nature/style-nature.css +++ /dev/null @@ -1,115 +0,0 @@ -:root { - --my-white: #fff; - --my-pink: #f08d8f; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - margin: 16px 32px; -} - -.hero-section { - height: 70vh; - background-image: url(images/photo-1540503831458-3237544b2ce5.avif); - background-size: cover; - background-position: center; - background-repeat: no-repeat; - border-radius: 12px; - margin-bottom: 10px; - position: relative; -} - -.hero-text { - position: absolute; - left: 32px; - bottom: 16px; - color: var(--my-white); -} - -.hero-subtitle { - font-size: 20px; -} -.hero-title { - margin-top: 8px; -} - -.icon { - width: auto; - height: auto; - display: none; - padding: 14px; - margin-left: auto; - /* display: flex; */ -} -.icon img { - width: 100%; - height: 100%; - /* display: flex; */ - /* align-items: center; */ -} - -.image-container { - width: 50%; -} -.image-container img { - width: 100%; - height: 100%; - border-radius: 12px; -} -nav { - height: 55px; - background-color: var(--my-pink); - display: flex; - justify-content: space-evenly; - text-decoration: none; - margin-bottom: 10px; - border-radius: 12px; -} -nav a { - color: var(--my-white); - text-decoration: none; - font-size: 20px; - font-weight: bold; - list-style-type: none; -} - -ul { - display: flex; - list-style-type: none; - gap: 65px; - padding-top: 16px; - padding-bottom: 16px; -} - -/* Mobile - setting */ - -@media (max-width: 768px) { - body { - margin: 8px; - } - - .hero-subtitle { - font-size: 18px; - } - - .hero-title { - font-size: 14px; - } - - .icon { - display: block; - } - - .image-container { - width: 100%; - } - - nav a { - display: none; - } -} diff --git a/lukaskanka/index/project/zivotopis/Folder.DotSettings.user b/lukaskanka/index/project/zivotopis/Folder.DotSettings.user deleted file mode 100644 index ef0428b..0000000 --- a/lukaskanka/index/project/zivotopis/Folder.DotSettings.user +++ /dev/null @@ -1,2 +0,0 @@ - - ThisComputer \ No newline at end of file diff --git a/lukaskanka/index/project/zivotopis/README.md b/lukaskanka/index/project/zivotopis/README.md deleted file mode 100644 index 2e30f41..0000000 --- a/lukaskanka/index/project/zivotopis/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# zivotopis_engeto - -První zadání pro nepovinný domácí úkol, vytvořit CV. diff --git a/lukaskanka/index/project/zivotopis/image/1702045296079.jpeg b/lukaskanka/index/project/zivotopis/image/1702045296079.jpeg deleted file mode 100644 index c0b1c93..0000000 Binary files a/lukaskanka/index/project/zivotopis/image/1702045296079.jpeg and /dev/null differ diff --git a/lukaskanka/index/project/zivotopis/style-cv.css b/lukaskanka/index/project/zivotopis/style-cv.css deleted file mode 100644 index fe865c0..0000000 --- a/lukaskanka/index/project/zivotopis/style-cv.css +++ /dev/null @@ -1,86 +0,0 @@ -:root { - --my-black: black; - --my-beckground: #ded4d4; - max-width: 1200px; - margin: auto; -} - -body { - background-color: var(--my-beckground); - max-width: 1200px; - margin: auto; - margin-bottom: 25px; -} -@media screen and (max-width: 600px) { - body { - width: calc(100% - 16px); - } -} - -footer { - position: fixed; - bottom: 0; -} - -.tlacitko { - color: var(--my-black); -} - -td, -th { - border: 1px solid var(--my-black); - padding: 15px; -} - -.flexbox { - display: flex; - max-width: auto; - margin: auto; -} -.flexbox-content { - display: flex; - flex-direction: column; -} - -.menu { - margin-top: 25px; -} - -.content { - order: 2; - flex: 3; - padding: 55px; - margin-top: -45px; -} -.dot { - list-style-type: none; -} -.jobs, -.course, -.fun { - font-size: 20px; -} -.title { - text-align: center; - order: 1; -} - -@media screen and (max-width: 600px) { - .flexbox { - flex-direction: column; - } - - .menu { - order: 1; - text-align: center; - } - .dot-none { - list-style-type: none; - } - /* .content { - order: 3; - } */ - .title { - order: -1; - } -} diff --git a/lukaskanka/index/project/zivotopis/zivotopis.html b/lukaskanka/index/project/zivotopis/zivotopis.html deleted file mode 100644 index 60d819a..0000000 --- a/lukaskanka/index/project/zivotopis/zivotopis.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - Životopis - - - -
- - - - -
-
-

ŽIVOTOPIS
LUKÁŠ KAŇKA

-
- - -
- -
-

O MNĚ

-
-

- IT nadšenec s pozitivním přístupem k životu a vášní pro technologie. - Do světa IT jsem vstoupil jako Support, pak mě osud dovedl na pozici - Testera a v současné době měním svůj kariérní směr do Front-Endu. Kód - i programování mě lákalo už dlouho, baví mě zobrazení okamžitého - výsledku, který mi umožňuje zlepšení a zdokonalení kódu. Aktuálně se - vzdělávám v JavaScript, TypeScript, HTML, CSS. Jako návazný krok bych své znalosti rád - prohluboval ve frameworcích React, Angular. -

-
-
-

PRACOVNÍ ZKUŠENOSTI

-
-
    -
  • - Vývojář na platformě Smart -
  • -
  • Kyndryl [ 15/05/2022 – ]
  • -
  • Město: Praha
  • -
  • Země: Česko
  • -
  • Vývojář na platformě Smart pro Českou spořitelnu.
  • -
  • Technologie:Jira, GitHub, TypeScript, Kibana.
  • -
-
    -
  • - Tester softwaru -
  • -
  • Uniprog Solutions, a.s [ 15/08/2022 – 14/08/2023 ]
  • -
  • Město: Praha
  • -
  • Země: Česko
  • -
  • Manuální testování PowerBuilder aplikací.
  • -
  • Údržba a oprava automatizovaných testů Cucumber.
  • -
  • Manuální testování webových aplikací dle Test Case a dokumentace.
  • -
  • Komunikace napříč vývojovými týmy.
  • -
  • Technologie: MSSQL, Jira, PowerBuilder, GitLab.
  • -
-
    -
  • IT support
  • -
  • Comfort Finance Group CFG Živnostník [ 04/2022 – 07/2022 ]
  • -
  • Město: Praha
  • -
  • Země: Česko
  • -
  • Poskytování IT podpory uživatelům (SW, HW), onboarding nováčků, - evidence skladu vybavení, řešení nastalých technických problémů.
  • -
  • Reporting systémových chyb na adekvátní oddělení.
  • -
  • Práce v OS Ubuntu Linux.
  • -
  • Práce s nástroji jako Intergromat, Jira.
  • -
-
    -
  • Řidič dodávky
  • -
  • - Artglass Lighting Na plný úvazek [ 03/2016 – 04/2020 ]
    - Země: Česko
    - Řízení dodávky, komunikace se zákazníky, podpora prodeje. -
  • -
-
    -
  • Řidič nákladního vozu
  • -
  • - ČSAD Liberec Na plný úvazek [ 07/2006 – 08/2014 ] -
  • -
  • Řízení nákladních vozidel (MAN, DAF, Iveco, Renault). -
  • -
-
-
-

VZDĚLÁNÍ A ODBORNÁ PŘÍPRAVA

-
-
    -
  • Základy Testingu, SQL, Web Services
  • -
  • - Acamar [ 08/2020 ] -
  • -
  • Město: Praha
  • -
  • Země: Česko
  • -
-
    -
  • Úvod do Playwright
  • -
  • Tesena [ 04/2023 ]
  • -
  • Město: Praha
  • -
  • Země: Česko
  • -
-
-
-

ZÁJMY A KONÍČKY

-
-
    -
  • - Opensource, Linux, Sebevzdělávání v testingu a dalších technologiích, - Cyklistika -
  • -
  • - Na mi mo pracovních projektech mám základní zkušenosti se SW a - technologiemi jako: C#, .Net, NUnit, Selenium, Selenide,Cypress, - Playwrigt, Java, Linux Ubuntu a další distribuce, Docker, MacOS, - MangoDB, Windows, Obsidian.
    - Mimo jiné se ve volném čase účastním amatérských závodů na kole a rád - si zaběhám. -
  • -
-

DOBROVOLNICKÁ ČINNOST

-
-
    -
  • Maper Missing Maps
  • -
  • - Ve volném čase mapuji pro humanitární účely, v projektu - Missing Maps - pomocí OSM na platformě - Hot Tasking Manager. -
  • -
-
-
-
-
-
Copyright © Lukáš Kaňka 2023
- - - \ No newline at end of file diff --git a/lukaskanka/index/repository/index.php b/lukaskanka/index/repository/index.php deleted file mode 100644 index 998b366..0000000 --- a/lukaskanka/index/repository/index.php +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - Repozitáře - - - - - - - -
- - - -
- - diff --git a/lukaskanka/index/services/img/1-4204059220.png b/lukaskanka/index/services/img/1-4204059220.png deleted file mode 100644 index b548f45..0000000 Binary files a/lukaskanka/index/services/img/1-4204059220.png and /dev/null differ diff --git a/lukaskanka/index/services/img/600px-Arch-linux-logo-691350772.png b/lukaskanka/index/services/img/600px-Arch-linux-logo-691350772.png deleted file mode 100644 index 143dc53..0000000 Binary files a/lukaskanka/index/services/img/600px-Arch-linux-logo-691350772.png and /dev/null differ diff --git a/lukaskanka/index/services/img/91488-2048748032.jpg b/lukaskanka/index/services/img/91488-2048748032.jpg deleted file mode 100644 index 7d94d2a..0000000 Binary files a/lukaskanka/index/services/img/91488-2048748032.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/IMG_4835.JPG b/lukaskanka/index/services/img/IMG_4835.JPG deleted file mode 100644 index 1e40e24..0000000 Binary files a/lukaskanka/index/services/img/IMG_4835.JPG and /dev/null differ diff --git a/lukaskanka/index/services/img/Kali-linux-872298623.jpg b/lukaskanka/index/services/img/Kali-linux-872298623.jpg deleted file mode 100644 index 2cd26ab..0000000 Binary files a/lukaskanka/index/services/img/Kali-linux-872298623.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/endeavourOS-astronaught-3246654328.jpg b/lukaskanka/index/services/img/endeavourOS-astronaught-3246654328.jpg deleted file mode 100644 index 477fb10..0000000 Binary files a/lukaskanka/index/services/img/endeavourOS-astronaught-3246654328.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/fedora-feat-5b9fe676c9e77c0050ce388c-2333270958.jpg b/lukaskanka/index/services/img/fedora-feat-5b9fe676c9e77c0050ce388c-2333270958.jpg deleted file mode 100644 index 0c76e2b..0000000 Binary files a/lukaskanka/index/services/img/fedora-feat-5b9fe676c9e77c0050ce388c-2333270958.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/linux-penguin-and-rainbow-background-imsv6hxt0e8zcl7m-3730406657.jpg b/lukaskanka/index/services/img/linux-penguin-and-rainbow-background-imsv6hxt0e8zcl7m-3730406657.jpg deleted file mode 100644 index d2e641c..0000000 Binary files a/lukaskanka/index/services/img/linux-penguin-and-rainbow-background-imsv6hxt0e8zcl7m-3730406657.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/ubuntu-linux-minimal-4k-on-3840x2160-2398598343.jpg b/lukaskanka/index/services/img/ubuntu-linux-minimal-4k-on-3840x2160-2398598343.jpg deleted file mode 100644 index 63bcddb..0000000 Binary files a/lukaskanka/index/services/img/ubuntu-linux-minimal-4k-on-3840x2160-2398598343.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/wp7596264.jpg b/lukaskanka/index/services/img/wp7596264.jpg deleted file mode 100644 index 07190f1..0000000 Binary files a/lukaskanka/index/services/img/wp7596264.jpg and /dev/null differ diff --git a/lukaskanka/index/services/img/wp8843183-1041051902.jpg b/lukaskanka/index/services/img/wp8843183-1041051902.jpg deleted file mode 100644 index ffd1483..0000000 Binary files a/lukaskanka/index/services/img/wp8843183-1041051902.jpg and /dev/null differ diff --git a/lukaskanka/index/services/index.php b/lukaskanka/index/services/index.php deleted file mode 100644 index fb371f3..0000000 --- a/lukaskanka/index/services/index.php +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - Lukáš Kaňka - IT služby - - -
- - - - - -
-
-

- Lukáš Kaňka
- IT služby pro Vás

-
-
- - -
-
-
-
-

O mně

-

Jsem IT nadšenec s pozitivním přístupem k životu a vášní pro - technologie, ve kterých se neustále vzdělávám. Absolvoval jsem kurz - testingu a SQL v Acamaru, další kurz byl web developer u společnosti Engeto. Pracoval jsem na pozici testera ve společnosti Uniprog a nyní pracuji ve společnosti Kyndryl na projektu České Spořitelny pro platformu SMART. -

-

- Nabízím služby v obkasti IT se zaměřením na open-source a Linux. Své služby nabízím po celé Praze, Jablonci - nad Nisou a online. Ceny startují na 150kč/1hod. - Služby nabízím jednotlivcům tak i spolkům či školám adt. Faktura je samořejmostí. -

-
-
# -
-
-
- - -
-
-
-

Nabízím tyto služby

-

-

    - -
  • Instalace Linuxu.
  • -
  • Pomůžu vám najít vhodnou Linuxovou distribuci přímo pro Vás. Nejoblíbenější distribuce jsou Ubuntu, - Fedora, Manjaro či Zendalona pro zrakově postižené. -
  • -
  • Naučím vás práci v Linuxu, seznámím s Terminálem a OpenSource.
  • -
  • Nastavím v Linuxu váš nový SSD disk.
  • -
  • Seznámím vás s programy pro Linux které jsou alternativou pro programy Windows.
  • -
  • Vybereme a přispůsobíme vám prostředí v Linuxu.
  • -
  • Rychlá podpora pokud si nebudete vědět rady.
  • -
  • Tvorba on-Line vizitek - zajistím doménu i hosting, pomohu s návrhem vizitky. Základní vizitky - děláme v HTML a CSS, složitější v Wordpressu. -
  • -
  • Tvorba webů pro restaurace - tyto weby tvoříme v Wordpresu s jednoduchou administrací kde si můžete - jidelní lístky jednoduše spravovat. -
  • -
-

-
- -
    -
  • - -

    Instalace Linuxu

    - -
  • -
  • - -

    Práce s Linuxem a Open Source aplikacemi

    -
  • -
  • - -

    Tvorba vizitek a menších webů

    -
  • -
  • - -

    Poradenství a administrace

    -
  • -
-
-
- - -
-
-
-
-
-
-
Stačí si vybrat
-
-
-
-
-
-
- - -
-
-
- -
-

-

-
-
- -

Telefoní číslo: +420 725 303 747

-

E-mail: Lukáš Kaňka

- - - -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- - - - - - \ No newline at end of file diff --git a/lukaskanka/index/services/script.js b/lukaskanka/index/services/script.js deleted file mode 100644 index a508498..0000000 --- a/lukaskanka/index/services/script.js +++ /dev/null @@ -1,17 +0,0 @@ -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - document.getElementById("scrollToTopBtn").style.display = "block"; - } else { - document.getElementById("scrollToTopBtn").style.display = "none"; - } -} - -// Posunout nahoru, když uživatel klikne na tlačítko -function scrollToTop() { - document.body.scrollTop = 0; // Pro Safari - document.documentElement.scrollTop = 0; // Pro ostatní prohlížeče -} \ No newline at end of file diff --git a/lukaskanka/index/services/style.css b/lukaskanka/index/services/style.css deleted file mode 100644 index 5c738f1..0000000 --- a/lukaskanka/index/services/style.css +++ /dev/null @@ -1,578 +0,0 @@ -:root { - --word-black: #000; - --word-white: #fff; - --link-one: #efa69d; - --link-two: #e9877b; - --background-one: #33292a; - --background-two: #644b4f; - --background-three: #333333; - --background-four: #f2f2f2; -} - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - -body { - font-family: "Roboto", sans-serif; -} - -/* Navigace (horní menu) */ -nav { - padding: 10px; - background-color: var(--background-one); - font-size: 20px; -} -a { - text-decoration: none; - color: var(--word-white); -} - -.dot { - list-style: none; -} - -nav ul { - list-style: none; - display: flex; - justify-content: space-between; - flex-grow: 1; -} - -.navigation { - width: 65%; - margin: 0 auto; -} - -.icon { - width: auto; - height: 22px; - display: none; - margin-left: auto; - margin-right: 12px; -} - -.icon img { - width: 100%; - height: 100%; -} - -@media (max-width: 768px) { - .navigation { - width: 90%; - margin: 0 auto; - } - - nav ul { - flex-direction: column; - } - - nav a { - /*display: none;*/ - } - - /*.icon {*/ - /* display: block;*/ - /*}*/ -} - -/* Hero - section */ -.hero-section { - height: 80vh; - background-image: url(img/wp7596264.jpg); - background-size: 70%; - background-position: center; - background-repeat: no-repeat; -} - -.hero-text-wrapper { - position: relative; - width: 65%; - margin: 0 auto; - height: 100%; -} - -.hero-text { - color: var(--word-white); - position: absolute; - right: 0; - bottom: 50px; - font-size: 80px; - text-align: right; -} - -.h2-about { - font-weight: 700; -} - -@media (max-width: 768px) { - .hero-text-wrapper { - width: 90%; - margin: 0 auto; - } - .hero-text { - font-size: 35px; - height: 80px; - margin-bottom: 5px; - color: black; - } -} - -/* About sekce */ - -.about-section { - margin: 45px 0; -} - -.about-section-wrapper { - width: 65%; - margin: 0 auto; - display: flex; - gap: 20px; -} - -.about-text { - flex: 1; -} - -.about-img { - flex: 1; -} -img { - width: 100%; - height: 100%; - object-fit: cover; -} - -@media (max-width: 768px) { - .about-section-wrapper { - flex-direction: column; - width: 90%; - margin: 0 auto; - } - - .about-text { - text-align: left; - } - - .about-img { - text-align: center; - } - - .about-text-p { - padding-top: 15px; - } -} - -/* What We Do */ - -.what-section { - background-color: var(--background-one); - color: var(--word-white); -} - -.what-section-wrapper { - width: 65%; - margin: 0 auto; -} -.what-text { - text-align: center; -} -.h2-what-we { - font-size: 38px; - text-align: center; - padding-top: 45px; - padding-bottom: 35px; -} - -.where-text { - text-align: center; -} -.icon-what-section { - margin-top: 45px; - padding: 45px; - list-style: none; - display: flex; - justify-content: space-between; - flex-grow: 1; -} - -.img-icons { - width: 100px; - height: 100px; - align-items: center; -} - -.icon-text { - text-align: center; - padding-top: 15px; - font-size: 25px; -} - -@media (max-width: 768px) { - .what-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .icon-what-section { - flex-direction: column; - align-items: center; - text-align: center; - } - - .img-icons { - width: 80px; - height: 80px; - margin-top: 20px; - align-items: center; - } - - .icon-text { - padding-top: 0px; - } -} - -/* Our Trips */ - -.trips-section { - margin-top: 45px; - margin-bottom: 45px; -} -.trips-section-wrapper { - display: flex; - flex-wrap: wrap; - width: 65%; - margin: auto; - gap: 10px; -} - -.images-item { - height: 222px; - width: 32%; - flex-shrink: 1; - border-radius: 4px; -} - -.images-trips-1 { - background-image: url(img/linux-penguin-and-rainbow-background-imsv6hxt0e8zcl7m-3730406657.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-2 { - background-image: url(img/1-4204059220.png); - background-size: cover; - background-position: center; -} - -.images-trips-3 { - background-image: url(img/fedora-feat-5b9fe676c9e77c0050ce388c-2333270958.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-4 { - background-image: url(img/ubuntu-linux-minimal-4k-on-3840x2160-2398598343.jpg); - background-size: cover; - background-position: center; -} - -.text-trips { - background-color: var(--background-four); - color: var(--word-black); - display: flex; - justify-content: center; - align-items: center; - font-size: 32px; - font-weight: 700; -} - -.images-trips-5 { - background-image: url(img/Kali-linux-872298623.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-6 { - background-image: url(img/wp8843183-1041051902.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-7 { - background-image: url(img/91488-2048748032.jpg); - background-size: cover; - background-position: center; -} - -.images-trips-8 { - background-image: url(img/endeavourOS-astronaught-3246654328.jpg); - background-size: cover; - background-position: center; -} - -@media (max-width: 768px) { - .trips-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .images-item { - width: 333px; - height: 222px; - } - - .text-trips { - height: 80px; - } -} - -/* Where togo */ -.where-section { - background-color: var(--background-two); - color: var(--word-white); - display: flex; -} - -.where-section-wrapper { - width: 65%; - margin: 0 auto; - padding-top: 45px; - padding-bottom: 45px; - display: flex; -} - -.where-text { - display: flex; -} - -.h2-where { - flex: 1; - font-size: 25px; - width: 272px; - height: 114px; - text-align: left; -} - -.where-text-div { - flex: 1; - width: 572; - height: 201; - text-align: left; -} - -.contact-text { - margin-top: 20px; -} - -.contact-button { - margin-top: 35px; - background-color: var(--background-four); - width: 133px; - height: 43px; - border-radius: 4px; - text-align: center; - line-height: 43px; -} - -.contact-button-text { - font-size: 14px; - font-weight: 700; - font-family: Inter; - color: var(--word-black); - display: block; -} -.mobile { - display: none; -} - -@media (max-width: 768px) { - .where-section-wrapper { - width: 90%; - margin: 0 auto; - } - - .where-text { - flex-direction: column; - } - .desktop { - display: none; - } - - .mobile { - display: block; - font-size: 25px; - margin-bottom: 25px; - } -} - -/* Reviews section */ - -.reviews-section { - width: 65%; - margin: 0 auto; - margin-top: 45px; - margin-bottom: 45px; -} -.h2-reviews { - text-align: center; - padding-bottom: 20px; -} -.reviews-text { - width: 332px; - height: 159px; - text-align: center; - margin: auto; -} - -.reviews-card-wrapper { - display: flex; - align-items: center; - justify-content: space-evenly; - gap: 300px; -} - -.reviews-card { - width: 378.49px; - height: 346px; - text-align: center; -} - -.reviews-card-1 { - width: 378.49px; - height: 346px; - text-align: center; -} - -.reviews-card img { - width: 122.13px; - height: 111px; - border-radius: 50%; -} - -.reviews-card-1 img { - width: 122.13px; - height: 111px; - border-radius: 50%; -} - -.reviews-card-text { - margin-top: 20px; -} - -.reviews-name { - font-weight: 700; - padding-top: 50px; - height: 19px; - align-items: center; -} - -@media (max-width: 768px) { - .reviews-section { - width: 90%; - margin: 0 auto; - } - - .reviews-card-wrapper { - flex-direction: column; - width: 90%; - margin: 0 auto; - gap: 95px; - } - .reviews-card { - width: 324px; - } - - .reviews-card-1 { - width: 324px; - } - - .reviews-text { - width: 263px; - } - - .h2-reviews { - padding-top: 40px; - } - - .reviews-name { - padding-bottom: 40px; - } -} - -/* Photo gallery */ -.photo-gallery { - /* display: flex; */ - /* flex-wrap: wrap; */ -} -.photo-gallery-wrapper { - display: flex; - flex-wrap: wrap; -} - -.picture-img { - width: 100%; - height: auto; - display: block; - object-fit: cover; - max-width: 50%; -} - -@media (max-width: 768px) { - .photo-gallery-wrapper { - flex-direction: column; - margin-top: 100px; - } - .picture-img { - max-width: 100%; - height: 260px; - } -} - -/* Footer */ -.footer-wrapper { - background-color: var(--background-three); - padding: 45px; -} - -.footer-text { - text-align: center; -} -.footer-contact { - color: var(--link-two); - text-decoration: underline; - font-weight: 700; -} -.footer-text-p { - padding-top: 20px; - text-align: center; - color: var(--word-white); - font-weight: 700; -} - -@media (max-width: 768px) { - .footer-contact { - font-size: 12px; - } - .footer-text-p { - font-size: 10px; - } -} - - -/* Rolovací tlačítko */ - #scrollToTopBtn { - display: none; - position: fixed; - bottom: 20px; - right: 20px; - /*butoon přes obsah*/ - z-index: 99; - outline: none; - cursor: pointer; - padding: 15px; - border-radius: 50%; - background-color: transparent; \ No newline at end of file diff --git a/lukaskanka/index/socials/index.php b/lukaskanka/index/socials/index.php deleted file mode 100644 index dd9dc69..0000000 --- a/lukaskanka/index/socials/index.php +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - Socials - - - - - - - - -
- - -
- -
- - diff --git a/lukaskanka/index/terminal-space/README.md b/lukaskanka/index/terminal-space/README.md deleted file mode 100644 index cf235f4..0000000 --- a/lukaskanka/index/terminal-space/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# Terminal space -Prozatím nás najdeš na této [doméně](https://lukaskanka.cz/index/terminal-space/index.html), ale už se intenzivně pracuje na vlastní doméně pro Terminal space. -

Vítám Tě na Terminal space!

-

Web je věnován Terminálům konzolím a hlavně aplikacím pro terminály.

-

Najdeš tu tipy, návody, novinky a další obsah ze světa terminálu.

-

Terminal Space prymárně míří na uživatele Linuxu a macOS, ale spousty obsahu budeš moci aplikovat ve Windows.

- diff --git a/lukaskanka/index/terminal-space/colors.css b/lukaskanka/index/terminal-space/colors.css deleted file mode 100644 index 110b1d7..0000000 --- a/lukaskanka/index/terminal-space/colors.css +++ /dev/null @@ -1,14 +0,0 @@ -:root { - --dracula-body-bg: #2a232b; - --dracula-color: #f8f8f2; - --dracula-header-bg: #2a232b; - --dracula-scrollToTopBtn-color: #9fea8a; - --dracula-links-color: #f76b00; - --dracula-nav-bg: #2a232b; - --dracula-nav-links-color: #f76b00; - --dracula-h1-color: #e54472; - --dracula-h2-color: #18f700; - --dracula-solid-bg: #2a232b; - --dracula-solid-color: #f76b00; - --dracula-footer-bg: #2a232b; -} diff --git a/lukaskanka/index/terminal-space/img/config.png b/lukaskanka/index/terminal-space/img/config.png deleted file mode 100644 index 325c9f2..0000000 Binary files a/lukaskanka/index/terminal-space/img/config.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/fzf.png b/lukaskanka/index/terminal-space/img/fzf.png deleted file mode 100644 index 3c0db79..0000000 Binary files a/lukaskanka/index/terminal-space/img/fzf.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/home.png b/lukaskanka/index/terminal-space/img/home.png deleted file mode 100644 index ebe4c7c..0000000 Binary files a/lukaskanka/index/terminal-space/img/home.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/icons8-rocket.gif b/lukaskanka/index/terminal-space/img/icons8-rocket.gif deleted file mode 100644 index c2a91fa..0000000 Binary files a/lukaskanka/index/terminal-space/img/icons8-rocket.gif and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/logo.png b/lukaskanka/index/terminal-space/img/logo.png deleted file mode 100644 index 67a8659..0000000 Binary files a/lukaskanka/index/terminal-space/img/logo.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/terminal-icon.png b/lukaskanka/index/terminal-space/img/terminal-icon.png deleted file mode 100644 index eabe3b3..0000000 Binary files a/lukaskanka/index/terminal-space/img/terminal-icon.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/img/terminal.png b/lukaskanka/index/terminal-space/img/terminal.png deleted file mode 100644 index a3233d7..0000000 Binary files a/lukaskanka/index/terminal-space/img/terminal.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/index.php b/lukaskanka/index/terminal-space/index.php deleted file mode 100644 index b870cb0..0000000 --- a/lukaskanka/index/terminal-space/index.php +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - Terminal space - - - -
-

💾 Terminal space

- - - - -
-
- - -
-
-

Terminal space:

-

Vítám Tě na Terminal space!

-

Web je věnován Terminálům konzolím a hlavně aplikacím pro terminály.

-

Najdeš tu tipy, návody, novinky a další obsah ze světa terminálu.

-

Terminal Space prymárně míří na uživatele Linuxu a macOS, ale spousty obsahu budeš moci aplikovat ve Windows.

-
-
-

Kontakty:

-

- 👉 🚀 ApolloNvim Telegram skupina -

-

- 👉 Osobní web autora 💾 Terminal space -

-

- 👉 Gitea profil -

-

- 👉 GitHub -

-

- - Mastodon -

-
- -
-

Podpora:

-

- 👉 Pokud jakkoliv chcete podpořit nebo se podílet na obsahu a - funkčnosti 💾 Terminal space, prosím budu rád když mi zde napíšete. -

-

👉 Taky můžete tento projekt podpořit pár Satoshi:

- Satoshi -
-
-

Další projekty a odkazy:

-

- 👉 ArchLinux CZ -

-

- 👉 - Vyhledávač SearXNG CZ -

-

- 👉 - EndeavourOS Linux -

-

- 👉 i3 window manager -

-
- - -
- - - - diff --git a/lukaskanka/index/terminal-space/install.php b/lukaskanka/index/terminal-space/install.php deleted file mode 100644 index e967d7a..0000000 --- a/lukaskanka/index/terminal-space/install.php +++ /dev/null @@ -1,303 +0,0 @@ - - - - - - - - - - - - - - - - - ApolloNvim Instalace - - - -
-

🚀ApolloNvim Instalace

- - - - -
-
-
-
-

Instalace a nastavení:

-

- - Vždy se podívej před instalací - nových pluginu, na dokumentaci k - plaginům na Githubu. Předejdeš - tím případným problémům! Pokud - si nejsi jistý postupem nebo ti - není něco jasné, tak raději se - podívej do dokumentace,napiš nám - nebo fórech najdeš odpověď. Také si vždy vše před změnou zálohuj! - -

- -

- 👉 Pokud ještě nemáte nainstalujte si - Neovim. -

-

- 👉 Bude potřeba nainstalovat plug.vim - aby jste mohl/a instalovat rozšíření. -

-

- 👉 Běžte na tuto - stránku - pod Installation si najděte svůj - operační systém a zkopírujte odkaz pod - ním do svého terminálu. -

-

- 👉 Nejprve si však zálohujte své - aktuální nastavení Neovim!!! -

-

👉 Linux & Mac:

-
-

/home/user/.config/nvim/init.vim

-
-

Windows:

-
-

~\AppData\Local\nvim

-
-
-
-

Node.js:

-

- 👉 Doporučuji mít nainstalovaný - Node.js. -

-

- 👉 Dále si v Node.js nainstalujte - Live-server - příkazem: -

-
-

npm i live-server

-
-

- 👉 Ve svém projektu budete moci pouštět - svůj index.html příkazem: -

-
-

npx live-server

-
-

- 👉 Pro správnou funkčnost LSP si - doinstalujte tyto balíčky: -

- -

- vscode-html-langserver -

-

- vscode-css-langserver -

-

- typescript-language-server -

-

- emmet-ls -

-

- eslint -

-

- vtailwindcss-language-server -

-

- marksman -

-

- markdoc-ls -

-
-
-

Neovim:

-

- 👉 Pro instalaci 🚀 ApolloNvim Distra - stačí stáhnout pouze soubor init.vim s - tohoto - repositáře. -

-

- 👉 Uložte ho do kořenováho adresáře - ~/.. /nvim dle tvého - OS. - Nezapomeňte na zálohu - stávajících souborů -

-

- 👉 Neovim pustíte v terminálu příkazem - nvim. -

-

👉 Odklikejte chybová hlášení.

-

- 👉 V Neovimu zadejte do command line - PlugIns , tím - nainstalujete všechny pluginy. - Restartujte Neovim. -

-

- 👉 Pokud Vám některý plugin chybí, - můžete ho lehce doinstalovat nebo naopak - odinstalovat pomocí - plug.vim. Více - informací najdete na GitHubu - plug.vim - nebo velmi rád poradím viz. o nás. -

-

- 👉 Pokud některý plugin nechcete - používat stačí v souboru - init.vim ho - zakomentovat pomocí dvojitých uvozovek - ". -

-

- 👉 Do command line ještě zadejte Coc - příkaz pro doinstalování zbylých - pluginů: -

-
-

- CocInstall coc-todolist - coc-tailwindcss coc-json - coc-html-css-support coc-html - coc-emmet coc-xml coc-tsserver - coc-lsp-wl coc-lit-html - coc-htmldjango coc-css - coc-markdown-preview-enhanced - coc-markdownlint -

-
-

- 👉 A ještě jednou restartujte Neovim a - vše máte připravené. -

-

- 👉 Tuto konfiguraci používám na Linuxu i - MacOS. Je ozkoušena i na Windows 11. -

-
- - - -
- - - diff --git a/lukaskanka/index/terminal-space/kakoune/img/command.png b/lukaskanka/index/terminal-space/kakoune/img/command.png deleted file mode 100644 index 8358f68..0000000 Binary files a/lukaskanka/index/terminal-space/kakoune/img/command.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/kakoune/img/config.png b/lukaskanka/index/terminal-space/kakoune/img/config.png deleted file mode 100644 index e77bec8..0000000 Binary files a/lukaskanka/index/terminal-space/kakoune/img/config.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/kakoune/img/home.png b/lukaskanka/index/terminal-space/kakoune/img/home.png deleted file mode 100644 index 0b3b383..0000000 Binary files a/lukaskanka/index/terminal-space/kakoune/img/home.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/kakoune/img/icons8-rocket.gif b/lukaskanka/index/terminal-space/kakoune/img/icons8-rocket.gif deleted file mode 100644 index c2a91fa..0000000 Binary files a/lukaskanka/index/terminal-space/kakoune/img/icons8-rocket.gif and /dev/null differ diff --git a/lukaskanka/index/terminal-space/kakoune/img/kakoune_logo_full.png b/lukaskanka/index/terminal-space/kakoune/img/kakoune_logo_full.png deleted file mode 100644 index 5e27405..0000000 Binary files a/lukaskanka/index/terminal-space/kakoune/img/kakoune_logo_full.png and /dev/null differ diff --git a/lukaskanka/index/terminal-space/kakoune/index.html b/lukaskanka/index/terminal-space/kakoune/index.html deleted file mode 100644 index 50c84e9..0000000 --- a/lukaskanka/index/terminal-space/kakoune/index.html +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - Kakoune Czech Community - - - -
- - - - - - -
-
- -
1
- - -
-
-

Úvod:

-

- 👉 Kakoune Front-End Power postavený na - LSP. -

-

- 👉 Kakoune je modální editor pro - Linux a - macOS - jako je třeba - Vim či - Neovim. . Z Kakoune - vychází také jeden velmi oblíbený modální editor - Helix-editor. - Jak Kakoune, tak Helix se od Vim a Neovim liší v ovládání, kde je opačná - logika příkazu a je bližší lidské řeči. Nespornou výhodou Kakoune je - oproti Helixu možnost rozšířit aplikaci o pluginy. Proto je - Kakoune vhodný pro zkušenější uživatele. Náš web by Ti měl pomoct s - prvotním nastavením. Pokud si i tak na tento editor netroufáš, Helix je skvělá náhrada. -

-

- 👉 Tato distribuce nefunguje tak, že jen klikneš na tlačítko a nainstaluje - se. Vede Tě k samostatné instalaci pomocí tohoto webu. Cílem je - pochopit, jak Kakoune funguje, abyste si mohli sami vše modifikovat. -

-

- 👉 Toto nastavení je primárně pro vývoj webu, ale není problém si vše - přizpůsobit. Inspiroval jsem se pluginy, které jsem využíval ve VSCode a - Webstorm. -

-

👉 Velký důraz je kladen na rychlost a lehkost.

-

👉 Tento blog je stále ve vývoji a postupně se na něm pracuje.

-

- 👉 Pro nejlepší zážitek s Kakoune doporučuji používat multiplexor - Zellij , ale není to samozřejmě - podmínkou. -

-
-
-

Přednosti:

-

- 👉 Hlavní předností tohoto nastavení jsou AutoSave, - doplňování HTML, CSS, JS a zkratky k zakomentování a odkomentování - kódu. Taky je zde několik pluginu pro příjemnější práci v Kakoune. -

-

- 👉 LSP se - mi velmi osvědčilo v modálním editoru - Helix-editor. - Mou konfiguraci Helixu najdete - zde. -

-

- 👉 Ta nejlepší témata v Kakoune nemusíš hledat, najdeš je po instalaci. Defaultně je - v naší konfiguraci nastaveno gruvbox-dark. -

-

- 👉 Témá v Kakoune si jednoduše změníš v command line příkazem - `colorscheme` a tlačítkem Tab se budeš přepínat mezi jednotlivými - tématy. Command mode, česky příkazový mód, vyvoláš zkratkou Ctrl + : . -

-
-
- Homescreen - Zellij - Command -
-
-

Instalace a nastavení:

-

- 👉 Pokud ještě nemáš, nainstaluj si, - Kakoune. -

-

👉 Nejprve si zálohuj své aktuální nastavení Kakoune!!!

-

👉 Linux & Mac:

-
-

~/.config/kak/kakrc

-
-

👉 Aby Kakoune dobře komunikoval s LSP, je potřeba mít nainstalovaný Rust.

-
-
-

Node.js:

-

- 👉 Doporučuji mít nainstalovaný - Node.js. -

-

👉 Pro správnou funkčnost LSP si doinstaluj tyto balíčky:

-

vscode-html-language-server

-

vscode-css-language-server

-

typescript-language-server -

-

emmet-ls

-

tailwindcss-language-server -

-

marksman

-

markdoc-ls

-

👉 A také si doinstaluj tento server pro správnou funkčnost HTML v LSP příkazem:

-
-

npm install -g vscode-{html,css,json}-languageserver-bin

-
-

- 👉 Dále si v Node.js nainstaluj - Live-server. -

-

- 👉 Platí v případě, že chceš dělat front-end nebo programuješ v - Javascriptu. -

-

👉 Ve svém projektu budeš moci pouštět index.html příkazem:

-
-

npx live-server

-
-

👉 Všechny servery, co si můžeš pomocí LSP nainstalovat, najdeš zde.

-
-
-

Kakoune:

-

- 👉 Pro instalaci Kakoune Front-End Power Ti stačí stáhnout pouze soubor - kakrc z tohoto repozitáře . -

-

- 👉 Ulož ho do kořenováho adresáře ~/.config/kak/. Nezapomeň na zálohu stávajících - souborů, pokud máš i své configy. -

-

👉 Kakoune pustíš v terminálu příkazem kak.

-

- 👉 V Kakoune zadej do command line plug-install, tím - nainstaluješ všechny pluginy. Restartuj Kakoune. -

-

- 👉 Pokud Ti některý plugin chybí, můžeš ho lehce doinstalovat nebo - naopak odinstalovat. Více informací - najdeš v Kakoune - dokumentaci - nebo velmi Ti rád poradím viz. Kontakty. -

-

- 👉 Pokud některý plugin nechceš používat, stačí ho v souboru - kakrc zakomentovat pomocí hastagu - #. -

-

- 👉 Tuto konfiguraci používám na Linuxu i macOS.

-
-
-

Plán Kakoune Front-End Power:

-

- 👉 Do budoucna můžeš očekávat tyto nové funkce a další novinky: -

-

- 👉 Web na vlastní doméně. Zatím Kakoune Front-End Power najdeš - zde. -

-

👉 Nové pluginy.

-

- 👉 Návody k pluginům, jak nastavit a jak s nimi pracovat. -

-

👉 Návody k práci s Kakoune.

-
-
-

Výběr pluginu v Kakoune Front-End Power:

-

- 👉 plug.kak nejduležitější plugin, aby bylo možné instalovat další pluginy.

-

- 👉 kakoune-lsp -

-

- 👉 luar rozšíří možnost instalovat pluginy napsané v jazyce Lua.

-

- 👉 byline.kak vybere celý řádek pomocí klávesy x jako v Helix-editoru.

-

- 👉 auto-pairs automaticky doplní závorky.

-

- 👉 fzf.kak rychlé asynchronní vyhledávaní souborů.

-
-
-

Otázky a odpovědi:

-

👉 Kolik Kakoune stojí? -> Nic, Kakoune je zdarma.

-
-
-

Kontakty:

-

- 👉 Kakoune community Telegram skupina -

-

- 👉 Osobní web autora -

-

- 👉 Gitea profil -

-

- 👉 GitHub -

-

- 👉 - Nostr -

-

- 👉 Mastodon -

-
-
-

Podpora:

-

- 👉 Pokud mě chceš podpořit nebo se podílet na obsahu tohoto webu, budu rád, když mi napíšeš. -

-

👉 Taky můžeš tento projekt podpořit pár Satoshi:

- Satoshi -
-
-

Další projekty a odkazy:

-

- 👉 ArchLinux CZ -

-

- 👉 - Vyhledávač SearXNG CZ -

-

- 👉 - EndeavourOS Linux -

-

- 👉 i3 window manager -

-
-
- - - - - - - \ No newline at end of file diff --git a/lukaskanka/index/terminal-space/kakoune/script.js b/lukaskanka/index/terminal-space/kakoune/script.js deleted file mode 100644 index c93949e..0000000 --- a/lukaskanka/index/terminal-space/kakoune/script.js +++ /dev/null @@ -1,155 +0,0 @@ -//Navbar menu -const menuIcon = document.querySelector(".menu-icon"); -const menuList = document.querySelector("nav"); -const hamburgerIcon = document.querySelector(".fa-solid"); - -menuIcon.addEventListener("click", () => { - if (hamburgerIcon.classList[1] === "fa-bars") { - hamburgerIcon.classList.add("fa-xmark"); - hamburgerIcon.classList.remove("fa-bars"); - menuList.style.display = "block"; - } else { - hamburgerIcon.classList.add("fa-bars"); - hamburgerIcon.classList.remove("fa-xmark"); - menuList.style.display = "none"; - } -}); - -// Dark / Light Mode - -const body = document.querySelector("body"); -const head = document.querySelector("header"); -const links = document.querySelectorAll("a"); -const nav = document.querySelector(".navigation"); -const h1 = document.querySelector("h1"); -const nadpish2 = document.querySelectorAll("h2"); -const p = document.querySelector("p"); -const solid = document.querySelector(".fa-solid"); -const solid1 = document.querySelector(".menu-icon"); -const footer = document.querySelector("footer"); -const gotop = document.querySelector("#scrollToTopBtn"); -const theme = document.querySelector("#toggleButton"); -const box = document.querySelectorAll(".code-box"); -let isDraculaMode = false; - -// Funkce pro nastavení stylů pro Dracula mód -function setDraculaStyles() { - body.style.backgroundColor = "#2a232b"; - body.style.color = "#f8f8f2"; - head.style.backgroundColor = "#2a232b"; - theme.style.color = "#9fea8a"; - gotop.style.color = "#9fea8a"; - links.forEach((a) => { - a.style.color = "#f76b00"; - }); - nav.style.backgroundColor = "#2a232b"; - h1.style.color = "#e54472"; - nadpish2.forEach((h2) => { - h2.style.color = "#18f700"; - }); - solid.style.backgroundColor = "#2a232b"; - solid.style.color = "#f76b00"; - solid1.style.backgroundColor = "#2a232b"; - footer.style.backgroundColor = "#2a232b"; - //gotop.style.backgroundColor = "#18f700"; - //theme.style.backgroundColor = "#18f700"; -} - -// Funkce pro nastavení stylů pro Light mód; -function setKakouneStyles() { - body.style.backgroundColor = "#9fea8a"; - body.style.color = "#282a36"; - h1.style.color = "#e84046"; - theme.style.color = "#2a232b"; - links.forEach((a) => { - a.style.color = "#ea3838"; - }); - gotop.style.color = "#2a232b"; - head.style.backgroundColor = "#9fea8a"; - nav.style.backgroundColor = "#9fea8a"; - solid.style.backgroundColor = "#9fea8a"; - solid1.style.backgroundColor = "#9fea8a"; - footer.style.backgroundColor = "#9fea8a"; - nadpish2.forEach((h2) => { - h2.style.color = "#1909f4"; - }); - //gotop.style.backgroundColor = "#a7e6ef"; - //theme.style.backgroundColor = "#a7e6ef"; - box.forEach((p) => { - p.style.color = "white"; - }); -} - -// Funkce pro přepnutí módu -function toggleMode() { - if (isDraculaMode) { - // Pokud je momentálně v Dracula modu, přepnout na Light mód - setKakouneStyles(); - isDraculaMode = false; - } else { - // Pokud je momentálně v Light modu, přepnout na Dracula mód - setDraculaStyles(); - isDraculaMode = true; - } -} - -// Funkce na změnu stylů -document.getElementById("toggleButton").addEventListener("click", toggleMode); - -// Nastavení - výchozí styl na Dark -setKakouneStyles(); -isDraculaMode = true; - -// Photo Gallery -> section (zoom) -const image1 = document.querySelector(".picture"); - -image1.addEventListener("mouseenter", () => { - image1.style.transform = "scale(2.2)"; -}); - -image1.addEventListener("mouseleave", () => { - image1.style.transform = "scale(1)"; -}); - -const image2 = document.querySelector(".picture1"); - -image2.addEventListener("mouseenter", () => { - image2.style.transform = "scale(2.2)"; -}); - -image2.addEventListener("mouseleave", () => { - image2.style.transform = "scale(1)"; -}); - -const image3 = document.querySelector(".picture2"); - -image3.addEventListener("mouseenter", () => { - image3.style.transform = "scale(2.2)"; -}); - -image3.addEventListener("mouseleave", () => { - image3.style.transform = "scale(1)"; -}); - -// Tlačítko go to top -// Zobrazení tlačítka od rolovaní části stránky (víc logické než až na konci) -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - document.getElementById("scrollToTopBtn").style.display = "block"; - } else { - document.getElementById("scrollToTopBtn").style.display = "none"; - } -} - -// Posunout nahoru, když uživatel klikne na tlačítko -function scrollToTop() { - document.body.scrollTop = 0; // Pro Safari - document.documentElement.scrollTop = 0; // Pro ostatní prohlížeče -} - -// test smazat -const test = document.querySelector(".test"); diff --git a/lukaskanka/index/terminal-space/kakoune/style.css b/lukaskanka/index/terminal-space/kakoune/style.css deleted file mode 100644 index f4b024e..0000000 --- a/lukaskanka/index/terminal-space/kakoune/style.css +++ /dev/null @@ -1,212 +0,0 @@ -* { - margin: 0; - - padding: 0; - - box-sizing: border-box; -} -body { - max-width: 1000px; - margin: 0 auto; - font-family: "Ubuntu", sans-serif; -} - -/*Header */ - -h1 { - padding-left: 8px; -} - -header { - margin-top: 25px; - display: flex; - align-items: center; - height: 70px; - flex-direction: row; - /*position: fixed;*/ -} - -.title { - padding-top: 25px; -} - -.logo { - flex-grow: 1; - display: flex; -} - -.logo img { - /*width: 100px;*/ - height: 100px; - padding-top: 15px; - margin-left: 20px; -} - -/* navigation */ -nav { - margin-right: 30px; -} - -nav li { - display: inline-block; - list-style-type: none; - margin-right: 20px; -} - -nav li a { - text-decoration: none; - color: black; -} - -/* navigation icons */ - -.menu-icon { - display: none; - margin-right: 30px; -} - -/*Dark/Light mode button*/ -#toggleButton { - float: right; - margin-right: 30px; - margin-top: 10px; - padding: 5px; -} - -#toggleButton { - bottom: 20px; - right: 20px; - border: none; - outline: none; - background-color: transparent; - font-size: 34px; - cursor: pointer; -} - -/*Header small display*/ -@media (max-width: 600px) { - body { - padding: 10px; - } - - header { - position: relative; - } - header nav { - position: absolute; - top: 70px; - width: 100%; - display: none; - } - - .menu-icon { - display: block; - font-size: 23px; - } - - header nav li { - display: block !important; - text-align: center; - margin-top: 10px; - margin-bottom: 10px; - } - - hr { - display: none; - } -} - -/* Sekce */ - -.content { - text-align: center; -} - -.welcome { - padding-top: 115px; - padding-bottom: 50px; -} - -#install { - padding-top: 50px; -} - -#node { - padding-top: 50px; - padding-bottom: 50px; -} - -#plans { - padding-top: 50px; - padding-bottom: 50px; -} - - -#contact { - padding-top: 50px; - padding-bottom: 50px; -} - -#other { - padding-top: 50px; -} - -/*Code box*/ -.code-box { - background-color: #353535; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-family: monospace; - max-width: 400px; - margin: 0 auto; -} - -/*Picture settings*/ - -.sat { - width: 175px; - height: 175px; -} - -.photo { - text-align: center; - padding-top: 50px; -} -.photo img { - width: 300px; - height: 200px; - margin: 10px; - transition: all 0.5s linear; -} -/*footer pevná pozice*/ - -footer { - bottom: 0; - margin-bottom: 10px; - margin-left: 25px; - margin-top: 20px; -} - -footer a { - text-decoration: none; -} - -#scrollToTopBtn { - display: none; - position: fixed; - bottom: 20px; - right: 20px; - /*butoon přes obsah*/ - z-index: 99; - outline: none; - cursor: pointer; - padding: 15px; - border-radius: 50%; - background-color: transparent; -} - -/* Styl pro ikonu */ -#scrollToTopBtn i { - font-size: 34px; -} diff --git a/lukaskanka/index/terminal-space/news.php b/lukaskanka/index/terminal-space/news.php deleted file mode 100644 index 8472a05..0000000 --- a/lukaskanka/index/terminal-space/news.php +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - Terminal space - Novinky - - - -
-

💾 Terminal space - Novinky

- - - - -
-
- - -
-
-
-

Vyšla nová verze AstoNvim

-01.04.2024 -

AstroNvim je distribuce Neovimu beznutnosti další konfigurace.

-

Na nové verzi se pracovalo 10 měsíců a 2 měsíce trvalo veřejné beta testování.

-
-
-

Vyšla nová verze Helix-editoru 24.03

-01.04.2024 -

Před několika málo dny vyšla nová verze postmoderního modálního editoru Helix.

-

Helix-editor je napsán v Rustu a běží v terminálech na všech OS.

Nová verze obsahuje přes 150 vylepšení, na jejich seznam se můžete podívat pod tímto odkazem.

-
- - -
- - - - diff --git a/lukaskanka/index/terminal-space/script.js b/lukaskanka/index/terminal-space/script.js deleted file mode 100644 index a7ed4a0..0000000 --- a/lukaskanka/index/terminal-space/script.js +++ /dev/null @@ -1,149 +0,0 @@ -//Navbar menu -const menuIcon = document.querySelector(".menu-icon"); -const menuList = document.querySelector("nav"); -const hamburgerIcon = document.querySelector(".fa-solid"); - -menuIcon.addEventListener("click", () => { - if (hamburgerIcon.classList[1] === "fa-bars") { - hamburgerIcon.classList.add("fa-xmark"); - hamburgerIcon.classList.remove("fa-bars"); - menuList.style.display = "block"; - } else { - hamburgerIcon.classList.add("fa-bars"); - hamburgerIcon.classList.remove("fa-xmark"); - menuList.style.display = "none"; - } -}); - -// Dark / Light Mode -/* -const body = document.querySelector("body"); -const head = document.querySelector("header"); -const links = document.querySelectorAll("a"); -const nav = document.querySelector(".navigation"); -const h1 = document.querySelector("h1"); -const nadpish2 = document.querySelectorAll("h2"); -const p = document.querySelector("p"); -const solid = document.querySelector(".fa-solid"); -const solid1 = document.querySelector(".menu-icon"); -const footer = document.querySelector("footer"); -const gotop = document.querySelector("#scrollToTopBtn"); -const theme = document.querySelector("#toggleButton"); -const box = document.querySelectorAll(".code-box"); -let isDraculaMode = false; - -// Funkce pro nastavení stylů pro Dracula mód -function setDraculaStyles() { - body.style.backgroundColor = "#2a232b"; - body.style.color = "#f8f8f2"; - head.style.backgroundColor = "#2a232b"; - theme.style.color = "#e7efa7"; - gotop.style.color = "#e7efa7"; - links.forEach((a) => { - a.style.color = "#f76b00"; - }); - nav.style.backgroundColor = "#2a232b"; - h1.style.color = "#e54472"; - nadpish2.forEach((h2) => { - h2.style.color = "#18f700"; - }); - solid.style.backgroundColor = "#2a232b"; - solid.style.color = "#f76b00"; - solid1.style.backgroundColor = "#2a232b"; - footer.style.backgroundColor = "#2a232b"; - //gotop.style.backgroundColor = "#18f700"; - //theme.style.backgroundColor = "#18f700"; -} - -// Funkce pro nastavení stylů pro Light mód; -function setLightStyles() { - body.style.backgroundColor = "#e7efa7"; - body.style.color = "#282a36"; - theme.style.color = "#2a232b"; -gotop.style.color = "#2a232b"; - head.style.backgroundColor = "#e7efa7"; - nav.style.backgroundColor = "#e7efa7"; - solid.style.backgroundColor = "#e7efa7"; - solid1.style.backgroundColor = "#e7efa7"; - footer.style.backgroundColor = "#e7efa7"; - nadpish2.forEach((h2) => { - h2.style.color = "#c627d8"; - }); - //gotop.style.backgroundColor = "#a7e6ef"; - //theme.style.backgroundColor = "#a7e6ef"; - box.forEach((p) => { - p.style.color = "white"; - }); -} - -// Funkce pro přepnutí módu -function toggleMode() { - if (isDraculaMode) { - // Pokud je momentálně v Dracula modu, přepnout na Light mód - setLightStyles(); - isDraculaMode = false; - } else { - // Pokud je momentálně v Light modu, přepnout na Dracula mód - setDraculaStyles(); - isDraculaMode = true; - } -} - -// Funkce na změnu stylů -document.getElementById("toggleButton").addEventListener("click", toggleMode); - -// Nastavení - výchozí styl na Dark -setDraculaStyles(); -isDraculaMode = true; -*/ - -// Photo Gallery -> section (zoom) -const image1 = document.querySelector(".picture"); - -image1.addEventListener("mouseenter", () => { - image1.style.transform = "scale(2.2)"; -}); - -image1.addEventListener("mouseleave", () => { - image1.style.transform = "scale(1)"; -}); - -const image2 = document.querySelector(".picture1"); - -image2.addEventListener("mouseenter", () => { - image2.style.transform = "scale(2.2)"; -}); - -image2.addEventListener("mouseleave", () => { - image2.style.transform = "scale(1)"; -}); - -const image3 = document.querySelector(".picture2"); - -image3.addEventListener("mouseenter", () => { - image3.style.transform = "scale(2.2)"; -}); - -image3.addEventListener("mouseleave", () => { - image3.style.transform = "scale(1)"; -}); - -// Tlačítko go to top -// Zobrazení tlačítka od rolovaní části stránky (víc logické než až na konci) -window.onscroll = function () { - scrollFunction(); -}; - -function scrollFunction() { - if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) { - document.getElementById("scrollToTopBtn").style.display = "block"; - } else { - document.getElementById("scrollToTopBtn").style.display = "none"; - } -} - -// Posunout nahoru, když uživatel klikne na tlačítko -function scrollToTop() { - document.body.scrollTop = 0; // Pro Safari - document.documentElement.scrollTop = 0; // Pro ostatní prohlížeče -} diff --git a/lukaskanka/index/terminal-space/style.css b/lukaskanka/index/terminal-space/style.css deleted file mode 100644 index 78b5441..0000000 --- a/lukaskanka/index/terminal-space/style.css +++ /dev/null @@ -1,239 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap"); -@import url("colors.css"); - -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} -body { - max-width: 1000px; - margin: 0 auto; - font-family: "Ubuntu", sans-serif; - background-color: var(--dracula-body-bg); - color: var(--dracula-color); -} - -/*Header */ - -h1 { - padding-left: 8px; -} - -header { - margin-top: 25px; - display: flex; - align-items: center; - height: 70px; - flex-direction: row; - /*position: fixed;*/ - background-color: var(--dracula-header-bg); -} - -a { - color: var(--dracula-links-color); -} -.title { - padding-top: 25px; -} - -.title { - flex-grow: 1; - display: flex; -} - -/* navigation */ -nav { - margin-right: 30px; -} - -nav li { - display: inline-block; - list-style-type: none; - margin-right: 20px; -} - -nav li a { - text-decoration: none; - color: var(--dracula-nav-links-color); -} - -.navigation { - background-color: var(--dracula-nav-bg); -} - -h1 { - color: var(--dracula-h1-color); -} - -h2 { - color: var(--dracula-h2-color); -} - -.fa-solid { - background-color: var(--dracula-solid-bg); - color: var(--dracula-solid-color); -} -/* navigation icons */ - -.menu-icon { - display: none; - margin-right: 30px; -} - -/*Header small display*/ -@media (max-width: 600px) { - body { - padding: 10px; - } - - header { - position: relative; - } - header nav { - position: absolute; - top: 70px; - width: 100%; - display: none; - } - - .menu-icon { - display: block; - font-size: 23px; - } - - header nav li { - display: block !important; - text-align: center; - margin-top: 10px; - margin-bottom: 10px; - } -} - -/* Sekce */ - -.content { - text-align: center; -} - -#welcome { - padding-top: 50px; - padding-bottom: 50px; -} - -#install { - padding-top: 50px; -} - -#node { - padding-top: 50px; - padding-bottom: 50px; -} - -#apollo { - padding-top: 50px; - padding-bottom: 50px; -} - -#coc { - padding-top: 50px; - padding-bottom: 50px; -} - -#contact { - padding-top: 50px; - padding-bottom: 50px; -} - -#plugin { - padding-top: 50px; -} - -#other { - padding-top: 50px; -} - - -/*Code box*/ -.code-box { - background-color: #353535; - padding: 10px; - border: 1px solid #ccc; - border-radius: 5px; - font-family: monospace; - max-width: 500px; - margin: 0 auto; - margin-top: 10px; - margin-bottom: 10px; -} - -/*Picture settings*/ - -.sat { - width: 175px; - height: 175px; -} - -.photo { - text-align: center; - padding-top: 50px; -} -.photo img { - width: 300px; - height: 200px; - margin: 10px; - transition: all 0.5s linear; -} -/*footer pevná pozice*/ - -footer { - bottom: 0; - margin-bottom: 10px; - margin-left: 25px; - margin-top: 20px; -} - -footer a { - text-decoration: none; -} - -#scrollToTopBtn { - display: none; - position: fixed; - bottom: 20px; - right: 20px; - /*butoon přes obsah*/ - z-index: 99; - outline: none; - cursor: pointer; - padding: 15px; - border-radius: 50%; - background-color: transparent; - color: var(--dracula-scrollToTopBtn-color); -} - -/* Styl pro ikonu */ -#scrollToTopBtn i { - font-size: 34px; -} - - -/*Instalace*/ - -.list ul { -list-style-type: none; -} - -.list { - padding-top: 50px; - padding-bottom: 50px; -} - -#plug-vim { - padding-top: 50px; - padding-bottom: 50px; -} - -.h2-install { - padding-bottom: 15px; -} diff --git a/lukaskanka/index/tools/index.php b/lukaskanka/index/tools/index.php deleted file mode 100644 index 109ae71..0000000 --- a/lukaskanka/index/tools/index.php +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - Nástroje - - - - - - - - - - -
-

Software se kterým nejčastěji pracuji

- -
-
-

Helix

-

- Helix je - postmoderní modální editor. -

-

- Název postmoderní získal z důvodu: Jestliže je - Neovim moderní Vim, - pak je Helix postmoderní. -

-

- Od již zmiňovaného Neovimu ho odlišuje spousty věcí i když koncept - modálního editoru sdílí oba dva. Oba editory podporují LSP, ale - Helix už nepodporuje pluginy tak není tak rošiřitelný jako Neovim. - Dokonce mají oba jiné klávesové zkratky a obrácenou logigu příkazu, - v Helixu vyberete objekt a pak vykonáte příkaz Neovim to má opačně. - Helix je skvělým nástrojem pro nováčky v modálních editorech, ale - náročný uživatel bez možnosti pluginů nebude asi zcela spokojený. Já - jsem i přes jeho nevýhody oproti Neovim na něj přešel jelikož jeho - výhody jsou pro mě větší důvod ho používat. Určitě stojí za - ozkoušení a třeba i vy si ho oblíbíte jako já. -

-

- Můj setup na vývoj frontend si můžeš prohlédnout na mé - Gitea. -

-

- Na mém - Blogu na - témá Helix najdeš více informací či mé - Digitální zahradě - a - Dev.to profilu. -

-
- -
-

Obsidian

-

- Obsidian markdown - editor pro ty nejnáročnější. -

-

- Další softwar bez kterého se neobejdu je textový editor. Velmi jsem - si oblíbil formát Markdown a začal jsem zkoušet velké množství - editorů a nakonec jsem zůstal u Obsidianu. Je možné ho rozšířit - pluginy a jeho největší výhodouje, vaše data zůstávají u vás - narozdíl od jiných textových editorů. -

-

- Pokud se chceš o Obsidianu dozvědět více, pod odkazem najdeš další - materiály k - Obsidianu. -

-
-
- -
-

Neovim

-

- Modální editor Neovim - je jeden z mých oblíbených editorů. Tento editor jsem už dlouhou dobu - používal před Helixem, oproti Helixu má mnohem strmější křivku učení. - Jeho největší výhodou je spousta pluginu a možnost si ho přizbůsobit - dle sebe. Jeho hlavní nevýhoda je, nezkušený uživatel si ho může lehce - rozbí. -

-

- Na moje nastavení Neovimu se můžeš podívat na mé - Gitea. -

-
- -
Copyright © Lukáš Kaňka 2024
-
- - diff --git a/lukaskanka/package.json b/lukaskanka/package.json deleted file mode 100644 index 969c078..0000000 --- a/lukaskanka/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "lint-staged": { - "**/*": "prettier --write --ignore-unknown" - }, - "devDependencies": { - "eslint-config-prettier": "^8.10.0", - "husky": "^8.0.3", - "lint-staged": "^13.3.0", - "prettier": "2.8.4" - }, - "dependencies": { - "eslint": "^8.54.0" - }, - "scripts": { - "prepare": "husky install" - } -} diff --git a/lukaskanka/pnpm-lock.yaml b/lukaskanka/pnpm-lock.yaml deleted file mode 100644 index 434c812..0000000 --- a/lukaskanka/pnpm-lock.yaml +++ /dev/null @@ -1,1336 +0,0 @@ -lockfileVersion: "6.0" - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - eslint: - specifier: ^8.54.0 - version: 8.54.0 - -devDependencies: - eslint-config-prettier: - specifier: ^8.10.0 - version: 8.10.0(eslint@8.54.0) - husky: - specifier: ^8.0.3 - version: 8.0.3 - lint-staged: - specifier: ^13.3.0 - version: 13.3.0 - prettier: - specifier: 2.8.4 - version: 2.8.4 - -packages: - /@aashutoshrathi/word-wrap@1.2.6: - resolution: - { - integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==, - } - engines: { node: ">=0.10.0" } - - /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): - resolution: - { - integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.54.0 - eslint-visitor-keys: 3.4.3 - - /@eslint-community/regexpp@4.10.0: - resolution: - { - integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==, - } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - - /@eslint/eslintrc@2.1.3: - resolution: - { - integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.23.0 - ignore: 5.3.0 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - /@eslint/js@8.54.0: - resolution: - { - integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - - /@humanwhocodes/config-array@0.11.13: - resolution: - { - integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==, - } - engines: { node: ">=10.10.0" } - dependencies: - "@humanwhocodes/object-schema": 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - /@humanwhocodes/module-importer@1.0.1: - resolution: - { - integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==, - } - engines: { node: ">=12.22" } - - /@humanwhocodes/object-schema@2.0.1: - resolution: - { - integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==, - } - - /@nodelib/fs.scandir@2.1.5: - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: { node: ">= 8" } - dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: 1.2.0 - - /@nodelib/fs.stat@2.0.5: - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: { node: ">= 8" } - - /@nodelib/fs.walk@1.2.8: - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: { node: ">= 8" } - dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: 1.15.0 - - /@ungap/structured-clone@1.2.0: - resolution: - { - integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==, - } - - /acorn-jsx@5.3.2(acorn@8.11.2): - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.2 - - /acorn@8.11.2: - resolution: - { - integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==, - } - engines: { node: ">=0.4.0" } - hasBin: true - - /ajv@6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - - /ansi-escapes@5.0.0: - resolution: - { - integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, - } - engines: { node: ">=12" } - dependencies: - type-fest: 1.4.0 - dev: true - - /ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: ">=8" } - - /ansi-regex@6.0.1: - resolution: - { - integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==, - } - engines: { node: ">=12" } - dev: true - - /ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: ">=8" } - dependencies: - color-convert: 2.0.1 - - /ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: ">=12" } - dev: true - - /argparse@2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, - } - - /balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } - - /brace-expansion@1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, - } - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - /braces@3.0.2: - resolution: - { - integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, - } - engines: { node: ">=8" } - dependencies: - fill-range: 7.0.1 - dev: true - - /callsites@3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: { node: ">=6" } - - /chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: ">=10" } - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - - /chalk@5.3.0: - resolution: - { - integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - dev: true - - /cli-cursor@4.0.0: - resolution: - { - integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - restore-cursor: 4.0.0 - dev: true - - /cli-truncate@3.1.0: - resolution: - { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - slice-ansi: 5.0.0 - string-width: 5.1.2 - dev: true - - /color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: ">=7.0.0" } - dependencies: - color-name: 1.1.4 - - /color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } - - /colorette@2.0.20: - resolution: - { - integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, - } - dev: true - - /commander@11.0.0: - resolution: - { - integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, - } - engines: { node: ">=16" } - dev: true - - /concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } - - /cross-spawn@7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: ">= 8" } - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - - /debug@4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: { node: ">=6.0" } - peerDependencies: - supports-color: "*" - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /deep-is@0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - } - - /doctrine@3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - } - engines: { node: ">=6.0.0" } - dependencies: - esutils: 2.0.3 - - /eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } - dev: true - - /emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } - dev: true - - /escape-string-regexp@4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: { node: ">=10" } - - /eslint-config-prettier@8.10.0(eslint@8.54.0): - resolution: - { - integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==, - } - hasBin: true - peerDependencies: - eslint: ">=7.0.0" - dependencies: - eslint: 8.54.0 - dev: true - - /eslint-scope@7.2.2: - resolution: - { - integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - /eslint-visitor-keys@3.4.3: - resolution: - { - integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - - /eslint@8.54.0: - resolution: - { - integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - hasBin: true - dependencies: - "@eslint-community/eslint-utils": 4.4.0(eslint@8.54.0) - "@eslint-community/regexpp": 4.10.0 - "@eslint/eslintrc": 2.1.3 - "@eslint/js": 8.54.0 - "@humanwhocodes/config-array": 0.11.13 - "@humanwhocodes/module-importer": 1.0.1 - "@nodelib/fs.walk": 1.2.8 - "@ungap/structured-clone": 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.23.0 - graphemer: 1.4.0 - ignore: 5.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - - /espree@9.6.1: - resolution: - { - integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - dependencies: - acorn: 8.11.2 - acorn-jsx: 5.3.2(acorn@8.11.2) - eslint-visitor-keys: 3.4.3 - - /esquery@1.5.0: - resolution: - { - integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==, - } - engines: { node: ">=0.10" } - dependencies: - estraverse: 5.3.0 - - /esrecurse@4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - } - engines: { node: ">=4.0" } - dependencies: - estraverse: 5.3.0 - - /estraverse@5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - } - engines: { node: ">=4.0" } - - /esutils@2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: { node: ">=0.10.0" } - - /eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, - } - dev: true - - /execa@7.2.0: - resolution: - { - integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, - } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 4.3.1 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 3.0.7 - strip-final-newline: 3.0.0 - dev: true - - /fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } - - /fast-json-stable-stringify@2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - } - - /fast-levenshtein@2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - } - - /fastq@1.15.0: - resolution: - { - integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, - } - dependencies: - reusify: 1.0.4 - - /file-entry-cache@6.0.1: - resolution: - { - integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - flat-cache: 3.2.0 - - /fill-range@7.0.1: - resolution: - { - integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, - } - engines: { node: ">=8" } - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: { node: ">=10" } - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - - /flat-cache@3.2.0: - resolution: - { - integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==, - } - engines: { node: ^10.12.0 || >=12.0.0 } - dependencies: - flatted: 3.2.9 - keyv: 4.5.4 - rimraf: 3.0.2 - - /flatted@3.2.9: - resolution: - { - integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==, - } - - /fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } - - /get-stream@6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: ">=10" } - dev: true - - /glob-parent@6.0.2: - resolution: - { - integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==, - } - engines: { node: ">=10.13.0" } - dependencies: - is-glob: 4.0.3 - - /glob@7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - } - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - - /globals@13.23.0: - resolution: - { - integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==, - } - engines: { node: ">=8" } - dependencies: - type-fest: 0.20.2 - - /graphemer@1.4.0: - resolution: - { - integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==, - } - - /has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: ">=8" } - - /human-signals@4.3.1: - resolution: - { - integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, - } - engines: { node: ">=14.18.0" } - dev: true - - /husky@8.0.3: - resolution: - { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, - } - engines: { node: ">=14" } - hasBin: true - dev: true - - /ignore@5.3.0: - resolution: - { - integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==, - } - engines: { node: ">= 4" } - - /import-fresh@3.3.0: - resolution: - { - integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, - } - engines: { node: ">=6" } - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - /imurmurhash@0.1.4: - resolution: - { - integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==, - } - engines: { node: ">=0.8.19" } - - /inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - - /inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } - - /is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: ">=0.10.0" } - - /is-fullwidth-code-point@4.0.0: - resolution: - { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, - } - engines: { node: ">=12" } - dev: true - - /is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: ">=0.10.0" } - dependencies: - is-extglob: 2.1.1 - - /is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: ">=0.12.0" } - dev: true - - /is-path-inside@3.0.3: - resolution: - { - integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, - } - engines: { node: ">=8" } - - /is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dev: true - - /isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } - - /js-yaml@4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, - } - hasBin: true - dependencies: - argparse: 2.0.1 - - /json-buffer@3.0.1: - resolution: - { - integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==, - } - - /json-schema-traverse@0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - } - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: - { - integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==, - } - - /keyv@4.5.4: - resolution: - { - integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==, - } - dependencies: - json-buffer: 3.0.1 - - /levn@0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /lilconfig@2.1.0: - resolution: - { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, - } - engines: { node: ">=10" } - dev: true - - /lint-staged@13.3.0: - resolution: - { - integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==, - } - engines: { node: ^16.14.0 || >=18.0.0 } - hasBin: true - dependencies: - chalk: 5.3.0 - commander: 11.0.0 - debug: 4.3.4 - execa: 7.2.0 - lilconfig: 2.1.0 - listr2: 6.6.1 - micromatch: 4.0.5 - pidtree: 0.6.0 - string-argv: 0.3.2 - yaml: 2.3.1 - transitivePeerDependencies: - - enquirer - - supports-color - dev: true - - /listr2@6.6.1: - resolution: - { - integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, - } - engines: { node: ">=16.0.0" } - peerDependencies: - enquirer: ">= 2.3.0 < 3" - peerDependenciesMeta: - enquirer: - optional: true - dependencies: - cli-truncate: 3.1.0 - colorette: 2.0.20 - eventemitter3: 5.0.1 - log-update: 5.0.1 - rfdc: 1.3.0 - wrap-ansi: 8.1.0 - dev: true - - /locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: { node: ">=10" } - dependencies: - p-locate: 5.0.0 - - /lodash.merge@4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } - - /log-update@5.0.1: - resolution: - { - integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - ansi-escapes: 5.0.0 - cli-cursor: 4.0.0 - slice-ansi: 5.0.0 - strip-ansi: 7.1.0 - wrap-ansi: 8.1.0 - dev: true - - /merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } - dev: true - - /micromatch@4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - } - engines: { node: ">=8.6" } - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: ">=6" } - dev: true - - /mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: ">=12" } - dev: true - - /minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } - dependencies: - brace-expansion: 1.1.11 - - /ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } - - /natural-compare@1.4.0: - resolution: - { - integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, - } - - /npm-run-path@5.1.0: - resolution: - { - integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - path-key: 4.0.0 - dev: true - - /once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } - dependencies: - wrappy: 1.0.2 - - /onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: ">=6" } - dependencies: - mimic-fn: 2.1.0 - dev: true - - /onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: ">=12" } - dependencies: - mimic-fn: 4.0.0 - dev: true - - /optionator@0.9.3: - resolution: - { - integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==, - } - engines: { node: ">= 0.8.0" } - dependencies: - "@aashutoshrathi/word-wrap": 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - - /p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: { node: ">=10" } - dependencies: - yocto-queue: 0.1.0 - - /p-locate@5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: { node: ">=10" } - dependencies: - p-limit: 3.1.0 - - /parent-module@1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: { node: ">=6" } - dependencies: - callsites: 3.1.0 - - /path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: ">=8" } - - /path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: ">=0.10.0" } - - /path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: ">=8" } - - /path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: ">=12" } - dev: true - - /picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: ">=8.6" } - dev: true - - /pidtree@0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, - } - engines: { node: ">=0.10" } - hasBin: true - dev: true - - /prelude-ls@1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: { node: ">= 0.8.0" } - - /prettier@2.8.4: - resolution: - { - integrity: sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==, - } - engines: { node: ">=10.13.0" } - hasBin: true - dev: true - - /punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, - } - engines: { node: ">=6" } - - /queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } - - /resolve-from@4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: { node: ">=4" } - - /restore-cursor@4.0.0: - resolution: - { - integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - - /reusify@1.0.4: - resolution: - { - integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, - } - engines: { iojs: ">=1.0.0", node: ">=0.10.0" } - - /rfdc@1.3.0: - resolution: - { - integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==, - } - dev: true - - /rimraf@3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } - hasBin: true - dependencies: - glob: 7.2.3 - - /run-parallel@1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } - dependencies: - queue-microtask: 1.2.3 - - /shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: ">=8" } - dependencies: - shebang-regex: 3.0.0 - - /shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: ">=8" } - - /signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } - dev: true - - /slice-ansi@5.0.0: - resolution: - { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, - } - engines: { node: ">=12" } - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - dev: true - - /string-argv@0.3.2: - resolution: - { - integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, - } - engines: { node: ">=0.6.19" } - dev: true - - /string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: ">=12" } - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: true - - /strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: ">=8" } - dependencies: - ansi-regex: 5.0.1 - - /strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: ">=12" } - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: ">=12" } - dev: true - - /strip-json-comments@3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - } - engines: { node: ">=8" } - - /supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: ">=8" } - dependencies: - has-flag: 4.0.0 - - /text-table@0.2.0: - resolution: - { - integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, - } - - /to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: ">=8.0" } - dependencies: - is-number: 7.0.0 - dev: true - - /type-check@0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - } - engines: { node: ">= 0.8.0" } - dependencies: - prelude-ls: 1.2.1 - - /type-fest@0.20.2: - resolution: - { - integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==, - } - engines: { node: ">=10" } - - /type-fest@1.4.0: - resolution: - { - integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, - } - engines: { node: ">=10" } - dev: true - - /uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } - dependencies: - punycode: 2.3.1 - - /which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: ">= 8" } - hasBin: true - dependencies: - isexe: 2.0.0 - - /wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: ">=12" } - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: true - - /wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } - - /yaml@2.3.1: - resolution: - { - integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, - } - engines: { node: ">= 14" } - dev: true - - /yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: { node: ">=10" } diff --git a/lukaskanka/style/alt.index.php b/lukaskanka/style/alt.index.php deleted file mode 100644 index de771aa..0000000 --- a/lukaskanka/style/alt.index.php +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - Array in a Matrix - - - - - - -
- - -
- - diff --git a/lukaskanka/style/alt.style.css b/lukaskanka/style/alt.style.css deleted file mode 100644 index ae55ffe..0000000 --- a/lukaskanka/style/alt.style.css +++ /dev/null @@ -1,315 +0,0 @@ -:root { - --primary: #fff; - --secondary: rgba(0, 0, 0, 0.5); - --tertiary: #151b74; - --transparent: transparent; -} - -/* Animations */ -@-webkit-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-moz-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-o-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-webkit-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@-moz-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@-o-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -/* Main styles */ -body { - margin-top: 13.5rem; - color: var(--primary); - font-family: Utopia, "Liberation Serif"; - text-align: center; - /* img size is 50x50 */ - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABbmlDQ1BpY2MAACiRdZE7SwNBFIW/RCWikRRaBLHYQsVCJSiIpcbCJkiICr6aZPMSNuuyu0HEVrCxCFiINr4K/4G2gq2CICiCiI1/wFcjYb2TBBJEZ5m9H2fmXGbOgD9m6AWnOQIF07UT01FtYXFJC7wSIEwnw/iSumNNxuMx/h1f9/hUvRtSvf7f9+doT2ccHXytwmO6ZbvCE8KxdddSvCPcpeeTaeEj4UFbDih8rfRUlV8U56r8odieS0yBX/XUcg2camA9bxeEB4R7C0ZRr51H3SSYMednpXbL7MEhwTRRNFIUWcXAZUiqKZn97YtUfDOsiUeXv8UGtjhy5MU7KGpRumakZkXPyGewoXL/naeTHR2pdg9GoeXZ8977ILAL5ZLnfR97XvkEmp7g0qz71ySn8U/RS3Wt9xBCW3B+VddSe3CxDeFHK2knK1KTTH82C29n0LEInbfQtlzNqrbO6QPMbcoT3cD+AfTL/tDKD92VZ/plHO89AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuElEQVRoBe3awQ2CQABEUbUEbJEEi5ISpQVETuY38LPkk5gwp9mdx9H7srz2dX3fpul5G/XZts959H2e5/14G/Z3nv+QGPYC/+M/Rv2ceO4uwkXsnIgtwP5EuIidE7EF2J8IF7FzIrYA+xPhInZOxBZgfyJcxM6J2ALsT4SL2DkRW4D9iXAROydiC7A/ES5i50RsAfYnwkXsnIgtwP5EuIidE7EF2J8IF7FzIrYA+y8j8rvYJf6v9QVf2KG69fWg3gAAAABJRU5ErkJggg==") - repeat 0 0; - -webkit-animation: bg-scrolling-reverse 0.92s infinite; - /* Safari 4+ */ - -moz-animation: bg-scrolling-reverse 0.92s infinite; - /* Fx 5+ */ - -o-animation: bg-scrolling-reverse 0.92s infinite; - /* Opera 12+ */ - animation: bg-scrolling-reverse 0.92s infinite; - /* IE 10+ */ - -webkit-animation-timing-function: linear; - -moz-animation-timing-function: linear; - -o-animation-timing-function: linear; - animation-timing-function: linear; -} - -.larger-name { - font-size: larger; -} - -.smaller-name { - font-size: smaller; -} - -.main-content { - font-family: "Montserrat", sans-serif; -} - -.project-name { - color: --primary; - font-family: Utopia, "Liberation Serif"; -} - -@media screen and (min-width: 64em) { - .project-name { - font-size: 8rem; - } - - .main-content { - font-size: 1.5rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .project-name { - font-size: 4rem; - } - - .main-content { - font-size: 1.25rem; - } -} - -@media screen and (max-width: 42em) { - .project-name { - font-size: 2rem; - } - - .main-content { - font-size: 1rem; - } -} - -a { - background-color: var(--transparent); -} - -a:active, -a:hover { - outline: 0; -} - -a { - color: var(--tertiary); - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.btn { - display: inline-block; - margin-bottom: 1rem; - color: var(--primary); - background-color: var(--secondary); - border-color: rgba(255, 255, 255, 0.2); - border-style: solid; - border-width: 1px; - border-radius: 0.3rem; - transition: color 0.2s, background-color 0.2s, border-color 0.2s; -} - -.btn:hover { - color: rgba(255, 255, 255, 0.8); - text-decoration: none; - background-color: rgba(255, 255, 255, 0.2); - border-color: rgba(255, 255, 255, 0.3); -} - -.btn + .btn { - margin-left: 1rem; -} - -@media screen and (min-width: 64em) { - .btn { - padding: 0.75rem 1rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .btn { - padding: 0.6rem 0.9rem; - font-size: 0.9rem; - } -} - -@media screen and (max-width: 42em) { - .btn { - display: block; - width: 100%; - padding: 0.75rem; - font-size: 0.9rem; - } - - .btn + .btn { - margin-top: 1rem; - margin-left: 0; - } -} - -* { - box-sizing: border-box; -} - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -.dropdown { - position: relative; - display: inline-block; -} - -.dropdown-content { - display: none; - position: relative; -} - -.dropdown:hover .dropdown-content { - display: block; -} - -.project-tagline { - margin-bottom: 2rem; - font-weight: normal; - opacity: 0.7; - font-family: "Montserrat", sans-serif; -} - -@media screen and (min-width: 64em) { - .project-tagline { - font-size: 1.25rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .project-tagline { - font-size: 1.15rem; - } -} - -@media screen and (max-width: 42em) { - .project-tagline { - font-size: 1rem; - } -} - -footer, -site-footer { - font-family: "Montserrat", sans-serif; - font-size: small; - display: block; -} - -@media screen and (min-width: 64em) { - .site-footer { - font-size: 1rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .site-footer { - font-size: 1rem; - } -} - -@media screen and (max-width: 42em) { - .site-footer { - font-size: 0.9rem; - } -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} diff --git a/lukaskanka/style/style.css b/lukaskanka/style/style.css deleted file mode 100644 index 11d5c7e..0000000 --- a/lukaskanka/style/style.css +++ /dev/null @@ -1,744 +0,0 @@ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap"); - -html { - font-family: "Montserrat", sans-serif; - -ms-text-size-adjust: 100%; - -webkit-text-size-adjust: 100%; -} - -body { - margin: 0; -} - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; -} - -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; -} - -audio:not([controls]) { - display: none; - height: 0; -} - -[hidden], -template { - display: none; -} - -a { - background-color: transparent; -} - -a:active, -a:hover { - outline: 0; -} - -abbr[title] { - border-bottom: 1px dotted; -} - -b, -strong { - font-weight: bold; -} - -dfn { - font-style: italic; -} - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -mark { - background: #ff0; - color: #000; -} - -small { - font-size: 80%; -} - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -img { - border: 0; -} - -svg:not(:root) { - overflow: hidden; -} - -figure { - margin: 1em 40px; -} - -hr { - box-sizing: content-box; - height: 0; -} - -pre { - overflow: auto; -} - -code, -kbd, -pre, -samp { - font-family: monospace, monospace; - font-size: 1em; -} - -button, -input, -optgroup, -select, -textarea { - color: inherit; - font: inherit; - margin: 0; -} - -button { - overflow: visible; -} - -button, -select { - text-transform: none; -} - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; -} - -button[disabled], -html input[disabled] { - cursor: default; -} - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -input { - line-height: normal; -} - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; -} - -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -input[type="search"] { - -webkit-appearance: textfield; - box-sizing: content-box; -} - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -legend { - border: 0; - padding: 0; -} - -textarea { - overflow: auto; -} - -optgroup { - font-weight: bold; -} - -table { - border-collapse: collapse; - border-spacing: 0; -} - -td, -th { - padding: 0; -} - -* { - box-sizing: border-box; -} - -body { - padding: 0; - margin: 0; - font-family: "Montserrat", sans-serif; - font-size: 16px; - line-height: 1.5; - color: #606c71; -} - -#skip-to-content { - height: 1px; - width: 1px; - position: absolute; - overflow: hidden; - top: -10px; -} - -#skip-to-content:focus { - position: fixed; - top: 10px; - left: 10px; - height: auto; - width: auto; - background: #e19447; - outline: thick solid #e19447; -} - -a { - color: #1e6bb8; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -.btn { - display: inline-block; - margin-bottom: 1rem; - color: rgba(255, 255, 255, 0.7); - background-color: rgba(255, 255, 255, 0.08); - border-color: rgba(255, 255, 255, 0.2); - border-style: solid; - border-width: 1px; - border-radius: 0.3rem; - transition: color 0.2s, background-color 0.2s, border-color 0.2s; -} - -.btn:hover { - color: rgba(255, 255, 255, 0.8); - text-decoration: none; - background-color: rgba(255, 255, 255, 0.2); - border-color: rgba(255, 255, 255, 0.3); -} - -.btn + .btn { - margin-left: 1rem; -} - -@media screen and (min-width: 64em) { - .btn { - padding: 0.75rem 1rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .btn { - padding: 0.6rem 0.9rem; - font-size: 0.9rem; - } -} - -@media screen and (max-width: 42em) { - .btn { - display: block; - width: 100%; - padding: 0.75rem; - font-size: 0.9rem; - } - - .btn + .btn { - margin-top: 1rem; - margin-left: 0; - } -} - -.page-header { - color: #fff; - text-align: center; -} - -@-webkit-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-moz-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-o-keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@keyframes bg-scrolling-reverse { - 100% { - background-position: 50px 50px; - } -} - -@-webkit-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@-moz-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@-o-keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -@keyframes bg-scrolling { - 0% { - background-position: 50px 50px; - } -} - -body { - background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAABbmlDQ1BpY2MAACiRdZE7SwNBFIW/RCWikRRaBLHYQsVCJSiIpcbCJkiICr6aZPMSNuuyu0HEVrCxCFiINr4K/4G2gq2CICiCiI1/wFcjYb2TBBJEZ5m9H2fmXGbOgD9m6AWnOQIF07UT01FtYXFJC7wSIEwnw/iSumNNxuMx/h1f9/hUvRtSvf7f9+doT2ccHXytwmO6ZbvCE8KxdddSvCPcpeeTaeEj4UFbDih8rfRUlV8U56r8odieS0yBX/XUcg2camA9bxeEB4R7C0ZRr51H3SSYMednpXbL7MEhwTRRNFIUWcXAZUiqKZn97YtUfDOsiUeXv8UGtjhy5MU7KGpRumakZkXPyGewoXL/naeTHR2pdg9GoeXZ8977ILAL5ZLnfR97XvkEmp7g0qz71ySn8U/RS3Wt9xBCW3B+VddSe3CxDeFHK2knK1KTTH82C29n0LEInbfQtlzNqrbO6QPMbcoT3cD+AfTL/tDKD92VZ/plHO89AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAuElEQVRoBe3awQ2CQABEUbUEbJEEi5ISpQVETuY38LPkk5gwp9mdx9H7srz2dX3fpul5G/XZts959H2e5/14G/Z3nv+QGPYC/+M/Rv2ceO4uwkXsnIgtwP5EuIidE7EF2J8IF7FzIrYA+xPhInZOxBZgfyJcxM6J2ALsT4SL2DkRW4D9iXAROydiC7A/ES5i50RsAfYnwkXsnIgtwP5EuIidE7EF2J8IF7FzIrYA+y8j8rvYJf6v9QVf2KG69fWg3gAAAABJRU5ErkJggg==") - repeat 0 0; - -webkit-animation: bg-scrolling-reverse 0.92s infinite; - /* Safari 4+ */ - -moz-animation: bg-scrolling-reverse 0.92s infinite; - /* Fx 5+ */ - -o-animation: bg-scrolling-reverse 0.92s infinite; - /* Opera 12+ */ - animation: bg-scrolling-reverse 0.92s infinite; - /* IE 10+ */ - -webkit-animation-timing-function: linear; - -moz-animation-timing-function: linear; - -o-animation-timing-function: linear; - animation-timing-function: linear; -} - -@media screen and (min-width: 64em) { - .page-header { - padding: 5rem 6rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .page-header { - padding: 3rem 4rem; - } -} - -@media screen and (max-width: 42em) { - .page-header { - padding: 2rem 1rem; - } -} - -.project-name { - margin-top: 0; - margin-bottom: 0.1rem; -} - -@media screen and (min-width: 64em) { - .project-name { - font-size: 3.25rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .project-name { - font-size: 2.25rem; - } -} - -@media screen and (max-width: 42em) { - .project-name { - font-size: 1.75rem; - } -} - -.project-tagline { - margin-bottom: 2rem; - font-weight: normal; - opacity: 0.7; -} - -@media screen and (min-width: 64em) { - .project-tagline { - font-size: 1.25rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .project-tagline { - font-size: 1.15rem; - } -} - -@media screen and (max-width: 42em) { - .project-tagline { - font-size: 1rem; - } -} - -.main-content { - word-wrap: break-word; - background-color: #fff; - background-color: rgba(250, 250, 250, 0.712); -} - -.main-content :first-child { - margin-top: 0; -} - -@media screen and (min-width: 64em) { - .main-content { - max-width: 64rem; - padding: 2rem 6rem; - margin: 0 auto; - font-size: 1.1rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .main-content { - padding: 2rem 4rem; - font-size: 1.1rem; - } -} - -@media screen and (max-width: 42em) { - .main-content { - padding: 2rem 1rem; - font-size: 1rem; - } -} - -.main-content kbd { - background-color: #fafbfc; - border: 1px solid #c6cbd1; - border-bottom-color: #959da5; - border-radius: 3px; - box-shadow: inset 0 -1px 0 #959da5; - color: #444d56; - display: inline-block; - font-size: 11px; - line-height: 10px; - padding: 3px 5px; - vertical-align: middle; -} - -.main-content img { - max-width: 100%; -} - -.main-content h1, -.main-content h2, -.main-content h3, -.main-content h4, -.main-content h5, -.main-content h6 { - margin-top: 2rem; - margin-bottom: 1rem; - font-weight: normal; - color: #000; -} - -.main-content p { - margin-bottom: 1em; -} - -.main-content code { - padding: 2px 4px; - font-family: "Montserrat", sans-serif; - font-size: 0.9rem; - color: #567482; - background-color: #f3f6fa; - border-radius: 0.3rem; -} - -.main-content pre { - padding: 0.8rem; - margin-top: 0; - margin-bottom: 1rem; - font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; - color: #567482; - word-wrap: normal; - background-color: #f3f6fa; - border: solid 1px #dce6f0; - border-radius: 0.3rem; -} - -.main-content pre > code { - padding: 0; - margin: 0; - font-size: 0.9rem; - color: #567482; - word-break: normal; - white-space: pre; - background: transparent; - border: 0; -} - -.main-content .highlight { - margin-bottom: 1rem; -} - -.main-content .highlight pre { - margin-bottom: 0; - word-break: normal; -} - -.main-content .highlight pre, -.main-content pre { - padding: 0.8rem; - overflow: auto; - font-size: 0.9rem; - line-height: 1.45; - border-radius: 0.3rem; - -webkit-overflow-scrolling: touch; -} - -.main-content pre code, -.main-content pre tt { - display: inline; - max-width: initial; - padding: 0; - margin: 0; - overflow: initial; - line-height: inherit; - word-wrap: normal; - background-color: transparent; - border: 0; -} - -.main-content pre code:before, -.main-content pre code:after, -.main-content pre tt:before, -.main-content pre tt:after { - content: normal; -} - -.main-content ul, -.main-content ol { - margin-top: 0; -} - -.main-content blockquote { - padding: 0 1rem; - margin-left: 0; - color: #819198; - border-left: 0.3rem solid #dce6f0; -} - -.main-content blockquote > :first-child { - margin-top: 0; -} - -.main-content blockquote > :last-child { - margin-bottom: 0; -} - -.main-content table { - display: block; - width: 100%; - overflow: auto; - word-break: normal; - word-break: keep-all; - -webkit-overflow-scrolling: touch; -} - -.main-content table th { - font-weight: bold; -} - -.main-content table th, -.main-content table td { - padding: 0.5rem 1rem; - border: 1px solid #e9ebec; -} - -.main-content dl { - padding: 0; -} - -.main-content dl dt { - padding: 0; - margin-top: 1rem; - font-size: 1rem; - font-weight: bold; -} - -.main-content dl dd { - padding: 0; - margin-bottom: 1rem; -} - -.main-content hr { - height: 2px; - padding: 0; - margin: 1rem 0; - background-color: #dce6f0; - border: 0; -} - -.site-footer { - padding-top: 2rem; - margin-top: 2rem; - border-top: solid 1px #eff0f1; -} - -@media screen and (min-width: 64em) { - .site-footer { - font-size: 1rem; - } -} - -@media screen and (min-width: 42em) and (max-width: 64em) { - .site-footer { - font-size: 1rem; - } -} - -@media screen and (max-width: 42em) { - .site-footer { - font-size: 0.9rem; - } -} - -.gameButton { - font-size: 400%; - text-align: center; - background-color: rgba(0, 0, 0, 0.08); -} - -.game { - text-align: center; -} - -:target:not(main) { - animation: highlight 1s ease; - transform: translateX(20px); -} - -@keyframes highlight { - 0% { - border-left-color: yellow; - } - - 100% { - border-left-color: rgba(255, 255, 255, 0); - } -} - -:target:not(main) { - border-left: 40px solid rgba(255, 255, 255, 0); - padding: 0px; - transition: all 0.5s ease; - padding-right: 50px; - margin-left: -20px; -} - -.zoom { - transition: transform 0.2s; - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); -} - -.center { - text-align: center; -} - -.grid { - display: flex; - flex-wrap: wrap; - justify-content: space-evenly; - margin: auto; - gap: 4%; -} - -.grid-item { - margin: 4% 0; - width: 15rem; - height: 22rem; - text-align: center; -} - -.grid-item div { - height: 50%; -} - -.grid-item img { - width: 100%; - height: 100%; - object-fit: contain; -} - -.grid-item-banner { - width: 88px; -}