Giter Site home page Giter Site logo

panglesd / slipshow Goto Github PK

View Code? Open in Web Editor NEW
632.0 7.0 10.0 514.51 MB

An engine for displaying slips, the next-gen version of slides

License: MIT License

CSS 1.52% JavaScript 6.15% HTML 17.58% Makefile 0.01% OCaml 74.59% Perl 0.13% Dockerfile 0.01% Shell 0.01%
slides slideshow slideshow-maker slideshow-html slideshow-library slip slips

slipshow's Issues

Add support for tikz

The npm package has support for tikz support, in some sense.

It would be so cool (but technically difficult) to have support for tikz directly in slipshow!

figure overlays

it would be nice to have a way to reveal figures layer by layer (assuming a stack of transparent layers has been generated).

Engine: rewrite in OCaml

The engine was written in javascript a long time ago, when I did not know a lot about static checking!

It will be very convenient to have it in OCaml, compiled to javascript.

In this rewrite, I'd like to change at least one thing: the "step back". Instead of recording the initial step and "go back to the beginning, go forward $n-1$ steps", it would be much better to apply the "reverse effectful" function.

This also raises the question of how much is computed at runtime by the engine and how much is computed at compile-time by the compiler!

Linking to hidden subtrees or conditional display of subtrees

Is there any way to have event handlers on elements within a slip, that can then trigger moving to another slide? (long winded way of saying ‘link’).

Or is there a way to conditionally hide/show a slip?

The motivation is if one had a presentation that is intended for audiences of different levels of prior knowledge.

Re: links - one might have a subslip-tree (slip-subtree?) that is too detailed for the main body of (one version of) the presentation. So in the flow of the main talk, those overly-detailed subtrees would not be traversed. However maybe its likely you’ll have to return to it in the Q+A at the end. In this case, links to these subtrees would be useful to have in the end slip. Or if someone were to pose a relevant query during the presentation, an inline link from the parent slip of the overly-detailed subtree.

Re: conditionality - one could have a single presentation where the slip hierarchy goes into increasing levels of detail on the presentation topic. But conditionality allows for ‘lower-resolution’ versions of the same presentation, by setting a depth parameter (‘only go into this sliptree to nesting_level=X’) somewhere (presumably in Javascript).

They’re obviously related issues (an event handler that conditionally shows the subtree is equivalent to a link to the subtree), hence combining them into a single issue. Basically something like Milanote or ‘Workflowy-for-slides’, where you can expand/collapse subtrees.

Kudos on the whole project though, its really great to have an OSS multiply-nested presentation lib. I’m surprised its not more known more widely..

Unix.EOPNOTSUPP on arm64

Hi on my Mac OS M2 pro (Silicon) :

slipshow -o file.html file.md --watch
compile: internal error, uncaught exception:
         Unix.Unix_error(Unix.EOPNOTSUPP, "inotify_init", "")

Here's some more info :

file $(which slipshow)
/Users/mguiraud/.local/bin/slipshow: Mach-O 64-bit executable arm64

And my mac :

Capture d’écran 2024-06-02 à 16 36 06

Seems some issue on the arm64 version of slipshow :

slipshow --version
%%VERSION%%

I used slipshow-macos-arm64.tar
decompile it and copied slipshow in the /usr/bin.

What am I missing ?

Add support for mermaid

Mermaid seem a popular and nice diagramming library, markdown-consistent.

I'd consider adding support for it! Github has it:

graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;

Make sure compiled presentations are standalone

For instance, for mathjax math I had to change it to svg, but there are still assets that are not included I think.

But more importantly, fonts need to be included for all browser to display the presentation the same!

Allow to include video or large file

Dataurls have a limit, but there are workaround, à la ocaml-crunch!

<script>
  let file_content = "\56\54[...]";
  document.replace(old_element, element_from_file_content)
</script>

(not very precise but ...)

Add a ascii layout

I think it would be nice to have an "ascii layout" to place elements as ascii art.

For instance:

```layout
aa b
aa b
c dd
```
[a]: Some content
[b]: other content
[c]: and
[d]: so on

Compiler: Add support for subslips

The engine support having subslips, but it is not possible to have them in the compiler.

An idea for the syntax:

{subslip}
> subslip content
> ...

Add support for themes

Problem

The actual theme is inspired by Warsaw but it would be great to have a way to easily change or modify the theme, without tinkering with the distributed css.

Naive suggestion

  • Make the common css (in src/css) as neutral as possible.
  • Add some pre-made themes like the actual Warsaw theme in a folder like src/css/themes.
  • In the example include first the theme-agnostic css, then the chosen theme css, then the specialized slipIntroduction.css.
  • Document the various classes that users would need to override to make their own theme.

Getting started issue - How to separate different slides

I might missed something in the document. But how to separate different headline in separated slides?

Slide 1

Slide 2

Slide 3

After generating html file, all 3 slides are showing in the same page.

There is no sample markdown file anywhere. It is very hard to get started. The html file in example/ folder is more of demo, instead of an example.

Fix issue with images with attributes

The following file:

![](https://avatars.githubusercontent.com/u/34110029?s=80&v=4){.myclass}

will have the wrong output:

<p><img src="[https://avatars.githubusercontent.com/u/34110029?s=80&amp;v=4](view-source:https://avatars.githubusercontent.com/u/34110029?s=80&v=4)" alt="" ><span class="myclass"><span>![](https://avatars.githubusercontent.com/u/34110029?s=80&amp;v=4)</span></span></p>

Some invalid syntax crashes the compiler

A file containing

| {a}[b] |

generates:

compile: internal error, uncaught exception:
         File "vendor/github.com/panglesd/cmarkit/src/cmarkit.ml", line 2173, characters 6-12: Assertion failed

Improve theming

  • Multiple themes should be shipped in the compiler (at least the two we have: warsaw inspired and Vanier)
  • It should be easy to add a theme: the workflow should be documented.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.