REPLesent alternatives and similar packages
Based on the "Misc" category.
Alternatively, view REPLesent alternatives based on common mentions on social networks and blogs.
-
BootZooka
Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc. -
ScalaSTM
A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps -
Miniboxing
Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project: -
aws4s
DISCONTINUED. Non-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats -
media4s
Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. -
powerscala
Powerful framework providing many useful utilities and features on top of the Scala language. -
GoogleApiScala
This API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar. -
Easy Config
Easy Config makes Scala application configuration extremely easy. It reads configuration from the environment or command line arguments.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of REPLesent or a related project?
README
REPLesent
represent verb
- depict, portray, render, delineate, show, illustrate.
- symbolize, stand for, personify, typify, embody.
- point out, state, present, put forward.
REPLesent is a neat little powerful tool to build presentations using the Scala REPL.
Conceptualized and originally implemented while waiting almost two hours for my plane to be de-iced, it was introduced during the Northeast Scala Symposium 2015 in Boston.
While clearly not a Powerpoint Keynote replacement, REPLesent is a good
option for training sessions and technical talks featuring live coding.
Its old-school looks were considered very cool by many conference attendants.
Features
- Easy to write slides: a simple plain text file with minimal markup
- The full arsenal of navigation options: next, previous, first, last, jump to
- Builds (incremental slides)
- Slide number / total
- Text alignment: left, right, centered, flushed
- ANSI colors
- Horizontal rulers (thanks, @daviscabral)
- Syntax highlighting
- Run code straight from slides directly in the REPL with a single keystroke. No other presentation tool can do that for you!
- And the #1 requested feature: emoji! :-) I mean, :smile:
Quick Tour
Getting Started
REPLesent is distributed as a single .scala
file and has no dependencies.
REPLesent was designed to be used only in conjunction with the Scala REPL.
It is not meant to be compiled as a standalone application
(build.sbt
is only for running the unit tests).
We recommend you install and use the full Scala distribution
(the scala
command) instead of just the sbt
console.
Scala 2.11.4 or later and JDK 7 or later are the preferred versions.
If you are using Windows, you need to run scala
in
ANSICON or another console that
supports ANSI escape codes. REPLesent will not render correctly in
Windows' standard cmd
console.
To get started, download and save to the same folder the files
REPLesent.scala
and REPLesent.txt
.
The file emoji.txt
is optional, only needed to enable emoji support.
First, create an alias:
alias REPLesent='scala -Dscala.color -language:_ -nowarn -i REPLesent.scala'
Open the REPL and enter the two statements below:
$ REPLesent
Loading REPLesent.scala...
defined class REPLesent
Welcome to Scala version 2.11.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_31).
Type in expressions to have them evaluated.
Type :help for more information.
scala> val replesent = REPLesent(80, 25, intp=$intp)
replesent: REPLesent = REPLesent(80,25,REPLesent.txt)
scala> import replesent._
import replesent._
Do not forget to replace 80, 25
with the actual size of your terminal window.
The intp=$intp
incantation is required to hook onto the REPL to run slide code.
Once all is done, type f
, press ENTER
, and follow the on-screen instructions.
Experimental screen size auto-detection: For Unix-like systems, including Mac OS X and Linux, you can omit the screen size. Does not work for Microsoft Windows systems.
Quick Reference Guide
Initialization options
Parameter | Type | Description | Default |
---|---|---|---|
width |
Int |
Terminal width in columns | 0 (Unix: autodetect, Windows: 80) |
height |
Int |
Terminal height in rows | 0 (Unix: autodetect, Windows: 25) |
source |
String |
The path to the presentation file | "REPLesent.txt" |
slideCounter |
Boolean |
Whether to show the slide number | false |
slideTotal |
Boolean |
Whether to show the total number of slides | false |
padNewline |
Boolean |
Render a blank line at the bottom of the terminal to reduce visual noise when switching slides | false |
intp |
A hook to the Scala REPL | No default, use magic value $intp |
Navigation commands
Command | Shortcut | Symbolic alias | Description |
---|---|---|---|
next |
n |
> |
Go to next build/slide |
previous |
p |
< |
Go back to previous build/slide |
redraw |
z |
Redraw the current build/slide | |
reload |
y |
Reload the slides from file | |
Next |
N |
>> |
Go to next slide |
Previous |
P |
<< |
Go back to previous slide |
i next |
i n |
Advance i slides | |
i previous |
i p |
Go back i slides | |
i go |
i g |
Go to slide i | |
first |
f |
` | <` |
last |
l |
`> | ` |
Last |
L |
`>> | ` |
run |
r |
!! |
Execute code that appears on slide |
blank |
b |
Blank screen | |
help |
h |
? |
This help message |
Separators and delimiters
Separator | Description |
---|---|
--- |
Separates slides |
-- |
Separates builds |
``` | Delineates Scala code |
Text alignment
Command | Description |
---|---|
<< |
Left-flushed text |
< |
Left-aligned text |
` | ` |
> |
Right-aligned text |
>> |
Right-flushed text |
A space separating the alignment command from the text is mandatory.
ANSI colors
Escape code | Result |
---|---|
\x |
Foreground color, where x is one of: r ed, g reen, b lue, c yan, m agenta, y ellow, black , w hite |
\X |
Background color, where capital X is one of the same as above |
\* |
Bold |
\_ |
Underscore |
\! |
Reverse colors |
\s |
Resets to normal |
Horizontal rulers
Command | Description |
---|---|
/ |
A ruler across the slide length |
// |
A ruler across the entire screen width |
An optional pattern may be specified immediately following the forward slash. Unicode characters and ANSI color escapes (as above) are supported.
Emoji
To enable emoji support, you will need a copy of the emoji.txt
file.
Almost all shortcuts listed by the Emoji cheat sheet
are supported.
You can look at emoji.txt
for the definitive list of supported emoji.
Emojis can be combined with horizontal rulers and, depending on your system fonts, ANSI colors, too.
Emoji has only be tested on Mac OS X Terminal.app and Gnome Terminal, YMMV.
Multiple File Support
As your REPLesent.txt
grows, you may find yourself needing to split slides into logical chunks for quick navigation.
In order to use this mode, simply place all your individual slide files into a directory (in this example, we'll be using the directory name "slides"
), all ending with the file extension .replesent
.
Then, initialize REPLesent with the additional parameter source="slides"
, which will concatinate all files in ASCIIbetical order. Suggested practice is to name files with a leading sequence number, padding with zeros (01, 02, 03 ... 14, 15 ...)
One caveat is that since this is strict file concatination, slide separators will not be added automatically, so please remember to end your files with ---
or --
.
Vim Syntax Highlighting
Included in this repository is a vim
directory, which contains a vim plugin for editing REPLesent slides.
This plugin depends on derekwyatt/vim-scala for Scala syntax highlighting.
Simply copy the files into your ~/.vim
directory to get started, or use Vundle (or similar) like:
Plugin 'derekwyatt/vim-scala'
Plugin 'marconilanna/REPLesent', {'rtp': 'vim/'}
Thanks
- Davis Z. Cabral for implementing horizontal ruler support.
- Noel Markham for the redraw command
- Wojtek Pituła for the reload command
- Devon Stewart for multi-file support, syntax highlighting plug-in for vim, and syntax highlighting enhancements.
License
Copyright 2015-2017 Marconi Lanna
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*Note that all licence references and agreements mentioned in the REPLesent README section above
are relevant to that project's source code only.