### 👨👩👧 Me and Nim
* Pietro Peterlongo, [Milan, Italy](https://goo.gl/maps/nWwfT35yM9nHWo4X9)
* Python Data Scientist working on a [Supply Chain Planning Software](https://www.toolsgroup.com/)
* ran into Nim in Sep, 2018 on HN: [Programming Language Underdog](https://news.ycombinator.com/item?id=18045259)
### What is Nimib 🐳?
A template-based DSL for publishing Nim code and its outputs (text, images, ...).
Kind of inspired by [Jupyter](https://nbviewer.jupyter.org/url/norvig.com/ipython/Advent%20of%20Code.ipynb),
[RMarkdown](https://rmarkdown.rstudio.com/lesson-10.html) and the like...
### What is Nimib 🐳?
Target use cases are _tutorials_ and _blogs_.
[Example-driven development]() striving for:
* simple API
* sane defaults
* easy customization
Installation
nimble install nimib
Usage
hello_nimoji.nim
:
import nimoji
echo ":wave: :earth_africa:".emojize
Usage
hello_nimoji.nim
:
import nimib
nbInit # initializes nimib document
nbText: """# Hello nimoji
Say _hi_ to [nimoji](https://github.com/pietroppeter/nimoji)"""
nbCode: # code output will be captured
import nimoji
echo ":wave: :earth_africa:".emojize
nbSave # creates a hello_nimoji.html with the published document
How to use Latex (powered by Katex)
How to customize stylesheet
How to extend the DSL (Markdown cheatsheet)
### Other examples
* [nimib](https://pietroppeter.github.io/nimib), nimib documentation
is produced with nimib and contains more examples
* [nblog](https://pietroppeter.github.io/nblog), a blog about nim ecosystem
built with nimib, still to be themed
* [adventofnim](https://pietroppeter.github.io/adventofnim), my solutions for advent of code,
is the first thing I did with Nimib (and also the first thing I did with Nim)
### Other examples
* [SciNim/getting-started](https://github.com/SciNim/getting-started) is a community effort to show how to use nim scientific libraries
and it uses [Nimibook](https://github.com/pietroppeter/nimibook)
* [Introduction to Binarylang](https://ajusa.github.io/binarylang-fun/intro.html) is the first documented public usage of nimib not by me
* [Nimiboost](https://github.com/HugoGranstrom/nimiBoost/) is a VS Code extension to Highlight Markdown in Nimib files and preview the result in a separate panel.
* [nimibujo](https://github.com/zetashift/nimibujo) is a port of LoqSeq Bujo Theme for Nimib
* ... _keep them coming!_
### Roadmap
1. improve many small details
- preserve code in block as in source [#20](https://github.com/pietroppeter/nimib/issues/20)
- redesign how paths are handled [#55](https://github.com/pietroppeter/nimib/issues/20)
- refactor global objects [#25](https://github.com/pietroppeter/nimib/issues/25)
### Roadmap
1. improve many small details
2. create new themes
- improve default functionalities for blogging [#30](https://github.com/pietroppeter/nimib/issues/30)
- steal from the masters ([neveal](https://github.com/pietroppeter/neveal), [npapermib](https://github.com/pietroppeter/npapermib), [niminal-mibstakes](https://github.com/pietroppeter/niminal-mibstakes))
### Roadmap
1. improve many small details
2. create new themes
3. extend the dsl
- refactoring rendering [#35](https://github.com/pietroppeter/nimib/pull/35)
- support workflows involving js backend [#34](https://github.com/pietroppeter/nimib/issues/34)
### Roadmap
1. improve many small details
2. create new themes
3. extend the dsl
4. full interactivity (build apps like in [streamlit](https://streamlit.io/), edit code like in [jupyter](https://jupyter.org/), ...)
### 🙏 Thanks
[soasme](https://github.com/soasme) (for [nim-markdown](https://github.com/soasme/nim-markdown) and [nim-mustache](https://github.com/soasme/nim-mustache)),
[Clonkk](https://github.com/Clonkk), [yardanico](https://github.com/yardanico),
[HugoGranstrom](https://github.com/HugoGranstrom), [zetashift](https://github.com/zetashift),
[ajusa](https://github.com/ajusa), all those who have put a ⭐ on the repo, ...
### 🙏 Thanks
#### y'all for listening!