diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 576a2a94..00000000 --- a/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -# editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = tab -end_of_line = lf -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false - -[*.{json,yaml,yml,toml,md,babelrc,eslintrc,postcssrc,stylelintrc}] -indent_style = space -indent_size = 2 - -[layouts/**.{html,svg}] -insert_final_newline = false diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..69b06ac8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,26 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Hugo version** +[Output of `hugo version`] + +**Theme status** +Is the theme up to date? Yes/No + +**Expected behavior** +[What you expected to happen] + +**Current behavior** +[What actually happened, including screenshots if relevant] + +**Steps to reproduce** +[Clear steps to trigger the bug, or a link to a demo project] + +**Additional context** +[Any relevant environment details or deployment information] diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index 15cdd04e..52b8acf8 100644 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -67,4 +67,4 @@ jobs: I18N_OPT=$([ $(ver $HUGO_VERSION) -lt $(ver 0.93.0) ] && echo "--i18n-warnings" || echo "--printI18nWarnings") # The option deprecated in v0.114.0 (WARNs >= 0.120.0): https://github.com/gohugoio/hugo/releases/tag/v0.114.0 LOG_OPT=$([ $(ver $HUGO_VERSION) -lt $(ver 0.114.0) ] && echo "--verbose" || echo "--logLevel info") - HUGO_THEME="Mainroad" hugo --themesDir ../.. $I18N_OPT $LOG_OPT + HUGO_THEME="roadster" hugo --themesDir ../.. $I18N_OPT $LOG_OPT diff --git a/.gitignore b/.gitignore index d171f954..261239e2 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,10 @@ Thumbs.db .AppleDouble .LSOverride Desktop.ini + +# dev +public/ +hugo.toml +content/ +.hugo_build.lock +resources/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..73fddbe1 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "examplesite/themes/roadster"] + path = examplesite/themes/roadster + url = https://github.com/mansoorbarri/roadster diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b0bebaa..de0082f3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,125 +1,109 @@ -# Contributing to Mainroad - -**Mainroad** welcomes contributions and corrections. Before contributing, please make sure you have read the guidelines -below. If you're a newcomer to open source and you haven't contributed to other projects or used -[Git](https://git-scm.com/) before, you should make yourself familiar before proceeding. - -## Issues - -The [issue tracker](https://github.com/vimux/mainroad/issues) is the preferred channel for bug reports and features -requests, but please respect the following restrictions: - -### General requirements - -* Issue must be written in English. -* Please **do not** combine a few problems or feature requests in one issue. Create separate issues if needed. -* Please **do not** create an issue that contains only title. Write a clear title and useful description. -* Please **do not** use the issue tracker for personal support requests. -* Please **do not** post comments consisting solely of "+1" or emoji. The project maintainer reserve the right to delete -such comments. Use -[GitHub's reactions feature](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) instead. -* Search first before filing a new issue. Please check existing open or recently closed issues to make sure somebody -else hasn't already reported the issue. - -### Reporting bugs - -When creating a new bug issue make sure to include the following information: - -* Your environment e.g. OS version, Hugo version, theme is up to date? Anything unusual about your environment or -deployment. -* Specify the exact steps to reproduce the bug in as many details as possible with code examples. Include links to files -or demo projects, or copy/pasteable snippets, which you use in those examples. -* Any message or error you get from Hugo, if you do. -* A screenshot of any visual bug. - -Please, take in consideration the next template to report your bug: - -> **Hugo version**\ -> _Run `hugo version` and paste output here._ -> -> **Theme is up to date?**\ -> _No | Yes_ -> -> **Expected behavior**\ -> _A short and expressive description of what behavior you're expecting._ -> -> **Current behavior**\ -> _A short sentence explaining what's actually happening, possibly containing screenshots._ -> -> **Steps to reproduce / Code to reproduce**\ -> _A step by step description of how to trigger this bug. / Provide link to a demo project which reproduces this bug._ -> -> **Additional info**\ -> _Anything unusual about your environment or deployment process? Anything else do we need to know? Optional._ - -**Note:** If you find a **Closed** issue that seems like it is the same bug that you're experiencing, open a new issue -and include a link to the original issue in the body of your new one. - -### Proposing features - -* Explain the proposed feature, what it should do, why it is useful, and alternatives considered if possible. Please -note that the project maintainer may close this issue or ask you to create a Pull Request if this is not something that -the project maintainer sees as a sufficiently high priority. - -Following these guidelines helps maintainer and the community understand your suggestion and find related suggestions. - -## Pull Requests (PR) - -**Please ask first** before embarking on any significant pull request (e.g. implementing features or refactoring code), -otherwise, you risk spending a lot of time working on something that the project maintainer might not want to merge into -the project. - -Please respect our Pull Request Acceptance Criteria. For larger changes, you will likely receive multiple rounds of -comments and it may take some time to complete. - -### Pull Request Acceptance Criteria - -* Keep the change in a single PR as small as possible -* 1 PR = 1 FIX or FEATURE (do not combine things, send separate PR if needed) - * PR with irrelevant changes won't be merged. If you do want to fix formatting or style, do that in a separate PR -* Use a clear and descriptive branch name (e.g. **NOT** "patch-1" or "update") -* Don't create a Pull Request from master branch -* Provide a reasonable PR title and description - * PR must be written in English - * If the PR changes the UI it should include before-and-after screenshots or a link to a video -* Keep PR up to date with upstream/master -* Pay attention to any automated CI failures reported in the Pull Request -* PR solves a common use case that several users will need in their real-life projects, not only your specific problems -* If you've added or modify SVG, ensure that each SVG file: - * Be less than 2048 bytes - * Be minified to a single line with no formatting - * Not contain any JS or CSS section inside it - * Not contain any additional transformations (matrix, translate, scale) or negative viewBox position values - * Сompatible with [GPLv2 License](LICENSE.md) -* Maintain clean commit history and use meaningful commit messages. Pull Requests with messy commit history (with -commit messages like "update", "another update", etc) are difficult to review and won't be merged, even if the changes -are good enough -* Be prepared to answer questions and make code changes. The project maintainer expect you to be reasonably responsive -to those feedback, otherwise the PR will be closed after 2-4 weeks of inactivity - -### Pull Request Contribution Prerequisites - -* You have Node & npm installed -* You have Hugo installed at v0.54.0+ -* You are familiar with Git - -### Pull Request Process +# Contributing to Roadster + +Welcome to the Roadster community! We're excited that you're interested in contributing. This guide will help you get started, whether you're fixing bugs, proposing features, or improving documentation. + +## Getting Started + +Before contributing, please familiarize yourself with: +- Basic [Git](https://git-scm.com/) workflows if you're new to open source +- Our [issue tracker](https://github.com/mansoorbarri/roadster/issues) for bug reports and feature requests +- The contribution guidelines below + +## Creating Issues + +We use issues to track bugs and feature requests. Here's how you can help us process them efficiently: + +### General Guidelines + +- Write issues in English +- Create separate issues for different problems or features +- Include clear titles and helpful descriptions +- Search existing issues first to avoid duplicates +- Use [GitHub's reactions](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments) to show support for ideas instead of "+1" comments + +### Bug Reports + +When reporting a bug, please include: + +```markdown +**Hugo version** +[Output of `hugo version`] + +**Theme status** +Is the theme up to date? Yes/No + +**Expected behavior** +[What you expected to happen] + +**Current behavior** +[What actually happened, including screenshots if relevant] + +**Steps to reproduce** +[Clear steps to trigger the bug, or a link to a demo project] + +**Additional context** +[Any relevant environment details or deployment information] +``` + +**Note:** If you find a closed issue similar to your bug, please open a new issue and reference the original one. + +### Feature Requests + +When proposing new features: +- Explain the feature's purpose and benefits +- Describe how it would work +- Consider including mockups or examples +- Be open to discussion and feedback + +## Making Pull Requests + +We love receiving contributions! To ensure a smooth process: + +### Before You Start + +1. **Ask First**: For significant changes (new features, refactoring), please open an issue to discuss your ideas first +2. **Prerequisites**: + - Hugo v0.128.0+ + - Basic Git knowledge + +### Best Practices + +1. **Keep Changes Focused** + - One PR per feature/fix + - Make changes as small and focused as possible + - Submit separate PRs for formatting/style changes + +2. **Branch Management** + - Create a descriptive branch name (not "patch-1" or "update") + - Work from a feature branch, not master + - Keep your branch up to date with master + +3. **Quality Standards** + - Include clear PR titles and descriptions + - Add screenshots for UI changes + - Ensure CI checks pass + - Write meaningful commit messages + - Update documentation if needed + - For SVG changes: + - Keep files under 2048 bytes + - Minify to a single line + - Ensure GPLv2 License compatibility + +### Submission Process 1. Fork the repository -1. Clone down the repository to your local system -1. Run `npm i` in the repository root -1. Create a new *dedicated branch* with descriptive name from `master` -1. Make your change and commit to the new branch from the previous step - 1. Write a clear commit message - 1. If you've added code that need documentation, update the README.md -1. Make sure your code lints (`npm test`) -1. Push to your fork -1. Submit a Pull Request (PR) to the upstream +2. Clone your fork locally +3. Create a new feature branch +4. Make your changes +5. Push to your fork +6. Submit a Pull Request ---- +We'll review your PR and might request changes. Please be responsive to feedback - PRs without activity for 2-4 weeks may be closed. + +## Licensing -**⚠️ IMPORTANT: No guarantees can be made that your pull request will be accepted.** +By contributing to Roadster, you agree that your contributions will be licensed under the [GPLv2 License](LICENSE.md). -## License +--- -By contributing to Mainroad, you agree that your contributions will be licensed under [GPLv2 License](LICENSE.md). +Thank you for contributing to Roadster! Your efforts help make this project better for everyone. While we can't guarantee all contributions will be merged, we appreciate your time and effort. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..68f77e06 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Mansoor Barri + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 5544f2d5..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,361 +0,0 @@ -### GNU GENERAL PUBLIC LICENSE - -Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - -### Preamble - -The licenses for most software are designed to take away your freedom -to share and change it. By contrast, the GNU General Public License is -intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) 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 -this service 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 make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if -you distribute copies of the software, or if you modify it. - -For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. 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. - -We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - -Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, -we want its recipients to know that what they have is not the -original, so that any problems introduced by others will not reflect -on the original authors' reputations. - -Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at -all. - -The precise terms and conditions for copying, distribution and -modification follow. - -### TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - -**0.** This License applies to any program or other work which -contains a notice placed by the copyright holder saying it may be -distributed under the terms of this General Public License. The -"Program", below, refers to any such program or work, and a "work -based on the Program" means either the Program or any derivative work -under copyright law: that is to say, a work containing the Program or -a portion of it, either verbatim or with modifications and/or -translated into another language. (Hereinafter, translation is -included without limitation in the term "modification".) Each licensee -is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the Program -(independent of having been made by running the Program). Whether that -is true depends on what the Program does. - -**1.** You may copy and distribute 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 and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a -fee. - -**2.** You may modify your copy or copies of the Program or any -portion of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - -**a)** You must cause the modified files to carry prominent notices -stating that you changed the files and the date of any change. - - -**b)** You must cause any work that you distribute or publish, that in -whole or in part contains or is derived from the Program or any part -thereof, to be licensed as a whole at no charge to all third parties -under the terms of this License. - - -**c)** If the modified program normally reads commands interactively -when run, you must cause it, when started running for such interactive -use in the most ordinary way, to print or display an announcement -including an appropriate copyright notice and a notice that there is -no warranty (or else, saying that you provide a warranty) and that -users may redistribute the program under these conditions, and telling -the user how to view a copy of this License. (Exception: if the -Program itself is interactive but does not normally print such an -announcement, your work based on the Program is not required to print -an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote -it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - -**3.** You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - -**a)** Accompany it with the complete corresponding machine-readable -source code, which must be distributed under the terms of Sections 1 -and 2 above on a medium customarily used for software interchange; or, - - -**b)** Accompany it with a written offer, valid for at least three -years, to give any third party, for a charge no more than your cost of -physically performing source distribution, a complete machine-readable -copy of the corresponding source code, to be distributed under the -terms of Sections 1 and 2 above on a medium customarily used for -software interchange; or, - - -**c)** Accompany it with the information you received as to the offer -to distribute corresponding source code. (This alternative is allowed -only for noncommercial distribution and only if you received the -program in object code or executable form with such an offer, in -accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - -**4.** You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt otherwise -to copy, modify, sublicense or distribute the Program is void, and -will automatically terminate your rights under this License. However, -parties who have received copies, or rights, from you under this -License will not have their licenses terminated so long as such -parties remain in full compliance. - -**5.** You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - -**6.** Each time you redistribute the Program (or any work based on -the Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - -**7.** If, as a consequence of a court judgment or allegation of -patent infringement or for any other reason (not limited to patent -issues), 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 distribute so as to satisfy simultaneously your -obligations under this License and any other pertinent obligations, -then as a consequence you may not distribute the Program at all. For -example, if a patent license would not permit royalty-free -redistribution of the Program by all those who receive copies directly -or indirectly through you, then the only way you could satisfy both it -and this License would be to refrain entirely from distribution of the -Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - -**8.** If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - -**9.** The Free Software Foundation may publish revised and/or new -versions of the 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 a version number of this License which applies to it and -"any later version", you have the option of following the terms and -conditions either of that version or of any later version published by -the Free Software Foundation. If the Program does not specify a -version number of this License, you may choose any version ever -published by the Free Software Foundation. - -**10.** If you wish to incorporate parts of the Program into other -free programs whose distribution conditions are different, write to -the author to ask for permission. For software which is copyrighted by -the Free Software Foundation, write to the Free Software Foundation; -we sometimes make exceptions for this. Our decision will be guided by -the two goals of preserving the free status of all derivatives of our -free software and of promoting the sharing and reuse of software -generally. - -**NO WARRANTY** - -**11.** BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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. - -**12.** IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN -WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY -AND/OR REDISTRIBUTE 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. - -### 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 -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - one line to give the program's name and an idea of what it does. - Copyright (C) yyyy name of author - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License - as published by the Free Software Foundation; either version 2 - 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, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -Also add information on how to contact you by electronic and paper -mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision 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, the -commands you use may be called something other than \`show w' and -\`show c'; they could even be mouse-clicks or menu items--whatever -suits your program. - -You should also get your employer (if you work as a programmer) or -your school, if any, to sign a "copyright disclaimer" for the program, -if necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright - interest in the program `Gnomovision' - (which makes passes at compilers) written - by James Hacker. - - signature of Ty Coon, 1 April 1989 - Ty Coon, President of Vice - -This 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](http://www.gnu.org/licenses/lgpl.html) instead of this -License. diff --git a/README.md b/README.md index 70fcd739..a264ffb2 100644 --- a/README.md +++ b/README.md @@ -1,206 +1,51 @@ -# Mainroad +# Roadster -**Mainroad** is a responsive, simple, clean and content-focused [Hugo](https://gohugo.io/) theme based on the -[MH Magazine lite](https://wordpress.org/themes/mh-magazine-lite/) theme. +Roadster: A clean, responsive Hugo theme focused on content, forked from the original [mainroad theme](https://github.com/Vimux/Mainroad). -**[Demo](https://mainroad-demo.netlify.app/)** • **[Docs](https://mainroad-demo.netlify.app/docs/)** +**[Demo](https://roadster.mansoorbarri.com/)** • **[Documentation](https://roadster.mansoorbarri.com/docs/)** - + -**Features:** +All the issues and PRs from the original themes were accounted for [here](https://github.com/mansoorbarri/roadster/issues/6#issuecomment-2571663484) + +## Features + Responsive design -+ Main & secondary menus ++ Configurable theme settings (sidebar position, author box, post navigation, highlight color) + Widgetized sidebar -+ Translations. Over 15 languages and counting -+ Configurable theme settings (sidebar position, author box, post navigation, highlight color) via `config.toml` ++ Translations (15+ languages) + Hugo internal templates (Open Graph, Schema, Twitter Cards, Disqus, Google Analytics) ++ Table of Contents, MathJax support, SVG icons ++ Custom Google Fonts support + Wide cross-browser compatibility - + *Desktop: IE11+, Chrome, Firefox, Safari* - + *Mobile: Android browser (on Android 4.4+), Safari (on iOS 7+), Google Chrome, Opera mini* -+ Custom Google Fonts support, MathJax, Table of Contents, SVG icons and much more… - -## Installation - -*Before starting, please be sure that you have -[installed Hugo](https://gohugo.io/getting-started/quick-start/#step-1-install-hugo) and -[created a new site](https://gohugo.io/getting-started/quick-start/#step-2-create-a-new-site). After that, you are ready -to install **Mainroad**.* ++ Multiple Authors -From your project's root directory, run: +## Quick Start +1. Install Hugo following the [official guide](https://gohugo.io/installation/) +2. Create a new site and navigate to its root directory +3. Install the theme: ``` -git clone https://github.com/vimux/mainroad.git themes/mainroad +git clone https://github.com/mansoorbarri/roadster.git themes/roadster ``` - -Or, if you don't plan to make any significant changes but want to track and update the theme, you can add it as a git -submodule via the following command: - +Or as a submodule: ``` -git submodule add https://github.com/vimux/mainroad.git themes/mainroad +git submodule add https://github.com/mansoorbarri/roadster.git themes/roadster ``` - -Next, open `config.toml` in the base of the Hugo site and ensure the theme option is set to `mainroad`: - +4. Add to your `hugo.toml`: ``` -theme = "mainroad" +theme = "roadster" ``` -## Configuration - -### Config.toml example - -```toml -baseurl = "/" -title = "Mainroad" -languageCode = "en-us" -paginate = "10" # Number of posts per page -theme = "mainroad" -disqusShortname = "" # DEPRECATED! Use .Services.Disqus.Shortname -googleAnalytics = "" # DEPRECATED! Use .Services.googleAnalytics.ID - -[services.disqus] - shortname = "" # Enable Disqus by entering your Disqus shortname -[services.googleAnalytics] - ID = "" # Enable Google Analytics by entering your tracking ID - -[Author] # Used in authorbox - name = "John Doe" - bio = "John Doe's true identity is unknown. Maybe he is a successful blogger or writer. Nobody knows it." - avatar = "img/avatar.png" - -[Params] - description = "John Doe's Personal blog about everything" # Site description. Used in meta description - copyright = "John Doe" # Footer copyright holder, otherwise will use site title - opengraph = true # Enable OpenGraph if true - schema = true # Enable Schema - twitter_cards = true # Enable Twitter Cards if true - readmore = false # Show "Read more" button in list if true - authorbox = true # Show authorbox at bottom of pages if true - toc = true # Enable Table of Contents - pager = true # Show pager navigation (prev/next links) at the bottom of pages if true - post_meta = ["author", "date", "categories", "translations"] # Order of post meta information - mainSections = ["post", "blog", "news"] # Specify section pages to show on home page and the "Recent articles" widget - dateformat = "2006-01-02" # Change the format of dates - mathjax = true # Enable MathJax - mathjaxPath = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.6/MathJax.js" # Specify MathJax path - mathjaxConfig = "TeX-AMS-MML_HTMLorMML" # Specify MathJax config - googleFontsLink = "https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700" # Load Google Fonts - customCSS = ["css/custom.css"] # Include custom CSS files - customJS = ["js/custom.js"] # Include custom JS files - - # DEPRECATED PARAMS - subtitle = "" # Deprecated in favor of .Site.Params.logo.subtitle - highlightColor = "" # Deprecated in favor of .Site.Params.style.vars.highlightColor - -[Params.style.vars] - highlightColor = "#e22d30" # Override highlight color - - # Override font-family sets - # Take care of different quotes OR escaping symbols in these params if necessary - fontFamilyPrimary = "'Open Sans', Helvetica, Arial, sans-serif" - # Secondary font-family set responsible for pre, code, kbd, and samp tags font - fontFamilySecondary = "SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace" - -[Params.logo] - image = "img/placeholder.png" # Logo image. Path relative to "static" - title = "Mainroad" # Logo title, otherwise will use site title - subtitle = "Just another site" # Logo subtitle - -[Params.thumbnail] - visibility = ["list", "post"] # Control thumbnail visibility - -[Params.sidebar] - home = "right" # Configure layout for home page - list = "left" # Configure layout for list pages - single = false # Configure layout for single pages - # Enable widgets in given order - widgets = ["search", "recent", "categories", "taglist", "social", "languages"] - -[Params.widgets] - recent_num = 5 # Set the number of articles in the "Recent articles" widget - categories_counter = false # Enable counter for each category in "Categories" widget - tags_counter = false # Enable counter for each tag in "Tags" widget - -[Params.widgets.social] - cached = false # activate cache if true - # Enable parts of social widget - facebook = "username" - twitter = "username" - instagram = "username" - linkedin = "username" - telegram = "username" - github = "username" - gitlab = "username" - bitbucket = "username" - email = "example@example.com" - -# Custom social links -[[Params.widgets.social.custom]] - title = "Youtube" - url = "https://youtube.com/user/username" - icon = "youtube.svg" # Optional. Path relative to "layouts/partials" - rel = "noopener noreferrer" # Set to false to remove the rel attribute - -[[Params.widgets.social.custom]] - title = "My Home Page" - url = "https://example.com" - -[Params.widgets.search] - cached = false # activate cache if true - url = "https://google.com/search" - [Params.widgets.search.input] - name = "sitesearch" - pre = "" -``` - -**Do not copy example config as-is**. Use only those parameters that you need. - -For more information about all available standard configuration settings, please read -[All Hugo Configuration Settings](https://gohugo.io/getting-started/configuration/#all-configuration-settings). - -### Front Matter example - -```yaml ---- -# Common-Defined params -title: "Example article title" -date: "2017-08-21" -description: "Example article description" -categories: - - "Category 1" - - "Category 2" -tags: - - "Test" - - "Another test" -menu: main # Optional, add page to a menu. Options: main, side, footer - -# Theme-Defined params -thumbnail: "img/placeholder.png" # Thumbnail image -lead: "Example lead - highlighted near the title" # Lead text -comments: false # Enable Disqus comments for specific page -authorbox: true # Enable authorbox for specific page -pager: true # Enable pager navigation (prev/next) for specific page -toc: true # Enable Table of Contents for specific page -mathjax: true # Enable MathJax for specific page -sidebar: "right" # Enable sidebar (on the right side) per page -widgets: # Enable sidebar widgets in given order per page - - "search" - - "recent" - - "taglist" ---- -``` - -For more information about all available standard front matter variables, please read -[Hugo Front Matter](https://gohugo.io/content-management/front-matter). +For detailed configuration options and examples, please visit the [documentation](https://roadster.mansoorbarri.com/docs/). ## Contributing -Have you found a bug or got an idea for a new feature? Feel free to use the -[issue tracker](https://github.com/Vimux/mainroad/issues) to let me know. Or make directly a -[pull request](https://github.com/Vimux/mainroad/pulls), but please respect the following -[contributing guide](https://github.com/Vimux/mainroad/blob/master/CONTRIBUTING.md). +Found a bug? Feel free to open an issue. + +Have an idea for a new feature? Kindly see our [Contributing](https://github.com/stoic-hugo/roadster/blob/master/CONTRIBUTING.md) guidelines to open a PR. ## License -This theme is released under the [GPLv2 license](https://github.com/Vimux/mainroad/blob/master/LICENSE.md). +Released under the [MIT LICENSE](https://github.com/mansoorbarri/roadster/blob/master/LICENSE). + diff --git a/assets/css/style.css b/assets/css/style.css index 651a2c7c..16335ffb 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -846,6 +846,12 @@ button:not(:-moz-focusring):focus > .menu__btn-title { border-bottom: 1px solid #ebebeb; } +.authorbox__singleAuthor { + width: 100%; + float: left; + margin: 10px; +} + .authorbox__avatar { float: left; padding: 3px; @@ -854,6 +860,7 @@ button:not(:-moz-focusring):focus > .menu__btn-title { } .authorbox__header { + margin-top: 10px; margin-bottom: 10px; } diff --git a/assets/css/v2-styles.css b/assets/css/v2-styles.css new file mode 100644 index 00000000..bebdff12 --- /dev/null +++ b/assets/css/v2-styles.css @@ -0,0 +1,66 @@ +{{- $highlightColor := .Site.Params.style.vars.highlightColor | default (.Site.Params.highlightColor | default "#e22d30") -}} + +.menu__link svg { + fill: currentColor; + stroke: currentColor; +} + +/* Nested Menu */ +.menu__item { + position: relative; +} + +.menu__item:hover > .submenu { + display: block; +} + +.submenu { + background: #2a2a2a; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + list-style: none; + margin: 0; + padding: 0; + position: absolute; + top: 100%; + width: 200px; + z-index: 1000; +} + +.submenu__item { + border-top: 1px solid rgba(255, 255, 255, 0.1); + position: relative; +} + +.submenu__link { + color: #fff; + display: block; + font-weight: 700; + padding: 10px 15px; + text-decoration: none; + text-transform: uppercase; + transition: background-color 0.25s ease-out; +} + +.submenu__link:hover { + background: {{ $highlightColor }}; + color: #fff; +} + +.submenu .submenu { + display: none; + left: 100%; + top: 0; + width: 200px; + z-index: 1001; +} + +.submenu__item:hover > .submenu { + display: block; +} + +.has-submenu::after { + content: '▼'; /* Or use an SVG background image */ + margin-left: 5px; /* Adjust spacing */ +} \ No newline at end of file diff --git a/assets/images/avatar.png b/assets/images/avatar.png new file mode 100644 index 00000000..8afac66b Binary files /dev/null and b/assets/images/avatar.png differ diff --git a/exampleSite/.gitignore b/exampleSite/.gitignore deleted file mode 100644 index 364c4c9e..00000000 --- a/exampleSite/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -public/ -themes diff --git a/exampleSite/config.toml b/exampleSite/config.toml deleted file mode 100644 index 221797af..00000000 --- a/exampleSite/config.toml +++ /dev/null @@ -1,36 +0,0 @@ -baseurl = "/" -title = "Mainroad" -languageCode = "en-us" -paginate = "10" # Number of posts per page -theme = "mainroad" -disqusShortname = "" # Enable comments by entering your Disqus shortname -googleAnalytics = "" # Enable Google Analytics by entering your tracking id - -[Author] - name = "John Doe" - bio = "John Doe's true identity is unknown. Maybe he is a successful blogger or writer. Nobody knows it." - avatar = "img/avatar.png" - -[Params] - description = "John Doe's Personal blog about everything" # Description of your site - opengraph = true - twitter_cards = false - readmore = false # Show "Read more" button in list if true - authorbox = true - pager = true - post_meta = ["date", "categories"] # Order of post meta information - mainSections = ["post", "docs"] - -[Params.logo] - subtitle = "Just another site" # Logo subtitle - -[Params.sidebar] - home = "right" # Configure layout for home page - list = "right" # Configure layout for list pages - single = "right" # Configure layout for single pages - # Enable widgets in given order - widgets = ["search", "recent", "categories", "taglist"] - -[Params.widgets] - recent_num = 5 # Set the number of articles in the "Recent articles" widget - tags_counter = false # Enable counter for each tag in "Tags" widget (disabled by default) diff --git a/exampleSite/content/docs/getting-started.md b/exampleSite/content/docs/getting-started.md deleted file mode 100644 index 71d71160..00000000 --- a/exampleSite/content/docs/getting-started.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Getting started -description: This article helps you get started with the Mainroad theme, including installation and minimal - configuration. -lead: This article helps you get started with the Mainroad theme, including installation and minimal configuration. -date: 2022-01-24T14:00:00.000Z -tags: - - "Installation" -authorbox: false -sidebar: false -pager: false -weight: 1 -menu: main ---- - -Welcome to the Mainroad theme documentation. This quick start guide covers Mainroad theme installation and minimal -configuration and is intended for intermediate to advanced users. To understand this guide, you need to be familiar -with the [Hugo](https://gohugo.io/) static site generator. - - - -## Installation - -Before installing the **Mainroad** theme, make sure that you've -[installed **Hugo** (version 0.54.0 or later)](https://gohugo.io/getting-started/quick-start/#step-1-install-hugo) and -[created a new site](https://gohugo.io/getting-started/quick-start/#step-2-create-a-new-site). To learn how to install -Hugo, visit [Hugo Documentation](https://gohugo.io/getting-started/installing/). - -There are a few ways to install a theme in Hugo. This can be done via git submodule, git clone, Hugo modules, or -by downloading the archive and manually copying the files. Three installation options are described below. - -### Option A: `git submodule` - -*Additional requirements: git* - -If you don't plan to make significant changes to the theme but still want to track and update it, you can add it as a -[git submodule](https://git-scm.com/docs/git-submodule) by running the following command from the root directory of -your Hugo site: - -```sh -git submodule add https://github.com/vimux/mainroad.git themes/mainroad -``` - -**Note:** -[Netlify expects git submodule](https://docs.netlify.com/configure-builds/common-configurations/hugo/#hugo-themes) -instead of git clone. - -### Option B: `git clone` - -*Additional requirements: git* - -Run this [git clone](https://git-scm.com/docs/git-clone) command from the root of your Hugo site: - -```sh -git clone https://github.com/vimux/mainroad.git themes/mainroad -``` - -### Option C: Manual install - -If you do not want to use git, you can manually -**[download ZIP](https://github.com/vimux/mainroad/archive/master.zip)** and extract it into the `themes/mainroad` -within your Hugo site. - ---- - -### Activate theme - -Whichever installation option you choose, don't forget to edit `theme` param of the site configuration `config.toml`: - -```toml -theme = "mainroad" -``` - -To check it out, build the site via `hugo` command or make it available on a local server via `hugo server`. - -## Minimal configuration - -**Do not copy the [example config](https://github.com/vimux/mainroad#configtoml-example) as-is.** -Use only the parameters that you need. The Mainroad theme contains required defaults, so you don't need to add all of -the configuration parameters to run the theme for the first time. Before adding any theme-specific parameters, make -sure to edit the `theme` param inside the config file and check that the theme works. - -For information about common customization settings, see [Customization page]({{< relref "/docs/customization.md" >}} "Mainroad theme customization"). -To view our example configuration, visit [demo config](https://github.com/vimux/mainroad/blob/master/exampleSite/config.toml). - -[Edit this page on GitHub](https://github.com/vimux/mainroad/blob/master/exampleSite/content/docs/getting-started.md) diff --git a/exampleSite/data/.gitkeep b/exampleSite/data/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/exampleSite/static/.gitkeep b/exampleSite/static/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/examplesite/archetypes/default.md b/examplesite/archetypes/default.md new file mode 100644 index 00000000..25b67521 --- /dev/null +++ b/examplesite/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/exampleSite/content/about.md b/examplesite/content/about.md similarity index 76% rename from exampleSite/content/about.md rename to examplesite/content/about.md index e9f9f785..17855035 100644 --- a/exampleSite/content/about.md +++ b/examplesite/content/about.md @@ -7,13 +7,13 @@ menu: main --- Our website builds with [Hugo](https://gohugo.io/) static site generator and -[Mainroad](https://github.com/vimux/mainroad) theme. This demo allows you to see what Mainroad based website looks like +[Roadster](https://github.com/vimux/roadster) theme. This demo allows you to see what Roadster based website looks like before deciding to go with it. Just keep in mind that the current demo shows the basics, a small part of what the -combination of Hugo and Mainroad can do. +combination of Hugo and Roadster can do. -## About Mainroad +## About Roadster -Mainroad is a responsive, simple, clean and content-focused Hugo theme based on the MH Magazine lite WordPress theme. +Roadster is a responsive, simple, clean and content-focused Hugo theme based on the MH Magazine lite WordPress theme. Main features: @@ -28,8 +28,8 @@ Main features: * Mobile: Android browser (on Android 4.4+), Safari (on iOS 7+), Google Chrome, Opera mini * Custom Google Fonts support, MathJax, Table of Contents, SVG icons and much more… -Learn more on [GitHub](https://github.com/vimux/mainroad). Mainroad theme is released under the -[GPLv2 license](https://github.com/vimux/mainroad/blob/master/LICENSE.md). +Learn more on [GitHub](https://github.com/mansoorbarri/roadster). Roadster theme is released under the +[GPLv2 license](https://github.com/mansoorbarri/roadster/blob/master/LICENSE.md). ## About Hugo diff --git a/exampleSite/content/docs/_index.md b/examplesite/content/docs/_index.md similarity index 50% rename from exampleSite/content/docs/_index.md rename to examplesite/content/docs/_index.md index 0ac66aa0..a76c97ff 100644 --- a/exampleSite/content/docs/_index.md +++ b/examplesite/content/docs/_index.md @@ -1,4 +1,4 @@ --- title: Documentation -description: Mainroad theme documentation, including getting started, customization guides, and FAQ. +description: Roadster theme documentation, including getting started, customization guides, and FAQ. --- diff --git a/exampleSite/content/docs/customization.md b/examplesite/content/docs/customization.md similarity index 91% rename from exampleSite/content/docs/customization.md rename to examplesite/content/docs/customization.md index 754b6229..a45c080e 100644 --- a/exampleSite/content/docs/customization.md +++ b/examplesite/content/docs/customization.md @@ -1,10 +1,10 @@ --- title: Customization -description: Describes common Mainroad theme configuration parameters that can be adjusted via config file or via Front +description: Describes common Roadster theme configuration parameters that can be adjusted via config file or via Front Matter section. -lead: Describes common Mainroad theme configuration parameters that can be adjusted via config file or via Front Matter +lead: Describes common Roadster theme configuration parameters that can be adjusted via config file or via Front Matter section. -date: 2022-01-24T14:00:00.000Z +date: 2025-01-06 thumbnail: src: "img/placeholder.png" visibility: @@ -16,7 +16,7 @@ weight: 2 menu: main --- -Customization page describes common Mainroad configuration parameters which can be specified via configuration file or +Customization page describes common Roadster configuration parameters which can be specified via configuration file or via Front Matter section. That includes logo section tuning, adding a sidebar with widgets, adjusting highlight color, and more. @@ -27,13 +27,13 @@ there's a good chance it is covered somewhere in [Hugo docs](https://gohugo.io/d ### Logo -**Mainroad** allows you to set a custom logo in the site header. You may use text, or image, or both. Use the following +**Roadster** allows you to set a custom logo in the site header. You may use text, or image, or both. Use the following options in your site config: ```toml [Params.logo] image = "img/placeholder.png" - title = "Mainroad" + title = "Roadster" subtitle = "Just another site" ``` @@ -55,7 +55,7 @@ Disable it this way: ### Highlight color -Mainroad uses `#e22d30` as a default highlight color, but you may choose and set any other color. +Roadster uses `#e22d30` as a default highlight color, but you may choose and set any other color. ```toml [Params.style.vars] @@ -117,7 +117,7 @@ This page is an example of list-only thumbnail visibility. ### Sidebar -**Mainroad** comes with a configurable sidebar that can be on the left, on the right, or disabled. The default layout +**Roadster** comes with a configurable sidebar that can be on the left, on the right, or disabled. The default layout can be specified in the `[Params.sidebar]` section of the configuration. The position can be specified for home, list and single pages individually. Use the keys `home`, `list` and `single` with values `"left"`, `"right"` or `false`. @@ -170,6 +170,7 @@ sections in the example below. recent_num = 5 # Set the number of articles in the "Recent articles" widget categories_counter = false # Enable counter for each category in "Categories" widget tags_counter = false # Enable counter for each tag in "Tags" widget + tags_sort = "desc" # or "asc" for sorting the tags list in descending or ascending order. By default the list is sorted in alphabetical order. ``` ```toml @@ -228,7 +229,7 @@ generation), then it should not be cached. Always check that your modified/custo ### Social Widget: custom links -**Mainroad** contains built-in social links in the social widget. In addition to default social links, you may set +**Roadster** contains built-in social links in the social widget. In addition to default social links, you may set custom links by adding `Params.widgets.social.custom` to your `config.toml`. Here is an example: ```toml @@ -272,7 +273,7 @@ You can also specify the `rel` attribute for the link. By default, the attribute ### Search box widget -The search box widget can refer to the results of Google, Bing, and DuckDuckGo searches. By default, Mainroad uses +The search box widget can refer to the results of Google, Bing, and DuckDuckGo searches. By default, Roadster uses Google search if no additional configuration options are specified. To use a different search engine, first of all, check that the search widget is enabled. Then set the search parameters @@ -320,11 +321,11 @@ To use a different search engine, first of all, check that the search widget is Note that Google PSE requires additional steps to work correctly. See [Creating a Programmable Search Engine](https://developers.google.com/custom-search/docs/tutorial/creatingcse) and -especially our [FAQ]({{< relref "/docs/faq.md" >}} "Mainroad FAQ") for more instructions. +especially our [FAQ]({{< relref "/docs/faq.md" >}} "Roadster FAQ") for more instructions. ### Menus -**Mainroad** supports multiple menus. The `main` menu is fully responsive and displayed right under the site header. The +**Roadster** supports multiple menus. The `main` menu is fully responsive and displayed right under the site header. The secondary menus `side` and `footer` are displayed in a sidebar widget and the page footer respectively. To add a page to a menu, add a `menu: