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

Add a page for every talk. #7

Open
HarshKapadia2 opened this issue Dec 21, 2022 · 10 comments
Open

Add a page for every talk. #7

HarshKapadia2 opened this issue Dec 21, 2022 · 10 comments
Labels
enhancement New feature or request

Comments

@HarshKapadia2
Copy link
Member

Should we add a separate page for every talk? (Eg: https://talks.ourtech.community/1)

We have done this for OTC MeetUp. (Eg: https://meetup.ourtech.community/1)

We can add more details about the talks here, such as the talk abstract, any supplementary links, slide decks, embedded recorded/live stream videos (if any). In the future if we have more than one talk per session, then it can help in those cases as well.

@HarshKapadia2 HarshKapadia2 added the enhancement New feature or request label Dec 21, 2022
@tusharnankani
Copy link
Member

Hey
I don't think so we need to maintain a separate page for a few details:

  • Talk by Name
  • Date
  • Agenda?
  • Slide Deck

Having a separate page for meetups is fine because the frequency is less and content/details are more. Similarly for catchups.

@HarshKapadia2
Copy link
Member Author

I don't think we have few details.

The first talk itself has such a huge abstract. Also, if we have multiple talks is each session in the future, adding details for each talk will be difficult on the home page. It will become too long.

Also as I said before, any supplementary links or embedded videos will become too difficult to add on one single page.

Check the repositories here: https://github.com/The-Internals (granted that the sessions are longer, but we can still have the need for all this in the future and starting it now is not too much of an overhead in my opinion, because once the template is made, only the details need to be changed.)

@tusharnankani
Copy link
Member

Oh okay, I did not know we were going to give any more details (or that we had many details) about per talk.

As of now, the details are fewer.

we can still have the need for all this in the future.

I understand you are trying to be open minded, but we haven't reached there yet. There's still time to make predictions of what we might need. I'd like to wait and see how things pan out frankly.

@HarshKapadia2
Copy link
Member Author

but we haven't reached there yet

If we do, we won't be able to do it for the previous talks, which will make things inconsistent, which doesn't look or feel that great. There is going to be lesser time moving forward. So if we want to keep things open for the future, we have to think now. I also don't think that the ask is that time consuming to implement every time we decide to have an OTC Talks session. Once the template is ready, we just have to add the details in there.

I'd like to wait and see how things pan out frankly.

Even if things don't pan out, having more details per talk just makes more sense to me. It just shows what the talk was about, even if we only ever have just one talk.

@tusharnankani
Copy link
Member

tusharnankani commented Dec 25, 2022

So if we want to keep things open for the future, we have to think now. I also don't think that the ask is that time-consuming to implement every time we decide to have an OTC Talks session.

Okay, I understand.

I had a plan in mind:

  • Create a config.json file. (Similar to the one I used in Undirected Graph)
{
  "base_url": "https://undirected-graph.netlify.app",
  "site_title": "Tushar's Undirected Graph",
  "site_description": "Tushar Nankani's Blog - Undirected Graph",
  "site_keywords": [
    {
      "keyword": "Tushar Nankani"
    },
    {
      "keyword": "Blog"
    },
    {
      "keyword": "Undirected Graph"
    },
    {
      "keyword": "undirected-graph"
    }
  ],
  "posts_per_page": 9,
  "website_url": "http://tusharnankani.github.io",
  "twitter_account": "tusharnankanii",
  "github_account": "tusharnankani"
}
  • Then, we build Talks website like this:

image

  • We will be taking in config like: Title, Author, Linked CatchUp, Relevant Links
  • Then we just build the index, using simple JS.

Something like:

{
  "talks": [
    "1": {
      "title": "Supercharge your deployments with Wasm",
      "speaker": ["Rishit Dagli"],
      "catchup": "111"  
    }
  ]
}
  • If there are multiple talks in one day, then we can assign "1" to an array of objects instead of one object.
  • This helps us to not customize every talks page.

But, now if we have a separate pages for every talk; with folder struct like:

build
|__ 1.html
|__ 2.html

I am not sure if I will be able to build it that way without using some script.

@HarshKapadia2
Copy link
Member Author

I think it is a good idea, @tusharnankani! Thank you!

So we have two options:

  • Option 1: Manual
    • For every OTC Talks session, we update the 'Upcoming Talks' section and add a new page specific for that talk.
    • After the session we will have to manually shift the session to the 'Past Talks' section.
    • Pros
      • No additional scripts or thinking required.
    • Cons
  • Option 2: Using a build script (and maybe a GitHub Action)
    • For every OTC Talks session, we will have to update just one JSON file, which using the build script will update the home page and generate a page specific to that session.
      • Depending on the talk date, we can render sessions in the appropriate sections on the home page.
    • A GitHub Action can run after some defined time (or can be triggered manually, which is just a button click) and rebuild the site, which will move sessions from the 'Upcoming Talks' section to the 'Past Talks' section if required.
    • Pros
      • One update to a file does the job. Saves time and grunt work.
      • Just re-running a GitHub Action to run the build script again manages the manual update issue of moving OTC Talks sessions to appropriate sections.
    • Cons
      • Flexibility: What if we require to add something new like maybe a note? We'll have to handle that in the script.
      • How do we add italics and bold statements?
        • I'm assuming that we'll mostly use innerText to populate HTML tags.
      • The time taken to write a robust build script.
        • Maybe we should just use a Static Site Generator that has this inbuilt instead of building something from scratch?
          • If we decide to do it from scratch, (which will be a lot of learning, but time consuming and something that is not perfect), we can implement something general for Asciidoctor Jet and use that here.

Feel free to mention any points I might have missed or made a mistake in.

What are your opinions on what we should do, @OurTechCommunity/core?

@tusharnankani
Copy link
Member

Wow, thanks for this @HarshKapadia2
Will need some time to go through and figure the tradeoffs.

Thank you once again!

@KartikSoneji
Copy link
Member

KartikSoneji commented Dec 26, 2022

We are going to autogenerate the landing page, similar to the combined catchup page.
Then, on the frontend read the metadata and sort the talks into live, upcoming and past.

Eg:

= Talk 1

From: pass:[<time datetime="2022-12-24T22:15+05:30">24th December, 10:15pm IST</time>]
Duration: pass:[<time datetime="PT30m">30 minutes</time>]

Maybe also open an issue in asciidoctor to add a macro for the HTML5 <time> tag.

@HarshKapadia2
Copy link
Member Author

Are you suggesting using Asciidoctor Jet, @KartikSoneji? Can you please elaborate more on your approach?

@HarshKapadia2
Copy link
Member Author

We need to set up a timeline for this ASAP.

@KartikSoneji once you clarify your approach, we can discuss and start with planning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants