-
Notifications
You must be signed in to change notification settings - Fork 499
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
[WIP] Conf refactoring portland 2020 #1010
Conversation
5ceaab9
to
c471a3a
Compare
a923d04
to
6d0c75f
Compare
I'm guessing we'll just abandon or restart #749 from scratch when this goes in? |
062c2cb
to
807b39d
Compare
Hey @mxsasha could you possible look at normalizing the
with the theory I think that the first should include |
d11a6e9
to
95df368
Compare
@plaindocs @ericholscher Prompted by looking into the includes directories, I did some research on the option of archiving conference websites. We talked about this a few times, but it is a significant decision, so we should take a moment to think about it. It would mean that we can move legacy conf websites out of the main docs folders. Their CSS and static image assets would remain as they are, but all their RST, MD, base templates, YAML schedule and includes would be removed. The YAML that contains the speaker info remains, because that is also a source for video info right now. I would want to do this for all conferences from 2017 and older. We can repeat this process every year or so. The process for this would be to render them to static HTML, then place that in Upsides:
Downsides:
I am leaning towards doing this. Any thoughts? |
Also, regarding #492 I am looking at integrating mobile and desktop menus in the site. The structure is too different to have a single template for mobile and desktop, with the content. It would work if I extract the nav data entirely to YAML. As in, have the entire navigation tree in the conference yaml config file. The buttons are alread there. I’m inclined to think that YAML-based nav would be progress, but maybe there is still something I’m overlooking? |
I have looked into reducing the duplication of conference template files (venue.rst, job-fair.rst, etc) and concluded this is not worth it with Sphinx. Sphinx HTML is very much built around the "one input file, one output file" model. There are some places we could hook into with a custom builder, but even then there are other problems - we can't just write out the same HTML file multiple times, we actually have to render it multiple times with different contexts. Changing this would mean deeply hooking into several parts of Sphinx. This brings risks of greatly increased complexity, we don't want to rewrite half of Sphinx. The benefit is minor, because we're only talking about a handful of files per conference. Perhaps worth it if we have 20 conferences per year, but not for our current amount. |
I've looked at this in the past, and I hit random blockers. I'm not 100% sure what they were, but if it isn't super complicated I'm +1 on it.
+1. Definitely moving it into YAML and out of HTML is a win (similar to sponsors)
Likely the easiest way to do this is via symlinks, but that doesn't really solve the problem. I think having a file that does an include is probably fine, and lets us modify it for a specific year or event, which we often have to do. Eg. for the list of projects on Writing Day, or the list of companies in the job fair. |
9d0eb72
to
a3eecb7
Compare
This has inaccurate info and is just meant as a place to start improving the conference setup from.
This does not include template changes, so all CSS and images are now broken. This also "fixes" the gulp build, while updating it for the new structure. #1042 is an open issue to fix gulp properly, but at least `gulp styles` runs now.
These files have no references anywhere, as determined by scanning all content for their filenames. Speakers and some other dynamic content left alone, along with PDFs.
@@ -52,8 +52,6 @@ buttons: | |||
# link_absolute: /videos/portland/2020 | |||
|
|||
tickets: | |||
community: | |||
price: $800 | |||
corporate: | |||
price: $500 |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
docs/include/conf/Call with Tom
Outdated
@@ -0,0 +1,6 @@ | |||
Call with Tom |
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Because this branch was not rebased onto master, but a merge was done, I can't do any further changes to commits, so those can't be cleaned up any further. Due to the size of some of the commits, we should definitely use a non-squash option to merge this PR, to retain individual commits. For review, the individual commits are fairly descriptive, but the best way to see how things work may be to look at the new state: https://github.com/writethedocs/www/tree/conf-refactoring-portland-2020 I'll summarise the most significant changes: Naming of YAML files in _data is now consistent: The conference config is largely unchanged, except a new setting The new schedule format is much simplified, and is now a single schedule for all days. It uses The code loading the conference info has been significantly extended. It is entirely backwards compatible. For 2020 and newer conferences, it expects the new format. As a side effect, this now means that all conference templates have access to the full conference schedule with all metadata about all sessions, in their rendering context. This only applies if the conference flags are set, we don't look for a schedule unless Static files for conferences have been dramatically cleaned up. This also means we no longer need to copy all images for every year, they have one image directory (they were almost entirely identical). Per-year CSS variations are now handled by creating a new CSS file per year rather than an entire static files directory. Conference websites <= 2017 are now static HTML. This means that all their includes and base templates are deleted, which cleans up a lot. The static files are still present, although many have been moved away to a legacy folder, as the overlap is limited with 2018 and newer conference sites. Data files were also removed except their speaker info, as that's used for videos. The static HTML is automatically copied into the build directory by sphinx. |
@mxsasha that sounds incredible. <3 |
I couldn't get |
Should we bother also doing the config and the sessions under the same scheme?
Super cool! Can we make that a breaking error?
<3 We should add a
Do we need to document 'how to move confs to legacy?' |
@@ -79,19 +79,25 @@ date: # how do we handle these? human readable would be nice. | |||
day_one: | |||
event: Hike | |||
date: May 2 | |||
summary: If you're in town early, join us for the <a href="/conf/portland/2020/hike/">Hike</a>. Portland has excellent access to the woods right in the city, and we'll be exploring Forest Park and the Hoyt Arboretum. | |||
# TODO: Re-add links once not a landing page |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might make sense to conditionalize in the HTML based on flagislandingpage
?
I've poked around here and there, and can't find anything broken, I'd be inclined to merge it in. |
They are, for 2020 and newer.
I'll have another look, but I had some difficulty with that before.
Yes.
Yes, that'll go into the follow-up PR. Overall, I strongly suggest merging this if it works for us, and not adding any additional work or bugfixes, except for bugs introduced in this PR (i.e. not including #1065). The remaining work can go into a new (less huge) PR. |
It is now also broken for me, running |
Broken regarding gulp meaning:
|
I fixed this conflict and merged it from the CLI 👍 |
🎉 awesome work folks! |
This contains very much in progress work in a refactored conference website for Portland 2020, starting from Prague 2019.
It contains a lot of data from 2019 applied to 2020 for now, so things like schedule rendering can be tested based on fully filled content. Styling is perhaps also off.
Todo list for schedule processing changes:
Some other things I'm thinking of:
Possibly move to future PR: