https://github.com/bitspittle/droidcon-sf-24
A presentation about Kobweb written in Kobweb, for Droidcon SF 24
https://github.com/bitspittle/droidcon-sf-24
Last synced: over 1 year ago
JSON representation
A presentation about Kobweb written in Kobweb, for Droidcon SF 24
- Host: GitHub
- URL: https://github.com/bitspittle/droidcon-sf-24
- Owner: bitspittle
- License: mit
- Created: 2024-04-24T05:56:43.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T18:50:38.000Z (about 2 years ago)
- Last Synced: 2024-05-22T19:56:56.657Z (about 2 years ago)
- Language: Kotlin
- Size: 72.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
This is a [Kobweb project](https://github.com/varabyte/kobweb) backing a presentation I gave at Droidcon SF in June 2024.
It makes heavy use of the [`reveal.js` presentation framework](https://revealjs.com/), which is honestly some fantastic
software and worth checking out in its own right.
This presentation serves double duty -- as a guided introduction to a wide range of Kobweb features but also as an
actual Kobweb project that curious users can poke through to learn from.
Some potentially interesting things to look at...
* `build.gradle.kts` has a powerful `markdown.process` method which runs through all slides, inspects their frontmatter,
and builds up a graph between all the slides, before finally writing all slides, ordered, into a generated
`components/sections/Slides.kt` source file.
* All slides are markdown (showcasing the power of Markdown support in Kobweb); you can find them under
`resources/markdown/sections/`.
* All sorts of random code can be found in `components/widgets`.
* `components/layout/SectionLayout.kt` is named so because reveal.js associates a slide per section. We also do some
crazy stuff using frontmatter styles / behaviors that can optionally be specified in each slide's frontmatter, which
really showcases its power.
> [!WARNING]
> Some of the code is very ugly as parts were written under a fair bit of time pressure. So treat it as more a curiosity
> than any strict sense of Kobweb best practices.
### Running
If you've cloned this project locally and would like to run it yourself, then run the following commands:
```bash
$ cd site
$ kobweb run
```
Once running, open [http://localhost:8080/droidcon-sf-24](http://localhost:8080/droidcon-sf-24) in your browser to see
the result.
### Configuring
There are a few features that you can configure, by opening up `gradle.properties` and changing their values.
```properties
# If true, label the current slide number in the bottom right corner.
# This makes it easier to jump to slides by shortcut,
# i.e. press `G` followed by the slide number you want to go to.
# The label is a little ugly but it is very useful for dev mode.
slides.show.number=false
# If true, every slide you visit will be saved into local storage and
# then restored on refresh. This makes it so you can keep seeing the
# same slide when Kobweb refreshes your screen.
slides.remember.last=false
```