0% found this document useful (0 votes)
4 views6 pages

OlyPrep Content Contribution Guide

The OlyPrep repository contains the source code and content for the OlyPrep website, designed for easy contribution through simple text files. It features a content hierarchy organized into tracks, units, and lessons, with specific formatting and interactive elements outlined for contributors. The document provides detailed instructions on writing and structuring content using Markdown and shortcodes.

Uploaded by

rfijaj003
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

OlyPrep Content Contribution Guide

The OlyPrep repository contains the source code and content for the OlyPrep website, designed for easy contribution through simple text files. It features a content hierarchy organized into tracks, units, and lessons, with specific formatting and interactive elements outlined for contributors. The document provides detailed instructions on writing and structuring content using Markdown and shortcodes.

Uploaded by

rfijaj003
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

OlyPrep

Welcome! This repository hosts the source code and all the written content for the OlyPrep
website.

If you're here to learn, we recommend visiting the website directly. If you're here to
contribute, this guide will walk you through the process of authoring content.

The process of writing content has been designed for simplicity. No technical knowledge is
required to contribute, as contributions are made primarily through simple text files.

Table of Contents
• The Basics: How Content Files Work
• Content Hierarchy
• File Reference
◦ Track Files
◦ Unit Files
◦ Lesson Files
• Writing Lesson Content
◦ Text and Formatting (Markdown)
◦ Interactive Elements (Shortcodes)
• Shortcode Reference
◦ General Syntax
◦ spoiler
◦ quiz

The Basics: How Content Files Work


Every piece of content on the website is a simple text file (.md). At the very top of each
file, there is a configuration block enclosed by +++ symbols. This block contains settings
for the page, like its title.

+++
# Settings go here
+++

(Main content goes here)

Settings are defined with a name and a value, like title = "My Title".

Sometimes, related settings are grouped together under a section header, which is a name
in square brackets, like [extra]. You can even have sections within sections, like
[[Link]] which defines a groups section inside of extra.
Content Hierarchy
The content is organized into a three-level hierarchy, similar to a book:

1. Track: The main subject (like a book). Examples: "IOI", "Math Olympiad".
2. Unit: A chapter within a track. Example: "Number Theory".
3. Lesson: A single page or topic within a unit.

The folder structure in content/ matches this: content/<track_name>/<unit_name>/


<lesson_name>.md.

File Reference
This section details the settings for each type of content file.

Track Files

A track is the highest-level category. It is defined by an _index.md file placed in a track's


main folder.

• File Location: content/<track_name>/_index.md

Settings:

Setting
Description
Name
title The official name of the track (e.g., "Math Olympiad").
template This should always be "[Link]".
description A detailed description of the track's subject matter.
(Under the [extra] section) A short, catchy title for the track card on the
hook_title
website homepage.
(Under the [extra] section) A short, descriptive subtitle for the track card on
hook_subtitle
the website homepage.
(Under the [extra] section) A list of the unit folder names that belong to this
units
track. The order in the list determines the order on the website.

Example:

+++
title = "IMO"
template = "[Link]"
description = "From number theory to combinatorics, master the art of mathematical problem-solving."

[extra]
hook_title = "Math"
hook_subtitle = "Master the art of mathematical problem-solving."
units = [ "number-theory", "algebra" ]
+++

Unit Files

A unit is a "chapter" within a track. It is defined by an _index.md file inside a unit's folder.

• File Location: content/<track_name>/<unit_name>/_index.md

Settings:

Setting Name Description


title The name of the unit (e.g., "Number Theory").
template This should always be "[Link]".
description A short description of what the unit covers.
This defines the [[Link]] section. It lets you group lessons within the
[[Link]] unit under subheadings. Each group has a title and a list of lesson filenames.
The order in the list determines the order on the website.

Example:

+++
title = "Number Theory"
template = "[Link]"
description = "Exploring the properties of integers."

[[Link]]
"Divisibility" = [ "division-algorithm", "modular-arithmetic" ]
"Prime Numbers" = [ "sieve-of-eratosthenes" ]
+++

Lesson Files

A lesson is a single content page.

• File Location: content/<track_name>/<unit_name>/<lesson_name>.md

Settings:

Setting Name Description


title The title of the lesson.
template This should always be "[Link]".
description A brief summary of the lesson's content, used for search and previews.

Example:

+++
title = "The Division Algorithm"
template = "[Link]"
description = "Understanding the foundation of number theory: a = bq + r."
+++

(The main text of the lesson starts here...)

Writing Lesson Content


Text and Formatting (Markdown)

The main content of a lesson file is written in plain text using a simple formatting system
called Markdown. Here are some common examples for single-line formatting:

Style Syntax Example


Heading 1 # Heading Text # Heading Text
Heading 2 ## Heading Text ## Heading Text
Bold **text** text
Italic *text* or _text_ text
Bold & Italic ***text*** text
Inline Code `code` code
Inline LaTeX $f(x) = x^2$ f(x) = x^2

For a complete guide on all available formatting options, please refer to the CommonMark
Reference.

Code Blocks

To display multiple lines of code, wrap your code in triple backticks (```). You can also
specify the programming language after the opening backticks for syntax highlighting.

print("Hello, World!")
a=1+1

LaTeX Blocks

For mathematical formulas or equations that need to be on their own line, wrap them in
double dollar signs ($$).

$$
\sum_{i=1}^n i = \frac{n(n+1)}{2}
$$

Interactive Elements (Shortcodes)

To add special elements like quizzes or collapsible spoilers, you can use Shortcodes. These
are special commands you can type directly into your text. See the Shortcode Reference
below for a full list.
Shortcode Reference
General Syntax

Shortcodes have a start tag and an end tag. The start tag includes the shortcode's name
and its settings (called parameters). The content that the shortcode affects goes between
the start and end tags.

{% shortcode_name(parameter="value") %}
Content to be affected by the shortcode.
{% end %}

spoiler

This shortcode creates a collapsible block of text that is hidden until clicked.

How to use it:

{% spoiler(title="Click to reveal a hint") %}


This is the hidden content.
It can be multiple lines.
{% end %}

Settings:

• title: The text that is always visible. If you don't provide a title, it will just say
"Spoiler".

Body:

The content between the spoiler and end tags is what will be hidden.

quiz

This shortcode creates a multiple-choice question.

How to use it:

{% quiz(options=["Answer 1", "Answer 2", "Answer 3"], correct=1) %}


Your **question** text goes here.
{% end %}

Settings:

• options: A list of possible answers, each enclosed in quotes and separated by commas.
• correct: The correct answer. Important: This is a number that counts from 0. So,
correct=0 is the first answer, correct=1 is the second, and so on.

Body:
The text between the quiz and end tags is the question itself.

Common questions

Powered by AI

The use of Shortcodes in OlyPrep has significant implications for both content accessibility and site maintenance. Shortcodes provide a streamlined way to insert complex elements like interactive quizzes or spoiler texts with minimal effort, making these elements more uniformly accessible across the site by allowing contributors to easily implement them without needing deep technical expertise. This enhances the overall accessibility of interactive content for users. For site maintenance, Shortcodes offer a centralized method of updating content aspects, since changes to the shortcode definition automatically propagate to all instances across the site. This simplifies updates and ensures consistency without requiring each content piece to be individually altered, thus reducing the workload and potential for errors .

Interactive elements like quizzes within OlyPrep offer significant educational benefits by promoting active learning and reinforcing knowledge. Quizzes encourage learners to engage with the material actively and test their understanding regularly, which can enhance retention and understanding of the content. Instant feedback provided by quizzes helps learners identify areas of strength and those needing improvement, allowing them to focus their study efforts more effectively. Additionally, the use of quizzes can appeal to varied learning styles and make the learning process more dynamic and less monotonous, fostering a more engaging learning environment that can lead to better educational outcomes .

The configuration block in OlyPrep content files is used to set up essential settings that control how the page appears and is organized within the site. Each content file (Track, Unit, Lesson) starts with a configuration block enclosed by +++ symbols. This block contains key-identifiable settings such as 'title', which defines the name of the content; 'template', which specifies the content category (track, unit, or lesson); and 'description', which provides a brief overview of the content. Additionally, under sections like [extra], optional settings are grouped together, offering further customization, such as 'hook_title' for a short track name or 'units' to maintain the order of units within a track. This structured configuration ensures each page is correctly formatted and easily integrated into the site’s navigation .

In an OlyPrep content file, the 'title' setting names the specific piece of content, and the 'description' setting provides a succinct overview or summary. These settings play a critical role in both internal organization and user experience. The 'title' is displayed as the primary label for content, crucial for users as it helps them identify and select topics of interest easily. The 'description', often used in previews and search results, gives users a quick insight into what the content covers, aiding decision-making on whether it matches their learning goals. Together, they improve navigability and accessibility of learning materials by ensuring that users can efficiently locate the content most relevant to their needs .

Markdown enhances the writing process for lesson content in OlyPrep by providing a simple, intuitive way to apply text formatting, which reduces the technical barrier for content authors. This lightweight markup language uses straightforward syntax for common formatting needs, such as headings, bold, italic, inline code, and more. Markdown's simplicity allows contributors to focus on content creation without requiring extensive knowledge of complex HTML commands, thus streamlining the content development process and making it accessible for both technical and non-technical contributors .

The file hierarchy and naming convention in OlyPrep ensure consistency by establishing clear rules for where and how different content types should be stored and named. Each content type (Track, Unit, Lesson) is assigned a specific file path and file name format based on its role in the hierarchy. For instance, Tracks use an _index.md file in their main directories, Units use an _index.md file within their folders, and Lessons have individual .md files within Unit folders. This system allows contributors to easily locate existing files, understand the website structure at a glance, and add new content seamlessly into the correct location without disrupting the established order and flow .

The OlyPrep content is organized into a three-level hierarchy that resembles a book: Track, Unit, and Lesson. This structure facilitates user navigation by logically grouping content from broad subjects to specific topics, making it easier for users to find materials relevant to their needs. Within this hierarchy: a 'Track' functions like a book, representing the main subject such as "IOI" or "Math Olympiad". A 'Unit' acts like a chapter within a track, covering specific topics like "Number Theory", and a 'Lesson' is a singular topic within a Unit. This setup not only aids user navigation through structured learning paths but also simplifies content creation by following a consistent file organization and naming convention, thereby aiding contributors in understanding where new pieces of content should be located .

The 'spoiler' and 'quiz' shortcodes significantly enhance interactive learning on OlyPrep by introducing engagement and participation elements that deepen the learning experience. The 'spoiler' shortcode hides information until the user chooses to reveal it, which can be used to present hints or detailed explanations that only appear when the student is ready, encouraging active participation. Meanwhile, the 'quiz' shortcode creates multiple-choice questions that test users' understanding of the material, providing immediate feedback on correct answers. Together, these features foster a more engaging and interactive learning environment that goes beyond passive reading by prompting critical thinking, assessment, and self-paced learning .

Grouping lessons under subheadings within a unit in OlyPrep enhances topic comprehension by structuring information in a way that reflects logical progression and thematic relationships within the subject area. By organizing lessons into groups under descriptive subheadings, learners can more easily follow new concepts as they build on previous material. This method of organization helps learners to see connections between ideas and retain information more effectively, as each group forms a cohesive set of related lessons that guide the learner from basic to more complex topics. Such structured learning paths are key for hierarchical subject matter, like 'Prime Numbers' within 'Number Theory', allowing students to systematically build their knowledge .

Using specific templates like 'track.html', 'unit.html', and 'lesson.html' for each content type in OlyPrep standardizes the presentation and structure across all pages, enhancing user experience and ensuring consistency. Each template is tailored to the needs of its respective content type, ensuring that the features and layout are appropriate for the level of content being displayed. 'Track.html' can show overarching descriptions and entries points to units, 'unit.html' details the chapter-level content introducing grouped lessons, and 'lesson.html' focuses on individual learning material. This templating approach allows for consistency in design and functional behavior across the whole website, which aids both users in navigating the site seamlessly and developers by ensuring predictable content layouts when creating or updating the site .

You might also like