Giter Club home page Giter Club logo

devdocs's Introduction

Moodle Developer Resources

Gitpod Ready-to-Code CI Score Lint status Build status Build status

Introduction

This repository includes the source for the Moodle Developer Resources - a collection of resources aimed at making your life as a Moodle Developer easier.

Contributing

These resources are written by developers, for developers. We value your input and your help in adding to them.

There are many ways that you can help, from reporting inaccuracies, and missing documentation, to making small corrections and, of course, creating new resources for others to make use of.

If you plan to contribute, then you may wish to setup a local development environment to make it easier to do so.

We highly recommend that you read our documentation contributions guide, which includes important information on getting started.

Installation

For more information on the installation process see our installation documentation, but if you want to jump right in then the easiest way is using NVM and then running:

nvm install
npm i -g yarn
yarn
yarn start

Building your content

During development you will almost certainly want to use the yarn development server, however you will sometimes need to build the content to use certain features.

This is easily achieved with yarn:

yarn build

This command will compile all of the documentation into static HTML files complete with all appropriate resources.

As part of this build, the validity of all internal links will be checked. For this reason we strongly recommend building the content locally before submitting a pull request as broken internal links will lead to a build failure immediately.

You may also need to configure the build to view it locally. This can be achieved using a .env file in the project root. For more information on the format of the .env file, see the documentation in the .env.default file.

devdocs's People

Contributors

abgreeve avatar andrewnicols avatar aurelie-moodle avatar crazyserver avatar davewoloszyn avatar dependabot[bot] avatar dpalou avatar ferranrecio avatar geoffreyvanwyk avatar huongnv13 avatar ilyatregubov avatar jleyva avatar juliavs85 avatar junpataleta avatar lameze avatar leonstr avatar lucaboesch avatar marxjohnson avatar mickhawkins avatar noeldemartin avatar olgakoenig1 avatar paulholden avatar phmemmel avatar roland04 avatar safatshahin avatar sarjona avatar stronk7 avatar timhunt avatar vmdef avatar wildgirl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

devdocs's Issues

[repo] Create coding styles

We need to document our various coding styles for:

  • Javascript
  • Markdown
  • CSS
  • JSX

We should also provide appropriate linting and related tools where possible.

Part of this work is covered by #40 but we need to turn this into a written coding style to make it easier to understand.

[docs] Migrate Plugin_contribution

The URL of the page on https://docs.moodle.org/dev/

https://docs.moodle.org/dev/Plugin_contribution

Is this documentation specific to a Moodle version?

No

What location would you suggest in the new docs?

There are several pages associated with https://docs.moodle.org/dev/Plugin_contribution, like https://docs.moodle.org/dev/Plugin_types or https://docs.moodle.org/dev/Plugin_contribution_checklist).

I would suggest adding most of them to /general/development/plugins/ but link them all inside Guides/Developer guides/Plugins :-)

[docs] Migrate New_feature_ideas

The URL of the page on https://docs.moodle.org/dev/New_feature_ideas

New_feature_ideas

Is this documentation specific to a Moodle version?

No

What location would you suggest in the new docs?

I think this information should be placed as a section in the general/development/new-features-ideas.md (probably will need to adapt part of the text to avoid repetitions).

[chore] Add migrated pages checks

What do we need to do?

Create a job to parse the data/migratedPages.yml file and check that the routes are up-to-date and point to a valid location.

[docs] Create documentation to describe available tooling

What is the Moodle feature that needs documenting?

This is partially already implemented in /docs/tools but it needs to move out of there.

I'd suggest it should be in /general/development/tools and have it's own navbar link perhaps.

We need to document:

  • MDK - #54
  • Our PHP code sniffs - #54
  • moodle-plugin-ci
  • Our official docker images
  • grunt, eslint, stylelint, and friends
  • CiBoT

We may also want to consider documenting the following under tools:

  • PHPUnit
  • Behat

Is this documentation specific to a Moodle version?

No

Are you able to provide a patch for this?

Yes - I will create one

[docs] Improve academy metadata

For links to the Moodle Academy we need to improve, and find a way to maintain the metadata.

@jgramp has suggested that we should also add:

  • Estimated completion time (e.g. 4 hours, 2 days, 1 week)
  • Level (Beginner to Advanced)

I wonder whether we can have this json generated on the Moodle Academy, with the above fields set as Course custom fields. If Academy can define these as custom fields, and then provide us with a PHP endpoint to generate the JSON content, then we can fetch this periodically (i.e. every sunday or on manual request) and commit it to the repository, and then use it during builds.

[docs] Migrate Testing pages

The URL of the page on https://docs.moodle.org/dev/

https://docs.moodle.org/dev/Testing

Is this documentation specific to a Moodle version?

No

What location would you suggest in the new docs?

general/development/process/testing.md

Apart from that page, there are other pages related to Testing that might be migrated together:

[docs] Include links to Moodle Academy

We should work with Jess Gramp (@jgramp) and Rajneel to work out how best to link from the Developer resources to the development courses in the Moodle Academy.

From a User Experience perspective it would be good to have:

  • A navbar element
  • A landing page explaining that courses are available and linking to a landing page on the Academy

[repo] Move github repo to moodlehq/?

We need to move this repo to the moodlehq organisation and set it all up as appropriate.

We need to determine the most appropriate repository name for this.

Create links from old docs to new for migrated docs

As part of the migration we need to:

  • create a new template on the legacy docs pointing to the new doc
  • update code to use this new template as we migrate docs
  • mark the docs are read-only
  • mark any docs which we do not plan to migrate as obsolete + read-only

[docs] Create documentation for Code of conduct

What is the Moodle feature that needs documenting?

We should make sure that:

  • we have a code of conduct
  • we have all read it
  • require that it be signed for contributions?

As far as I'm aware we don't really have a code of conduct at the moment. We do have a Forums code of conduct for taking part in the Moodle forums, but it is out-dated and does not apply clearly to this project.

One CoC that we may want to consider adopting is the Contributor Covenant (https://www.contributor-covenant.org/), which is widely used within the Open Source community.

Is this documentation specific to a Moodle version?

No

Are you able to provide a patch for this?

No (Default)

[docs] Improvement in "QA testing "

What is the URL of the page?

general/development/process/qatesting.md

What is the issue with this page?

We should change references from contact Helen to contact the QA team and turn them into a link with instructions on how to contact Helen (i.e. create a new issue?).

Pinging @wildgirl to know the best way to proceed here.

Are you able to provide a patch for this?

Yes - I will create one

[docs] Create documentation for Developer quick start

What is the Moodle feature that needs documenting?

We have a placehodler for a quick start in /docs/gettingstarted/quickstart

It would be great to get some good quick start docs.

Is this documentation specific to a Moodle version?

Unsure (Default)

Are you able to provide a patch for this?

No (Default)

[chore] Domain name selection

What do we need to do?

We're currently trying to acquire https://moodle.dev, which is currently squatted. This may take some time.

In the mean time, it would be good to have some more identity that github.io. I have a few suggestions, all of which are currently available for a reasonable cost:

  • learnmoodle.dev
  • learnmoodle.io
  • moodledev.io
  • moodledev.info
  • moodle.sh
  • moodle.how
  • moodle.fyi
  • moodledev.how
  • moodledev.fyi
  • moodle.wiki

Any thoughts?

[chore] Linter warns about title level 1 even if you change it

What do we need to do?

On metadata you can specify a title that will be displayed in 3 places:

  • Sidebar / menus
  • HTML head title tag.
  • Level 1 title on page.

If you want the title from sidebar and level 1 differ, you have to write a new level 1 title using a single hash, but then the linter warns you.

[chore] Highlight docs which are draft, WIP, out-of-date, etc.

What do we need to do?

Identify documents in various state in the front-matter and turn this into a page banner with links to contributing to docs, etc.

For example:

---
title: Question bank
draft:
  issueNumber: 99
  trackerIssue: MDL-12345
tags:
  - draft
---

Could be turned into a banner which links to the devdocs issue with information, and the Tracker issue (if relevant), and provides links to the devdocs contributing docs, etc.

Similarly a Draft tag could warn users that this page is a draft and may not be complete, and to see issue # for more information or provide feedback.

[hosting] Determine hosting details for new site

As part of the branding, we need to determine the brand, domain, and hosting solution for the new site.

I'd propose that we go for: https://develop.moodle.org

We may need to use a different TLD to ensure that there is no possibility for malicious content (not 100% sure here) but @ mickhawkins may have thoughts on the topic.

As well as the host name, we need to determine any branding that goes with it, as well as colour schemes.

Finally we need to determine the optimum hosting of the content.

For now I'd suggest that we may want to go with Github Pages and us their CNAME hosting option.

[chore] Configure GitHub action to handle page migrations

What do we need to do?

Suggestion after discussion with Eloy.

We already track a list of migrated pages in the migratedPages.js file.

At the moment we manually edit the legacy docs to add the Template link after an issue is merged.

What we could look to do is, for any page which has been migrated:

  • use the WikiMedia API to set the {{Template:Migrated|newDocId=/path/to/new/doc}}
  • Protect the page from further changes.

This would allow us to reduce steps in the migration, and would allow us to restructure pages in the new docs and have the Migration links continue to work.

The WikiMedia API should support these changes.

Include web service documentation for each release

This issue is about importing the list of web services in each Moodle release and pulling them in to the dev docs as a JSON file which we can render to devdocs.

This could then be extended to add searchability, and show other metadata where possible.

Perhaps the WS docs can also be pulled in?

[Experience] Decide upon Homepage featureset to highlight

The frontpage component has space to highlight a number of core features.

We need to decide what these features should be, and then work with Marketting to get appropriate iconography.

We also need to determine the best ordering for these.

[docs] Create documentation for Contributing to docs

What is the Moodle feature that needs documenting?

We need to write:

  • CONTRIBUTING.md
  • Something in the actual docs, maybe under Community

Is this documentation specific to a Moodle version?

No

Are you able to provide a patch for this?

No response

[chore] Update the documentation credits automatically from the Mediawiki API

[docs] Improve OS documentation on Using the Moodle App in a browser page

What is the URL of the page?

docs/guides/moodleapp/app-in-browser

What is the issue with this page?

Help wanted!

Use app in browser documentation has only been tested on Linux. If you are using a different operative system tell us here how it went to improve the docs.

Are you able to provide a patch for this?

No response

[docs] Create documentation for Moodle Icons

What is the Moodle feature that needs documenting?

Moodle Icon requirements for:

  • general plugin icons
  • activity icons

Is this documentation specific to a Moodle version?

Yes

Are you able to provide a patch for this?

No (Default)

[chore] Update third-party libraries from thirdpartylibs.xml file

What do we need to do?

While reviewing #87, Andrew suggested that with the libraries we should:

  • update the existing thirdpartylibs.xml files in core and add:
    • whether customisations have been made (<customised /> if true)
    • the URL source of the library
    • the copyright owner
  • create a script to parse the various thirdpartylibs files and turn them into markdown
  • turn that into a Github action run weekly

[repo] Add Github issue templates

We should add templates for:

  • Migrating documentation from the legacy site
  • Creating new documentation
  • Chores (like updating dependencies, etc.)
  • Reporting bugs in documentation
  • Reporting bugs in the system

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.