- to announce our vision and mission,
- to invite potential users of Sugar Labs software,
- to advertise our free software and licensing approach,
- to provide links to software downloads, and;
- to invite potential developers to the source code we hold in trust.
Content on the site; that is information about Sugar, Sugarizer, or Music Blocks, is way more important than the style or appearance.
Please concentrate on updating the content of the site, and not the style or appearance.
For your pull requests or issues to be taken seriously, you must be a user or developer of one of our software products; Sugar, Sugarizer, or Music Blocks.
The site was redesigned during Google Summer of Code in 2017, and then informally reviewed by untainted readers in Google Code-in 2017. Many issues were created then, but most did not have consensus. Most of the issues addressed style and appearance rather than the relevance or accuracy of the content. Since then, we have decided to concentrate on keeping the content updated.
GSOC 2017 redesigned "www.sugarlabs.org"
These notes were part of a project that has since been merged.
This repository contains the code for the redesigned version of "www.sugarlabs.org". This repository code base was used for the development of the GSOC 2017 project Giving Sugar Labs Website a New Look under the organization Sugar Labs. The changes, made by Pericherla Seetarama Raju and overseen by Samson Goddy, Hrishi Patel, and Walter Bender during the 2017 GSOC period, can be viewed at #63. The work during GSOC was done in the repository https://github.com/geekrypter/sugarLabsWebsiteRedesign. The code uses the same Jekyll environment as that of the original website's code. Do check out the code!
We have integrated one major feature with the help of a third-party service:
- Website users tracking - We have used the Google Analytics service to track users on the website and get a more detailed analysis of the user's usage.
Feedback/Suggestions are always welcome and do mention any issues found. They can be provided through the Issues section of this repository
The license information of all the dependencies/libraries used in the code can be found in the LicenseInformation.txt file in the root folder.
For a few parts of the code, I have used code snippets available online. The list of all the code snippets which I referred to are:
- CodePen-Martinvd
- Bootstrapious
- Bootsnipp
- W3schools
- Hongkiat
- Codepen-Zachsaffrin
- CodePen-Yewnork
- Fiddle
- Pixelflips
Base template has been designed and developed by Themefisher. For a preview, check out this link - https://luminousrubyist.github.io/airspace-jekyll/
The code has been restructured, unnecessary code has been removed, comments were added wherever required, proper indentation was provided, and simple names were used which makes it a contributor-friendly codebase. So, hope on and contribute now!
-
Fork this Repository.
-
Clone your forked copy of the project.
git clone https://github.com/<your_user_name>/www.git
- Navigate to the project directory 📁.
cd www
Install Ruby and the Gem package manager (pre-installed in Mac OS X) and install jekyll
and its related packages available in the Github hosted version by running, from this directory:
bundle install;
Jekyll can run a local web server that rebuilds each time you save a page while editing (Execute the below command from root directory):
bundle exec jekyll serve --incremental;
Then open http://localhost:4000
If some changes are not visible (after saving a page while editing), please restart the Jekyll local web server and reload http://localhost:4000.
You might try the following to prepare your dev environment on a Debian-based system:
Install Ruby and dependencies:
sudo apt-get install ruby-full build-essential zlib1g-dev
Tell BASH where to look when you run Ruby, while having an installation directory associated with your user account (not root):
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Install Jekyll and Bundler (not through sudo apt)
gem install jekyll bundler
Ref: https://jekyllrb.com/docs/installation/ubuntu/
If you already installed Jekyll and Bundler via sudo apt, you may need to do the following:
PACKAGES="$(dpkg -l |grep jekyll|cut -d" " -f3|xargs )"
sudo apt remove --purge $PACKAGES
sudo apt autoremove
gem install jekyll jekyll-feed jekyll-gist jekyll-paginate jekyll-sass-converter jekyll-coffeescript
bundle update
- Whenever the code is changed, please ensure that the relevant code changes are reflected in main.js file (For example, if a slideshow is disabled, make sure the id of the slideshow element/section is also disabled in the main.js file if it exists).
- Few dependencies/libraries do not work well with other dependencies/libraries, so make sure to test before updating the dependencies/libraries.
- Whenever the website hosting is shifted to another url/domain, please ensure to change the internal url references and also the sitemap.txt file.
- Do check Answers to a few questions section to get answers to a few of the questions you might have or for steps to be followed.
- Be careful when changing the cache control code present in the .htaccess file.
- Whenever the dependency/library versions are changed, please update the local files of those dependencies as these local files are referenced when the cdn does not work.
- The current website uses customized versions of a few social media icons (service provided by Ion Icons). We do our customizations in a scss file (/css/ion_icon_customization.scss file in our case). Please be careful when updating this file. (Also refer to How to change social media icon colors? the subsection in Answers to few questions section)
All internal URLs are referenced through absolute paths and not relative paths. This website primaritally uses HTML, (S)CSS, Javascript, JQuery, and Bootstrap.
We have 3 header designs based on the screen sizes:
- header for screen sizes greater than 1260px
- header for (screen sizes greater than or equal to 768px and less than or equal to 1260px)
- header for screen sizes less than 768px
We render 2 types of logos displayed in the header:
- Dynamic logo
- Static logo
This is a svg version of Sugar Labs logo and we have a code snippet in main.js file to alter the svg code and change color of logo randomly everytime.
This is the png version of Sugar Labs logo with no color changing functionality.
The dynamic logo is enabled for:
- Safari
- Chrome
- Opera
- Firefox
- Edge
- Small devices browsers like on Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile
However due to several issues, I disabled the dynamic logo and rendered static logo for all the other browsers.
For other browsers apart from those mentioned below, the loader, dynamic logo are disabled.
- Safari
- Chrome
- Opera
- Firefox
- Edge
- Internet Explorer
- Small devices browsers like on Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile
The dynamic logo is also disabled for Internet Explorer.
The loader screen is enabled for:
- Safari
- Chrome
- Opera
- Firefox
- Edge
- Internet Explorer
- Small devices browsers like on Android|BlackBerry|iPhone|iPad|iPod|Opera Mini|IEMobile
To reduce animations, we disabled the loader for all the other browsers.
The font being used is the Google font, Varela round. When we call the font sheet directly, it is not properly rendered on certain browsers, so we hosted the required font sheets in the fonts folder itself. For more details, please refer to How to add/change the new font? the subsection in the Answers to a few questions section.
The following pages share a similar design: index.html about-us.html about-irc.html about-libre-software-culture.html booting-soas.html contact-us.html inquiry.html more.html music-blocks.html press.html sugar-forraspberry-pi.html turtle-blocks-js.html
The following pages share a similar design: parents.html school-administrators.html students.html sugar-for-raspbian.html sugar-lesson-plans.html sugar-stories.html
The relevant pages can be checked to adopt a similar design.
- Go to index.html file.
- Go to the Loader section (check comments) and remove the whole section.
- Go to main.js file.
- Go to Disabling code section (check comments) and change the code accordingly.
- Take a look at the attributes of elements being changed in the airspace.css file also and carefully change the code.
- Go to airspace.css file.
- Under the slider id css, enter the url of new background image in the background attribute.
- Create a new html page in the root directory.
- Enter the required intial information for the new page (Take the help of the intial information available in other html pages).
- In the sitemap.txt file, add the declaration of the new page (take the help of other page declarations).
- Go to index.html file.
- Go to the About Sugar section (check comments) adn add the new thumbnail url in the poster attribute of the html video tag.
- Go to fontsquirrel.
- Search the required font and go the specified page.
- Under Webfont Kit, enable all font formats and click Download @font-face kit.
- Add all the font format files to the fonts folder.
- Go to the googlefonts.css file and add those references.
- Go to Google Analytics.
- Your account needs admin rights so ask Samson Goddy for admin permissions.
- Log in using this account.
- Get the final code from website.
- Go to footer.html file
- Replace the existing code with the final code under the Google analytics code section (check comments).
- Go to nav.html file.
- Please be aware that we have 2 types of headers/navigation bars and for each header, we have 2 logos associated(static and dynamic)(refer to Logo subsection in About the website/project section). Code is written to accommodate both the logos and the necessary disabling is done in the main.js file.
- To change the dynamic logo, replace the new svg in space of the existing svg logo path in nav.html file.
- Do this for the 2 header sections in nav.html file.
- Go to main.js file.
- We have code to change colours of dynamic logo under Colour changing affect of logo section (check comments).
- Change/add code there.
- To change the static logo, replace the new png in space of the existing png logo path in nav.html file.
- Do this for the 2 header sections in nav.html file.
- Go to .htaccess file
- Change/Edit the code there.
- Go to /css/ion_icon_customization.scss file.
- Find the color section you wish the change (it is commented)
- Change the variable here only.
- Do not change the code below the variables unless you wish to add or remove a color instead of changing a color.
In this section, we will guide you through the steps to add new icons. By following these steps, you will be able to customize icons.
-
Install FontForge:
- Download and install FontForge from FontForge's official website.
-
Create or Prepare Your Icon:
-
Open Your .ttf File in FontForge:
- Open FontForge and navigate to File > Open to select the .ttf file you want to edit (e.g., www/css/fonts/ionicons.ttf).
-
Add a New Glyph Slot:
- In the FontForge interface, find an empty slot or select an existing glyph that you want to replace.
-
Import Your Icon:
- Double-click on the empty slot or the slot you want to replace to open the glyph editor.
- Go to
File > Import
and select the SVG file of your icon. - Adjust the size and position of your icon to ensure it fits well within the glyph boundaries.
- Remember the Unicode character corresponding to your icon (e.g.,
\e93c
). You may need this for referencing the icon in your project.
-
Save Your Changes:
- Once you're satisfied with the new icon, go to
File > Generate Fonts
to save the .ttf file. - Choose the appropriate options and generate the font file. This will save your .ttf file with the new icon included.
- Once you're satisfied with the new icon, go to
-
Test Your Updated Font:
- Replace the existing www/css/ionicons.ttf file with the updated one, keeping the same name.
- Open
www/css/ionicons.min.css
and add the following CSS rule:
.ion-logo-[new-icon-name]:before { content: "\[unicode-code]"; }
- Replace
[new-icon-name]
with your new icon name and[unicode-code]
with its Unicode value. - Save the CSS file. Now you can use
[new-icon-name]
to access your brand new icon.
-
Updating Ion Icons
- Install the latest version of Ion Icons by running the following command:
npm i ionicons@7
- Install the latest version of Ion Icons by running the following command:
In this section, we will guide you through the steps for creating a new blog post.
-
Navigate to the _post directory:
- In the site's main directory, open the _post folder. This is where all your blog posts are stored.
-
Create a New Markdown File:
- Create a new file in the _posts folder. Name the file in the format
YYYY-MM-DD-title.md
.
- Create a new file in the _posts folder. Name the file in the format
-
Add Front Matter:
- At the top of your new file, add front matter between
---
lines. This metadata tells Jekyll how to handle the post. Here’s a basic template:
--- layout: post title: "How to Make a Blog Post?" date: YYYY-MM-DD categories: press ---
- We have three categories: press, event, and community.
- At the top of your new file, add front matter between
-
Write your content:
- Below the Front Matter, write the content for your blog post in Markdown. You can add headings, images, links, lists, and more using Markdown syntax.
-
Save and Preview:
- Save the file, then run
jekyll serve
in your terminal to start the local server. Visithttp://localhost:4000
to preview your blog post.
- Save the file, then run
In this section, we will guide you through the steps for creating a new FAQ.
-
Navigate to the _faqs directory:
- In the site's main directory, open the _faqs folder. This is where all your FAQ posts are stored.
-
Create a New Markdown File:
- Create a new file in the _faqs folder.
-
Add Front Matter:
- At the top of your new file, add front matter between
---
lines. This metadata tells Jekyll how to handle the post. Here’s a basic template:
--- question: "The question you want to add" answer: "The answer to that question" ---
- At the top of your new file, add front matter between
-
Save and Preview:
- Save the file, then run
jekyll serve
in your terminal to start the local server. Visithttp://localhost:4000
to preview your FAQ.
- Save the file, then run