Commit 132d577e authored by Ravgeet Dhillon's avatar Ravgeet Dhillon 💬
Browse files

better project and documentation structure

parent a7d33da0
......@@ -11,5 +11,4 @@ assets/popper.js/
assets/slick-carousel/
assets/moment/
assets/css/
.vscode
_data/api_fetch/
\ No newline at end of file
_data/api_fetch/
{
"prettier.tabWidth": 4,
"prettier.printWidth": 120,
"prettier.disableLanguages": ["html", "yaml"]
}
......@@ -8,21 +8,21 @@ Therefore this document suggests what we consider ideal behaviour, so you know w
### Advice
* Be respectful and considerate:
* Disagreement is no excuse for poor behaviour or personal attacks. Remember that a community where people feel uncomfortable is not a productive one.
* Be patient and generous:
* If someone asks for help it is because they need it. Do politely suggest specific documentation or more appropriate venues where appropriate, but avoid aggressive or vague responses such as "RTFM".
* Assume people mean well:
* Remember that decisions are often a difficult choice between competing priorities. If you disagree, please do so politely.
* If something seems outrageous, check that you did not misinterpret it. Ask for clarification, but do not assume the worst.
* Try to be concise:
* Avoid repeating what has been said already. Making a conversation larger makes it difficult to follow, and people often feel personally attacked if they receive multiple messages telling them the same thing.
- Be respectful and considerate:
- Disagreement is no excuse for poor behaviour or personal attacks. Remember that a community where people feel uncomfortable is not a productive one.
- Be patient and generous:
- If someone asks for help it is because they need it. Do politely suggest specific documentation or more appropriate venues where appropriate, but avoid aggressive or vague responses such as "RTFM".
- Assume people mean well:
- Remember that decisions are often a difficult choice between competing priorities. If you disagree, please do so politely.
- If something seems outrageous, check that you did not misinterpret it. Ask for clarification, but do not assume the worst.
- Try to be concise:
- Avoid repeating what has been said already. Making a conversation larger makes it difficult to follow, and people often feel personally attacked if they receive multiple messages telling them the same thing.
### Applies to
* [GNOME Bugzilla](http://bugzilla.gnome.org/)
* [GNOME mailing lists](http://mail.gnome.org/)
* [Individuals](https://wiki.gnome.org/Foundation/CodeOfConduct/Signatures/) who have signed our list.
- [GNOME Bugzilla](http://bugzilla.gnome.org/)
- [GNOME mailing lists](http://mail.gnome.org/)
- [Individuals](https://wiki.gnome.org/Foundation/CodeOfConduct/Signatures/) who have signed our list.
### Code of Conduct Committee
......@@ -31,4 +31,5 @@ The [Code of Conduct Committee][code-of-conduct-committee] is appointed by the G
The [committee's page][code-of-conduct-committee] has links to the Codes of Conduct for conferences, events, our photography policy, and the incident response guidelines for organizers.
<!-- markdown variables -->
[code-of-conduct-committee]: https://wiki.gnome.org/CodeOfConductCommittee/
\ No newline at end of file
[code-of-conduct-committee]: https://wiki.gnome.org/CodeOfConductCommittee/
......@@ -17,29 +17,47 @@ As for everything else in the project, the contributions to GTK.org are governed
## What can you contribute
GTK.org is an open source project and we love to receive contributions from our community — you! You can contribute to the GTK.org in any way you want, that has the potential to make GTK.org a better website. Some common ways to contribute are listed below:
* Improving documentation
* Bug Tracking
* Feature Requests
* Design Refactoring
* Images and Illustrations
* New Content
* Blog Posts
* Usecase Studies
- Improving documentation
- Bug Tracking
- Feature Requests
- Design Refactoring
- Images and Illustrations
- New Content
- Blog Posts
- Usecase Studies
### Adding Documentation pages
Documentation pages are those which are listed under the `/docs/*` URL pattern.
To add a new documentation page, follow the steps below:
#### To add a new documentation section, follow the steps below:
1. Create a new directory under `_docs` with all letters lowercase.
2. Add `index.md` to this new directory that you created in the abpve step and add the following to allow Jekyll to convert the Markdown files into HTML format:
```
---
---
```
3. Send a merge request using one of the merge request template.
#### To add a new documentation page, follow the steps below:
1. Add a new `.md` file with the following naming convention:
* `<doc-page-name>.md` where `<doc-page-name>` is the name of the page. (Name should be assigned according to how it will appear in the URL)
2. In this new Markdown file, add the following front matter along with the file's content:
- `<doc-page-name>.md` where `<doc-page-name>` is the name of the page. (Name should be assigned according to how it will appear in the URL)
2. In this new Markdown file, add the following to allow Jekyll to convert the Markdown files into HTML format:
```
permalink: /path/to/:name
# specifies the URL path of the file which will be appended to the site's url
---
---
```
3. Add the information about the new file to [\_data/stuff.yml](_data/stuff.yml).
4. Send a merge request using one of the merge request template.
3. Send a merge request using one of the merge request template.
> If want a more detailed explanation about how to do the thing, you can check this [blog post](https://ravgeetdhillon.github.io/blog/adding-pages-to-jekyll-site/) by [Ravgeet Dhillon](https://gitlab.gnome.org/ravgeetdhillon/) on how to add documentation pages to the GTK website.
......@@ -50,9 +68,10 @@ All the images and illustrations are present in the [assets/img][image-directory
`<role>-<name>.<ext>`
where
* `<role>` is the context for which the image is used in the website. For example if the image is going to be used in documentation pages, the `<role>` would be doc
* `<name>` is the name of the image. (Make sure that you provide a unique name for the image)
* `<ext>` is the extension of the image. Valid extensions are `.jpg`, `.jpeg`, `.svg`, `.png` and others. (Make sure that the images/illustrations you provide are optimized for size and quality)
- `<role>` is the context for which the image is used in the website. For example if the image is going to be used in documentation pages, the `<role>` would be doc
- `<name>` is the name of the image. (Make sure that you provide a unique name for the image)
- `<ext>` is the extension of the image. Valid extensions are `.jpg`, `.jpeg`, `.svg`, `.png` and others. (Make sure that the images/illustrations you provide are optimized for size and quality)
> A valid image name for an image to be used as a wallpaper or just a display image is: `wall-computer.png` or `wallpaper-computer.png`
......@@ -63,51 +82,68 @@ All the links and paths are relative to the website URL. Donot give absolute URL
### Adding/Updating/Removing Dependencies
1. Create a local clone of the website:
```
$ git clone https://gitlab.gnome.org/Infrastructure/gtk-web.git
```
2. Change into the gtk-web directory:
```
$ cd gtk-web
```
3. Based on what you want to do, proceed further as given below:
* #### Adding Dependency
To add a new dependency, run the following command:
```
$ npm install <package-name> --save
```
* #### Updating Dependency
To add update a particular dependency, run the following command:
```
$ npm update <package-name> --save
```
To add update all the dependencies, run the following command:
```
$ npm update --save
```
* #### Removing Dependency
To remove a new dependency, run the following command:
```
$ npm uninstall <package-name> --save
```
- #### Adding Dependency
To add a new dependency, run the following command:
```
$ npm install <package-name> --save
```
- #### Updating Dependency
To add update a particular dependency, run the following command:
```
$ npm update <package-name> --save
```
To add update all the dependencies, run the following command:
```
$ npm update --save
```
- #### Removing Dependency
To remove a new dependency, run the following command:
```
$ npm uninstall <package-name> --save
```
## How to submit a contribution
#### For listing bugs
1. Open an issue and provide us with appropriate information using our [Issue Template]().
2. (Optional) If you can solve the issue filed by you, read below on how to submit a pull request.
#### For feature requests
If you find yourself wishing for a something that doesn't exist in GTK.org, you are probably not alone. Open an issue which describes the feature you would like to see, how it would affect the community, and how it should work.
#### For sending Pull Requests
1. Create your own fork of the code.
2. Do the changes in your fork.
3. Send us a pull request with appropriate information using our Pull Request Template.
## Community
You can chat with the core team on IRC. The core is available to discuss about the things that can make the website better.
<!-- markdown variables -->
[code-of-conduct]: CODE_OF_CONDUCT.MD/
[image-directory]: assets/img/
......@@ -57,9 +57,6 @@ exclude:
- '*.sh'
- gtk-web.doap
# folder which contains all the collections
collections_dir: collections
collections:
docs:
output: true
......@@ -70,6 +67,7 @@ defaults:
- scope:
type: docs
values:
permalink: /docs/:path
layout: documentation
navbar_type: dark
......
# This file contains the navigation links present in the header and footer of the website
# This file contains the navigation links present in the header and footer of the website along with the links in the documentation pages
# to add sections to the footer of the website, add a section with the following attributes:
# title: the display text for the section
......@@ -7,94 +7,110 @@ menu_links_sections:
- title: Support
- title: Community
# To add navigation links to the website, add a new link with the following attributes:
# To add navigation links in the website, add a new link with the following attributes:
# name: display text of the link
# href: the location where the link points to
# header: set this to 'true' if the link should be present in the header, else set 'false'
# footer: set this to 'true' if the link should be present in the footer, else set 'false'
# section: if footer is set to 'true', specify the name of the section the link belongs. Make sure that the section exists
# external: if the link provided in href is an external link i.e it points to a link outside of the website, then set this to 'false', else don't add this attribute
menu_links:
- name: GTK
href: /
header: false
footer: true
section: Project
- name: Features
href: /features/
header: true
footer: true
section: Project
- name: Docs
href: /docs/
header: true
footer: true
section: Project
- name: Downloads
href: https://download.gnome.org/sources/gtk+/
header: false
footer: true
section: Project
external: true
- name: Community
href: /community/
header: true
footer: true
section: Community
- name: License
href: https://gitlab.gnome.org/GNOME/gtk/tree/master/COPYING
header: false
footer: true
section: Project
external: true
- name: Releases
href: https://gitlab.gnome.org/GNOME/gtk/-/releases
header: false
footer: true
external: true
section: Project
- name: FAQs
href: https://developer.gnome.org/gtk3/stable/gtk-question-index.html
header: false
footer: true
section: Support
external: true
- name: Code
href: https://gitlab.gnome.org/GNOME/gtk/
header: true
footer: true
section: Project
external: true
- name: Development Blog
href: https://blog.gtk.org/
header: true
footer: true
external: true
section: Community
- name: Discussion
href: https://discourse.gnome.org
header: false
footer: true
external: true
section: Community
- name: Report a Bug
href: https://gitlab.gnome.org/GNOME/gtk/issues/new
header: false
footer: true
section: Support
external: true
- name: Request a feature
href: https://gitlab.gnome.org/GNOME/gtk/issues/new
header: false
footer: true
section: Support
external: true
- name: Code of Conduct
href: https://wiki.gnome.org/Foundation/CodeOfConduct/
header: false
footer: true
section: Community
external: true
- name: Donate
href: http://www.gnome.org/foundation/
header: false
......@@ -102,9 +118,11 @@ menu_links:
section: Community
external: true
# To add social links to the website, add a new social link with the following attributes:
# To add social media links in the website, add a new social link with the following attributes:
# icon: the name of the icon on https://fontawesome.com/icons
# href: link to the social media profile
social_links:
- icon: fab fa-twitter
href: https://twitter.com/GTKtoolkit/
......@@ -113,103 +131,70 @@ social_links:
- icon: fab fa-discourse
href: https://discourse.gnome.org/c/platform/core/
# read out the CONTRIBUTING.md to know how to add documentation pages to the website
# to add sections to the sidebar on the documentation pages of the website, add a section with the following attributes:
# title: the display text for the section
# name: the name of the `.md` file in '/collection/_docs', to which the link should point
# name: the name of the directort created under '_docs'
# icon: the name of the icon on https://fontawesome.com/icons
sidebar_sections:
- title: Getting Started
name: getting-started
icon: fas fa-cogs
- title: Installations
name: installations
icon: fas fa-box-open
- title: Language Bindings
name: language-bindings
icon: fas fa-random
- title: Dev Tools
name: dev-tools
icon: fas fa-tools
- title: API References
name: apis
icon: fas fa-cubes
- title: Architecture
name: architecture
icon: fas fa-vector-square
# to add links to the sidebar on the documentation pages of the website, add a link with the following attributes:
# to add external links to the sidebar on the documentation pages of the website, add a link with the following attributes:
# title: the display text for the section
# name: the name of the `.md` file in '/collection/_docs', to which the link should point
# section: the name of the section the link belongs to
# external: if the link provided in href is an external link i.e it points to a link outside of the website, then set this to 'false', else dont add this attribute
sidebar_links:
- title: GNOME Builder
name: gnome-builder
section: Dev Tools
- title: Eclipse
name: eclipse
section: Dev Tools
- title: Mono Develop
name: mono-develop
section: Dev Tools
- title: Linux
name: linux
section: Installations
- title: Windows
name: windows
section: Installations
- title: MacOS
name: macos
section: Installations
# href: url on the external link
sidebar_external_links:
- title: GTK3
name: gtk3
section: API References
section: apis
href: https://developer.gnome.org/gtk3/stable/
external: true
- title: GTK4
name: gtk4
section: API References
section: apis
href: https://gnome.pages.gitlab.gnome.org/gtk/gtk/
external: true
- title: GLib, GObject, GIO
name: glib
section: Architecture
section: architecture
href: https://developer.gnome.org/glib/stable/
external: true
- title: GdkPixbuf
name: gdkpixbuf
section: Architecture
section: architecture
href: https://developer.gnome.org/gdk-pixbuf/stable/
external: true
- title: Pango
name: pango
section: Architecture
section: architecture
href: https://developer.gnome.org/pango/stable/
external: true
- title: GDK
name: gdk
section: Architecture
section: architecture
href: https://developer.gnome.org/gdk3/stable/
external: true
- title: Cairo
name: cairo
section: Architecture
section: architecture
href: https://www.cairographics.org/documentation/
external: true
- title: Hello World
name: hello-world
section: Getting Started
- title: Python
name: python
section: Language Bindings
- title: C++
name: cpp
section: Language Bindings
- title: JavaScript
name: javascript
section: Language Bindings
- title: Rust
name: rust
section: Language Bindings
---
permalink: /docs/:name/
---
GTK provides, directly or through various dependencies, a full platform for
......
---
permalink: /docs/:name/
---
# Overview of GTK and its Libraries
![GTK Architecture](/assets/img/docs/docs-gtk-architecture.png)
......
---
permalink: /docs/dev-tools/:name/
---
# Eclipse
![GitHub Logo](/assets/img/docs/docs-eclipse.png)
![Eclipse Logo](/assets/img/docs/docs-eclipse.png)
Eclipse is famous for its Java Integrated Development Environment (IDE), but
our C/C++ IDE and PHP IDE are pretty cool too. You can easily combine
......
---
permalink: /docs/dev-tools/:name/
---
# GNOME Builder
![GNOME Builder](/assets/img/docs/docs-builder.png)
......
---
permalink: /docs/dev-tools/:name/
---
# Mono Develop
![Mono Develop](/assets/img/docs/docs-mono-develop.png)
......@@ -40,4 +40,3 @@ a single code base for all platforms.
* **Search** for files, classes, and functions with lightning fast fuzzy search.
* **Explore APIs** used by your project with auto-completion for C/C++, Python, Rust, and Vala. For languages without native support, ctags integration is provided.
---
permalink: /docs/getting-started/:name/
---
# Getting Started
GTK is a widget toolkit. Each user interface created by GTK consists of
......
---
permalink: /docs/:name/
---
## Getting Started with GTK
......
---
permalink: /docs/:name/
---
# Installations
GTK is available on:
......
---
permalink: /docs/installations/:name/
---
# Setting up GTK for GNU/Linux and Unix
![GTK and Linux](/assets/img/docs/docs-gtk-linux.png)
......
---
permalink: /docs/installations/:name/
---
# Setting up GTK for Mac OS
![GTK and MacOS](/assets/img/docs/docs-gtk-macos.png)
......
---
permalink: /docs/installations/:name/
---
# Setting up GTK for Windows
![GTK and Windows](/assets/img/docs/docs-gtk-windows.png)
......
---
permalink: /docs/language-bindings/:name/
---
# GTKMM
## About
......@@ -119,6 +119,6 @@ If you want to get in touch with the original source files, you can visit the pr
## See More
* Project: [https://gitlab.gnome.org/GNOME/gtkmm/](https://gitlab.gnome.org/GNOME/gtkmm/)
* Docs: [https://www.gtkmm.org/en/documentation.html](https://www.gtkmm.org/en/documentation.html)
* Tutorial: [https://developer.gnome.org/gtkmm-tutorial/stable/index.html](https://developer.gnome.org/gtkmm-tutorial/stable/index.html)
- Project: [https://gitlab.gnome.org/GNOME/gtkmm/](https://gitlab.gnome.org/GNOME/gtkmm/)
- Docs: [https://www.gtkmm.org/en/documentation.html](https://www.gtkmm.org/en/documentation.html)
- Tutorial: [https://developer.gnome.org/gtkmm-tutorial/stable/index.html](https://developer.gnome.org/gtkmm-tutorial/stable/index.html)
---
permalink: /docs/:name/
---
# Language Bindings
Language Bindings (or wrappers) allow GTK to be used from other programming
......@@ -15,7 +15,7 @@ Language | v3 | v4
<a href="http://gtk2-perl.sourceforge.net/">Perl</a> | <i class="far fa-check-circle"></i> | <i class="far fa-check-circle"></i>
<a href="https://gtkd.org/">D</a> | <i class="far fa-check-circle"></i> | <i class="far fa-check-circle"></i>
<a href="https://gtk-rs.org">Rust</a> | <i class="far fa-check-circle"></i> | <i class="far fa-check-circle"></i>
<a href="https://github.com/gotk3/gotk3">Go</a> | <i class="far fa-check-circle"></i> | <i class="far fa-minus-circle"></i>
<a href="https://github.com/gotk3/gotk3">Go</a> | <i class="far fa-check-circle"></i> | <i class="fas fa-minus-circle"></i>
## GObject Introspection
......