Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Markdown + YAML for the timeline #1293

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
Open

Conversation

hedyhli
Copy link
Member

@hedyhli hedyhli commented Apr 6, 2024

Closes #1235.

  • Timeline is now its standalone app that reads the source files on startup
  • Each entry now supports links (jump to entry) as a side-benefit of this feature
  • Everything should look the same, ideally, further testing would be needed1

Preview: https://deploy-preview-1293--pydis-static.netlify.app/timeline/

The key used for sorting is a date in the "2006-01-02" format which comes from the filename. The latter part of the filename is used as anchor links.

The date specified in the frontmatter is the actual format used for display.

Dates shown in the timeline currently have a range of formats:

  • Jan 2nd, 2006
  • January 2nd, 2006
  • January 2, 2006

All are copied as-is from the HTML.

I went ahead to convert all files to get things going quickly, since content needed to added sooner or later. Changing the format of YAML and file names is still possible, if reviewers insist.

Conversion data and scripts for reference
#!/usr/bin/env nu
for x in ( cat entries.json | from json -s ) {
    let slug = ($x.title | str downcase | str replace -ar '[^ \w]' ' ' | str kebab-case)
    let filename = $"pydis_site/apps/timeline/entries/($x.date | into datetime | format date '%Y-%m-%d_')($slug).md"
    mut content = $"---
title: ($x.title)
date: ($x.date)
icon: ($x.icon)
"
    if ($x.icon_color | str length) > 0 {
        $content += $"icon_color: ($x.icon_color)"
    }
    $content += $"
---

($x.content | python3 -c 'print('\n'.join(__import__('textwrap').wrap(open(0).read(),width=80)))')
"
    $content | save $filename
    echo $slug
}
Recovered JSON
[
  {
    "title": "Switch to new paste service",
    "date": "Jul 11th, 2023",
    "icon": "fa fa-comments",
    "icon_color": "pastel-pink",
    "content": "We migrate over to [pinnwand](https://github.com/supakeen/pinnwand)\nas the service that powers our paste bin over at\n[https://paste.pythondiscord.com/](https://paste.pythondiscord.com).\nWe made the switch as it comes with native light/dark modes, support for multi-file\npastes, additional support for text highlighting languages, and plus, it's written in\nPython!"
  },
  {
    "title": "Retirement of Joe and Sebastiaan",
    "date": "Jan 30th, 2023",
    "icon": "pydis",
    "icon_color": "",
    "content": "Having been at the helm of Python Discord for over 5 and 3 years respectively, Joe and\nSebastiaan retire and step down. They gain the @Founders role and continue as advisors\nto the @Directors, the new name of the original @Owners role.\n\nAt the same time, Mina and Zig join Leon as co-directors."
  },
  {
    "title": "Switch to forum-based help system",
    "date": "Nov 25th, 2022",
    "icon": "fa fa-comments",
    "icon_color": "pastel-pink",
    "content": "We migrate our help system to use a forum channel, retiring our home-grown rotating help\nsystem after 3 years of service and nearly 500,000 help sessions. Forum channels offer\na better experience as members can create their own dedicated thread in a discoverable place."
  },
  {
    "title": "Python 3.11 Release Stream",
    "date": "Oct 24th, 2022",
    "icon": "pydis",
    "icon_color": "",
    "content": "With the Python 3.10 Release Stream being such a success, we brought it back for the\nrelease of Python 3.11. Hosted by Leon, and CPython 3.11 Release Manager, Pablo Galindo,\nthey were joined by other CPython Core Developers. Together, they discuss the specific\nfeatures and the overall development process of the release.\n\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/PGZPSWZSkJI\"></iframe>"
  },
  {
    "title": "Summer Code Jam 2022 (CJ9)",
    "date": "July 21st, 2022",
    "icon": "fa fa-dice",
    "icon_color": "pastel-lime",
    "content": "We host the 9th Code Jam. This year, teams had to use **websockets** to create a\nproject based on the theme, **It's not a bug, it's a feature**. In all, 24 teams\nsubmitted their projects. At the end, we held a livestream demoing the top 10 projects\nand announcing the winner!\n\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/YZcVjFED6Hg\"></iframe>"
  },
  {
    "title": "Partnership with pyqtgraph",
    "date": "May 19th, 2022",
    "icon": "fa fa-handshake",
    "icon_color": "",
    "content": "The `#pyqtgraph` channel is created for the Scientific Graphics and GUI\nlibrary pyqtgraph, joining `#black-formatter`."
  },
  {
    "title": "Addition of @Sir Robin",
    "date": "Feb 21st, 2022",
    "icon": "fa fa-robot",
    "icon_color": "pastel-blue",
    "content": "Our arsenal of bots grows! We add @Sir Robin to power and manage all of our future\nevents and to support the Events Team."
  },
  {
    "title": "Trivia Night",
    "date": "Feb 12th, 2022",
    "icon": "fa fa-question",
    "icon_color": "pastel-green",
    "content": "How well do you know Python inside out? Members got to find out in a Trivia Night event.\nContestants were given questions about Python's internals, its development, and more.\nTo win, contestants had to get the most questions right while being fast to answer."
  },
  {
    "title": "Creation of Events Team",
    "date": "Feb 9th, 2022",
    "icon": "pydis",
    "icon_color": "",
    "content": "We form the Events Team to organise and run future events. Led by Kat and comprised by\nstaff members, the goal of the team is to ultimately host more events in a more\nsustainable way."
  },
  {
    "title": "Deployment of Smarter Resources",
    "date": "Feb 2nd, 2022",
    "icon": "fa fa-code",
    "icon_color": "pastel-red",
    "content": "We gave our resources pages some much needed love and\n[reorganised them into a single page](https://www.pythondiscord.com/resources/),\ncomplete with a shiny new resource filter that allows you to more quickly find\nones that relate to your interests, experience, learning style, and ability to pay!"
  },
  {
    "title": "We hit 300 000 members!",
    "date": "Jan 19, 2022",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "Thanks to an increasing growth rate, Python Discord's membership count doubled from\n150,000 to 300,000 in less than a year!"
  },
  {
    "title": "We host the Python 3.10 Release Stream",
    "date": "Oct 4th, 2021",
    "icon": "pydis",
    "icon_color": "",
    "content": "Leon and Pablo Galindo, CPython Core Developer and Release Manager, host the Python 3.10\nRelease Stream, joined by other core devs Carol Willing, Irit Katriel, \u0141ukasz Langa, and\nBrandt Bucher. They talked in-depth about the new features introduced in 3.10, the\ndevelopment of those features, and more!\n\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/AHT2l3hcIJg\"></iframe>"
  },
  {
    "title": "Partnership with Black",
    "date": "May 24th, 2021",
    "icon": "fa fa-handshake",
    "icon_color": "",
    "content": "We partner with the uncompromising code formatter project, Black, who were looking for a\nnew home for their real-time chat. Python Discord ended up being that home, resulting in\nthe creation of the `#black-formatter` channel."
  },
  {
    "title": "Summer Code Jam 2021 (CJ8)",
    "date": "July 9, 2021",
    "icon": "fa fa-dice",
    "icon_color": "pastel-orange",
    "content": "We host the 8th now-annual Code Jam. Teams had to create a program with an text-based user\ninterface (TUI), all designed around the theme of \u201cthink inside the box.\u201d Ultimately, 51\nteams submitted projects.\n[The winning submissions are listed on our website.](https://www.pythondiscord.com/events/code-jams/8/)"
  },
  {
    "title": "Inaugural run of Pixels",
    "date": "May 24, 2021",
    "icon": "fa fa-palette",
    "icon_color": "pastel-purple",
    "content": "Inspired by the subreddit, r/place, Pixels was our collaborative canvas event held\nbetween May 25 to June 14, providing a beginner-friendly API to paint pixels on a\nvirtual canvas.\n\n\nLater, we released [a blog post](https://blog.pythondiscord.com/pixels-summer-2021/)\nsummarizing what happened, our motives, and some stories from during development."
  },
  {
    "title": "Owners become PSF Fellows",
    "date": "April 23, 2021",
    "icon": "pydis",
    "icon_color": "",
    "content": "Joe, Leon, and Sebastiaan\n[are recognized as Python Software Foundation Fellows](https://pyfound.blogspot.com/2021/04/python-software-foundation-fellow.html) \nfor their substantial contributions to the Python ecosystem by fostering\nPython Discord."
  },
  {
    "title": "Summer Code Jam 2020 Highlights",
    "date": "Mar 21st, 2021",
    "icon": "fa fa-youtube-play",
    "icon_color": "pastel-red",
    "content": "We release a new video to our YouTube showing the best projects from the Summer Code Jam 2020.\nBetter late than never!\n\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/g9cnp4W0P54\"></iframe>"
  },
  {
    "title": "New feature: Weekly discussion channel",
    "date": "Mar 13th, 2021",
    "icon": "fa fa-comment",
    "icon_color": "pastel-purple",
    "content": "Every week (or two weeks), we'll be posting a new topic to discuss in a\nchannel called **#weekly-topic-discussion**. Our inaugural topic is a PyCon talk by Anthony Shaw called\n**Wily Python: Writing simpler and more maintainable Python.**.\n\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/dqdsNoApJ80\"></iframe>"
  },
  {
    "title": "We're on the Teaching Python podcast!",
    "date": "Mar 13th, 2021",
    "icon": "fa fa-microphone",
    "icon_color": "pastel-pink",
    "content": "Leon joins Sean and Kelly on the Teaching Python podcast to discuss how the pandemic has\nchanged the way we learn, and what role communities like Python Discord can play in this new world.\nYou can find the episode [at teachingpython.fm](https://www.teachingpython.fm/63)."
  },
  {
    "title": "Leon Sand\u00f8y appears on Talk Python To Me",
    "date": "Mar 1st, 2021",
    "icon": "fa fa-microphone",
    "icon_color": "pastel-green",
    "content": "Leon goes on the Talk Python to Me podcast with Michael Kennedy\nto discuss the history of Python Discord, the critical importance of culture, and how to run a massive\ncommunity. You can find the episode  [at talkpython.fm](https://talkpython.fm/episodes/show/305/python-community-at-python-discord)."
  },
  {
    "title": "We now have 150,000 members!",
    "date": "Feb 18th, 2021",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "Our growth continues to accelerate."
  },
  {
    "title": "We release The PEP 8 song",
    "date": "February 8th, 2021",
    "icon": "fa fa-music",
    "icon_color": "pastel-blue",
    "content": "We release the PEP 8 song on our YouTube channel, which finds tens of\nthousands of listeners!\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/hgI0p1zf31k\"></iframe>"
  },
  {
    "title": "Advent of Code attracts hundreds of participants",
    "date": "December 1st - 25th, 2020",
    "icon": "fa fa-snowflake-o",
    "icon_color": "pastel-red",
    "content": "A total of 443 Python Discord members sign up to be part of\n[Eric Wastl's excellent Advent of Code event](https://adventofcode.com/).\nAs always, we provide dedicated announcements, scoreboards, bot commands and channels for our members\nto enjoy the event in."
  },
  {
    "title": "We migrate all our infrastructure to Kubernetes",
    "date": "Nov 29th, 2020",
    "icon": "fa fa-wrench",
    "icon_color": "pastel-orange",
    "content": "As our tech stack grows, we decide to migrate all our services over to a\ncontainer orchestration paradigm via Kubernetes. This gives us better control and scalability.\n**Joe Banks** takes on the role as DevOps Lead."
  },
  {
    "title": "Python Discord hits 100,000 members!",
    "date": "Oct 22nd, 2020",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "Only six months after hitting 40,000 users, we hit 100,000 users. A\nmonumental milestone,\nand one we're very proud of. To commemorate it, we create this timeline."
  },
  {
    "title": "Python Discord hosts the 2020 CPython Core Developer Q&A",
    "date": "Oct 21st, 2020",
    "icon": "pydis",
    "icon_color": "",
    "content": "<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/gXMdfBTcOfQ\"></iframe>"
  },
  {
    "title": "Python Discord is now the new home of the PyWeek event!",
    "date": "Aug 16th, 2020",
    "icon": "fa fa-handshake",
    "icon_color": "pastel-pink",
    "content": "PyWeek, a game jam that has been running since 2005, joins Python\nDiscord as one of our official events. Find more information about PyWeek on [their official website](https://pyweek.org/)."
  },
  {
    "title": "PyDis summer code jam 2020 with the theme \u201cEarly Internet\u201d and Django as the technology",
    "date": "Jul 31st, 2020",
    "icon": "fa fa-dice",
    "icon_color": "pastel-blue",
    "content": "Sponsored by the Django Software Foundation and JetBrains, the Summer\nCode Jam for 2020 attracts hundreds of participants, and sees the creation of some fantastic\nprojects. Check them out in our judge stream below:\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/OFtm8f2iu6c\"></iframe>"
  },
  {
    "title": "Python Discord Public Statistics are now live",
    "date": "Jun 4th, 2020",
    "icon": "fa fa-chart-bar",
    "icon_color": "pastel-red",
    "content": "After getting numerous requests to publish beautiful data on member\ncount and channel use, we create [stats.pythondiscord.com](https://stats.pythondiscord.com/) for\nall to enjoy."
  },
  {
    "title": "Python Discord is now listed on python.org/community",
    "date": "May 28th, 2020",
    "icon": "fa fa-handshake",
    "icon_color": "pastel-pink",
    "content": "After working towards this goal for months, we finally work out an\narrangement with the PSF that allows us to be listed on that most holiest of websites:\nhttps://python.org/. [There was much rejoicing.](https://youtu.be/yciX2meIkXI?t=3)"
  },
  {
    "title": "ModMail is now live",
    "date": "May 25th, 2020",
    "icon": "fa fa-comments",
    "icon_color": "pastel-green",
    "content": "Having originally planned to write our own ModMail bot from scratch, we\ncome across an exceptionally good [ModMail bot by\nkyb3r](https://github.com/kyb3r/modmail) and decide to just self-host that one instead."
  },
  {
    "title": "PyDis Game Jam 2020 with the \u201cThree of a Kind\u201d theme and Arcade as the technology",
    "date": "Apr 17th, 2020",
    "icon": "fa fa-gamepad",
    "icon_color": "pastel-purple",
    "content": "The creator of Arcade, Paul Vincent Craven, joins us as a judge.\nSeveral of the Code Jam participants also end up getting involved contributing to the Arcade\nrepository.\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/KkLXMvKfEgs\"></iframe>"
  },
  {
    "title": "Python Discord hits 40,000 members, and is now bigger than Liechtenstein.",
    "date": "Apr 14, 2020",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "![](https://cdn.discordapp.com/attachments/354619224620138496/699666518476324954/unknown.png)"
  },
  {
    "title": "The new help channel system is live",
    "date": "Apr 5th, 2020",
    "icon": "fa fa-comments",
    "icon_color": "pastel-green",
    "content": "We release our dynamic help-channel system, which allows you to claim\nyour very own help channel instead of fighting over the static help channels. We release a [Help Channel Guide](https://pythondiscord.com/pages/resources/guides/help-channels/) to\nhelp our members fully understand how the system works."
  },
  {
    "title": "PyDis sixth code jam with the theme \u201cAncient technology\u201d and the technology Kivy",
    "date": "Jan 17, 2020",
    "icon": "fa fa-dice",
    "icon_color": "pastel-blue",
    "content": "Our Code Jams are becoming an increasingly big deal, and the Kivy core\ndevelopers join us to judge the event and help out our members during the event. One of them,\n@tshirtman, even joins our staff!\n\n<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/8fbZsGrqBzo\"></iframe>"
  },
  {
    "title": "PyDis hits 30,000 members",
    "date": "Dec 22nd, 2019",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "More than tripling in size since the year before, the community hits\n30000 users. At this point, we're probably the largest Python chat community on the planet."
  },
  {
    "title": "Sebastiaan Zeef becomes an owner",
    "date": "Sept 22nd, 2019",
    "icon": "pydis",
    "icon_color": "",
    "content": "After being a long time active contributor to our projects and the driving\nforce behind many of our events, Sebastiaan Zeef joins the Owners Team alongside Joe & Leon."
  },
  {
    "title": "The code of conduct is created",
    "date": "Oct 26th, 2019",
    "icon": "fa fa-scroll",
    "icon_color": "pastel-lime",
    "content": "Inspired by the Adafruit, Rust and Django communities, an essential\ncommunity pillar is created; Our [Code of\nConduct.](https://pythondiscord.com/pages/code-of-conduct/)"
  },
  {
    "title": "The Django rewrite of pythondiscord.com is now live!",
    "date": "Sep 15, 2019",
    "icon": "fa fa-code",
    "icon_color": "pastel-orange",
    "content": "The site is getting more and more complex, and it's time for a rewrite.\nWe decide to go for a different stack, and build a website based on Django, DRF, Bulma and\nPostgreSQL."
  },
  {
    "title": "PyDis hits 15,000 members; the \u201chot ones special\u201d video is released",
    "date": "Apr 8th, 2019",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "<iframe allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen=\"\" class=\"force-aspect-content\" frameborder=\"0\" src=\"https://www.youtube.com/embed/DIBXg8Qh7bA\"></iframe>"
  },
  {
    "title": "django-simple-bulma is released on PyPi",
    "date": "Dec 19th, 2018",
    "icon": "fa fa-code",
    "icon_color": "pastel-orange",
    "content": "Our very first package on PyPI, [django-simple-bulma](https://pypi.org/project/django-simple-bulma/) is a package that\nsets up the Bulma CSS framework for your Django application and lets you configure everything in\nsettings.py."
  },
  {
    "title": "PyDis hits 10,000 members",
    "date": "Nov 24th, 2018",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "We partner with RLBot, move from GitLab to GitHub, and start putting\ntogether the first Advent of Code event."
  },
  {
    "title": "First Hacktoberfest PyDis event; @Sir Lancebot is created",
    "date": "Oct 1st, 2018",
    "icon": "fa fa-dice",
    "icon_color": "pastel-blue",
    "content": "We create a second bot for our community and fill it up with simple,\nfun and relatively easy issues. The idea is to create an approachable arena for our members to cut\ntheir open-source teeth on, and to provide lots of help and hand-holding for those who get stuck.\nWe're training our members to be productive contributors in the open-source ecosystem."
  },
  {
    "title": "PyDis is now partnered with Discord; the vanity URL discord.gg/python is created",
    "date": "Jul 10th, 2018",
    "icon": "fa fa-handshake",
    "icon_color": "pastel-pink",
    "content": "After being rejected for their Partner program several times, we\nfinally get approved. The recent partnership with the r/Python subreddit plays a significant role in\nqualifying us for this partnership."
  },
  {
    "title": "PyDis hits 5,000 members and partners with r/Python",
    "date": "Jun 20th, 2018",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "As we continue to grow, we approach the r/Python subreddit and ask to\nbecome their official Discord community. They agree, and we become listed in their sidebar, giving\nus yet another source of new members."
  },
  {
    "title": "Do You Even Python and PyDis merger",
    "date": "Jun 9th, 2018",
    "icon": "fa fa-handshake",
    "icon_color": "pastel-pink",
    "content": "At this point in time, there are only two serious Python communities on\nDiscord - Ours, and one called Do You Even Python. We approach the owners of DYEP with a bold\nproposal - let's shut down their community, replace it with links to ours, and in return we will let\ntheir staff join our staff. This gives us a big boost in members, and eventually leads to @eivl and\n@Mr. Hemlock joining our Admin team"
  },
  {
    "title": "The privacy policy is created",
    "date": "May 21st, 2018",
    "icon": "fa fa-scroll",
    "icon_color": "pastel-lime",
    "content": "Since data privacy is quite important to us, we create a privacy page\npretty much as soon as our new bot and site starts collecting some data. To this day, we keep [our privacy policy](https://pythondiscord.com/pages/privacy/) up to date with all\nchanges, and since April 2020 we've started doing [monthly data reviews](https://pythondiscord.notion.site/6784e3a9752444e89d19e65fd4510d8d)."
  },
  {
    "title": "First code jam with the theme \u201csnakes\u201d",
    "date": "Mar 23rd, 2018",
    "icon": "fa fa-dice",
    "icon_color": "pastel-blue",
    "content": "Our very first Code Jam attracts a handful of users who work in random\nteams of 2. We ask our participants to write a snake-themed Discord bot. Most of the code written\nfor this jam still lives on in Sir Lancebot, and you can play with it by using the\n`.snakes` command. For more information on this event, see [the event page](https://pythondiscord.com/pages/code-jams/code-jam-1-snakes-bot/)"
  },
  {
    "title": "PyDis hits 2,000 members; pythondiscord.com and @Python are live",
    "date": "Mar 4th, 2018",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "The public moderation bot we're using at the time, Rowboat, announces\nit will be shutting down. We decide that we'll write our own bot to handle moderation, so that we\ncan have more control over its features. We also buy a domain and start making a website in Flask."
  },
  {
    "title": "Our logo is born. Thanks @Aperture!",
    "date": "Feb 3rd, 2018",
    "icon": "pydis",
    "icon_color": "",
    "content": "![](https://raw.githubusercontent.com/python-discord/branding/main/logos/logo_banner/logo_site_banner.svg)"
  },
  {
    "title": "Python Discord hits 1,000 members",
    "date": "Nov 10th, 2017",
    "icon": "fa fa-users",
    "icon_color": "pastel-dark-blue",
    "content": "Our main source of new users at this point is a post on Reddit that\nhappens to get very good SEO. We are one of the top 10 search engine hits for the search term\n\"python discord\"."
  },
  {
    "title": "Python Discord is created",
    "date": "Jan 8th, 2017",
    "icon": "pydis",
    "icon_color": "",
    "content": "**Joe Banks** becomes one of the owners around 3 days after it\nis created, and **Leon Sand\u00f8y** (lemon) joins the owner team later in the year, when the community\nhas around 300 members."
  }
]

Note that some iframes were stripped by markdownify.

Footnotes

  1. There are several instances where the ordering changed in the new version, this is because some items aren't currently correctly sorted by date. For example (left is before, right is after):

Copy link

netlify bot commented Apr 6, 2024

Deploy Preview for pydis-static ready!

Name Link
🔨 Latest commit e3c697f
🔍 Latest deploy log https://app.netlify.com/sites/pydis-static/deploys/66502073ff92350008bae521
😎 Deploy Preview https://deploy-preview-1293--pydis-static.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@hedyhli hedyhli added status: WIP Work In Progress area: backend Related to internal functionality and utilities area: frontend Related to site content and user interaction language: python Involves Python code priority: 2 - normal Normal Priority labels Apr 6, 2024
@coveralls
Copy link

coveralls commented Apr 6, 2024

Coverage Status

coverage: 100.0%. remained the same
when pulling e3c697f on feat/timeline-from-yaml
into ba6aec1 on main.

@jchristgit
Copy link
Member

This is great !!!!!!

@hedyhli hedyhli changed the title Fetch timeline entries from Markdown files with YAML frontmatter Markdown + YAML for the timeline May 3, 2024
@jchristgit
Copy link
Member

This is still great !!!!!!!!!!!!!

hedyhli and others added 9 commits May 24, 2024 12:46
- The timeline app is introduced, moved from the home app.
- Add a basic README.md to illustrate the overall code breakdown of the
  app as it is in the current stage.
- Two entries are added for now.
- Add ability to link headers using the slug portion of the filename.
- The way markdown files are fetched is similar to that of the resources
  app - using the AppConfig ready() function, all resources are ensured
  to be only fetched once when the app is first laoded.

I debated whether to introduce the new functionality in the home app
instead, without creating a new app. Eventually I decided extracting it
to a standalone app now is better as it allows easier extension of
functionality in the future. The home app can remain as it is to only
server the `/` homepage.

The timeline CSS is kept the same, as with the structure of the timeline
HTML template.

Once the CSS rewrite PR is merged, it's relatively easy to fix conflicts
here (again, since timeline is now its own app, with the CSS file and
HTML template moved - extra advantage).

References to `home:timeline` are updated to use `timeline:index`
throughout the codebase, as far as my ripgrep search could go.

The format of the markdown + YAML entries are still up for debate, so
I've only added the first two entries for now. They can be completely
overwritten in the future once the formats are decided by using a script
to convert all the data from my JSON file into individual markdown
files:

    http://0x0.st/Xr78.txt

This link should last for at least a few months. (Originally saved on
https://paste.pythondiscord.com/KPJA, but it expires on 12th April 2024.)
- There might be missing HTML that was stripped by `markdownify`
- Slugs were converted from kebab-casing titles and editorizing to make
  everything shorter (thanks to oil.nvim)
- I should've just used Python and arrow (for the dates), but before I
  realized arrow existed Nushell had the best built-in support.
- Markdown is wrapped at 80
I fixed them in PRs that were merged after the JSON used for this conversion was generated.
@hedyhli hedyhli marked this pull request as ready for review May 24, 2024 04:46
@hedyhli hedyhli added s: needs review Author is waiting for someone to review and approve and removed status: WIP Work In Progress labels May 24, 2024
A separate paragraph was used in the HTML, but another <p> was not actually used.
Copy link
Contributor

@wookie184 wookie184 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great, only one issue I noticed.

I wonder if we should make the date metadata optional (to allow for date ranges) and extract it from the file name by default. This would help avoid the inconsistency of month names you mentioned

Comment on lines +8 to +9
We host the 8th now-annual Code Jam. Teams had to create a program with an text-
based user interface (TUI), all designed around the theme of “think inside the
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This adds an unwanted space.
Before:
image
After:
image

@hedyhli
Copy link
Member Author

hedyhli commented May 24, 2024

I wonder if we should make the date metadata optional (to allow for date ranges) and extract it from the file name by default. This would help avoid the inconsistency of month names you mentioned

Good idea 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: backend Related to internal functionality and utilities area: frontend Related to site content and user interaction language: python Involves Python code priority: 2 - normal Normal Priority s: needs review Author is waiting for someone to review and approve
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactoring the timeline: YAML + Markdown entries and a slimmer CSS
4 participants