diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8c7eaa3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/node_modules +/img/not_used \ No newline at end of file diff --git a/Mariano_12_11_2019_Version_Control_with_git.pdf b/Mariano_12_11_2019_Version_Control_with_git.pdf new file mode 100644 index 0000000..acf2e34 Binary files /dev/null and b/Mariano_12_11_2019_Version_Control_with_git.pdf differ diff --git a/asciidoctor-revealjs.js b/asciidoctor-revealjs.js new file mode 100644 index 0000000..7698364 --- /dev/null +++ b/asciidoctor-revealjs.js @@ -0,0 +1,8 @@ +// Load asciidoctor.js and asciidoctor-reveal.js +var asciidoctor = require('asciidoctor.js')(); +var asciidoctorRevealjs = require('asciidoctor-reveal.js'); +asciidoctorRevealjs.register() + +// Convert the document 'presentation.adoc' using the reveal.js converter +var options = {safe: 'safe', backend: 'revealjs'}; +asciidoctor.convertFile('presentation.adoc', options); \ No newline at end of file diff --git a/custom_css.css b/custom_css.css new file mode 100644 index 0000000..bd942ec --- /dev/null +++ b/custom_css.css @@ -0,0 +1,28 @@ +.reveal h1 { + color: #133481 !important; +} + +.reveal h2 { + + /* position: absolute !important; */ + position: fixed !important; + top: 0 !important; + left: 0 !important; + + /* margin-left: auto !important; + margin-right: auto !important; */ + + /* right: 0 !important; + align-items: left !important; + text-align: left !important; */ + color: #133481 !important; + } + + + .reveal ul { + color: #ff7c00 !important; + } + + .reveal ol { + color: #ff7c00 !important; + } \ No newline at end of file diff --git a/img/architecture.png b/img/architecture.png new file mode 100644 index 0000000..56fe028 Binary files /dev/null and b/img/architecture.png differ diff --git a/img/git_workflow.jpg b/img/git_workflow.jpg new file mode 100644 index 0000000..382b512 Binary files /dev/null and b/img/git_workflow.jpg differ diff --git a/img/intro.jpg b/img/intro.jpg new file mode 100644 index 0000000..caa84bd Binary files /dev/null and b/img/intro.jpg differ diff --git a/img/lyxlilipond.png b/img/lyxlilipond.png new file mode 100644 index 0000000..d231f9b Binary files /dev/null and b/img/lyxlilipond.png differ diff --git a/img/nocloud.jpg b/img/nocloud.jpg new file mode 100644 index 0000000..87a9298 Binary files /dev/null and b/img/nocloud.jpg differ diff --git a/img/normal.jpg b/img/normal.jpg new file mode 100644 index 0000000..d4e9597 Binary files /dev/null and b/img/normal.jpg differ diff --git a/img/nvbqz.png b/img/nvbqz.png new file mode 100644 index 0000000..9f55d15 Binary files /dev/null and b/img/nvbqz.png differ diff --git a/img/quicktourexample_small.png b/img/quicktourexample_small.png new file mode 100644 index 0000000..f0aaca1 Binary files /dev/null and b/img/quicktourexample_small.png differ diff --git a/img/version-control-flow.png b/img/version-control-flow.png new file mode 100644 index 0000000..59c95a1 Binary files /dev/null and b/img/version-control-flow.png differ diff --git a/img/xkcd_git.png b/img/xkcd_git.png new file mode 100644 index 0000000..4f5ab56 Binary files /dev/null and b/img/xkcd_git.png differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..74ad19d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,115 @@ +{ + "name": "presentacion_nov_2019", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "asciidoctor-reveal.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/asciidoctor-reveal.js/-/asciidoctor-reveal.js-2.0.0.tgz", + "integrity": "sha512-REnlW62qj6NPheOl8EwLwJZWpArUWOfAhDZv+lf9wX2MXUC/n9LN081buerQtByYAMG2ZiuY9ealPZqKTCIsvQ==", + "requires": { + "asciidoctor.js": "1.5.9", + "reveal.js": "3.7.0" + } + }, + "asciidoctor.js": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/asciidoctor.js/-/asciidoctor.js-1.5.9.tgz", + "integrity": "sha512-k5JgwyV82TsiCpnYbDPReuHhzf/vRUt6NaZ+OGywkDDGeGG/CPfvN2Gd1MJ0iIZKDyuk4iJHOdY/2x1KBrWMzA==", + "requires": { + "opal-runtime": "1.0.11" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "glob": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz", + "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "opal-runtime": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/opal-runtime/-/opal-runtime-1.0.11.tgz", + "integrity": "sha512-L+6pnRvXPlDtbamBRnJAnB9mEMXmsIQ/b+0r/2xJ5/n/nxheEkLo+Pm5QNQ08LEbEN9TI6/kedhIspqRRu6tXA==", + "requires": { + "glob": "6.0.4", + "xmlhttprequest": "1.8.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "reveal.js": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/reveal.js/-/reveal.js-3.7.0.tgz", + "integrity": "sha512-HTOTNhF5mQAw6fcsptk4oql/DEEUwTG0YHk/LzTNNx0/3IgvOQZqKzvlK/zNpqqKMLlhn1gH9Nvp+FFoc/e5/w==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e1b4a99 --- /dev/null +++ b/package.json @@ -0,0 +1,14 @@ +{ + "name": "presentacion_nov_2019", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC", + "dependencies": { + "asciidoctor-reveal.js": "^2.0.0" + } +} diff --git a/presentation.adoc b/presentation.adoc new file mode 100644 index 0000000..c34bafc --- /dev/null +++ b/presentation.adoc @@ -0,0 +1,376 @@ += Document Version Control with GIT +:customcss: custom_css.css +:imagesdir: img +:title-slide-background-image: intro.jpg +:background-image: normal.jpg +:revealjs_theme: white +:revealjs_margin: 0.1 +:revealjs_width: 1920 +:revealjs_height: 1200 + +== Before we start... + +image::nocloud.jpg[scaledwith=60%] + +== What is version control? + +[%step] +* Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. +* Has existed for almost as long as writing has existed (ex. document version) +* Today, the most capable (as well as complex) revision control systems are those used in software development. + +=== Why? + +[%step] +* Revert files back to a previous state +* "Freeze" important versions of a document +* Compare changes over time +* Track progress of a project +* See who modified something, and when + +=== Modern version control systems + +[%step] +* Remote backup of files +* Powerful tool for collaboration + +== GIT + +[%step] +* Developed by Linus Torvalds in 2005 +* The linux Kernel: +** ~63000 files +** Roughly 15,600 developers from more than 1,400 companies + +=== Characteristics + +[%step] +* Free and open source +* Distributed +* Powerful and flexible +* Learning curve can be steep + +=== ! + +image:xkcd_git.png[] + +=== How does it work? + +image::architecture.png[] + +=== Installation + +https://git-scm.com/download/win + +Package managers are heavily recommended! + + +=== Creating a remote repository + +[%step] +* register at the remote git server +** https://git.webhosting.rug.nl/ +* create repository +* add participants __ssh public keys__ +* clone the repository in your machine + +=== README and .gitignore + +Every repository should have these 2 files: + +* **README**: project description and useful information +* **.gitignore**: special file indicating GIT which files are **not** to be tracked + +=== workflow + +image::git_workflow.jpg[] + +=== copying remote repository: clone + +* **git clone __repository__** +* Clones the remote repository into the local one + +=== staging changes (local) + + +[%step] +* **git add __files__** +* Adds the changes into the local staging area + +=== Saving changes: commit (local) + +[%step] +* **git commit "message"** +* Saves the changes in the staging area into the repository +* Creates a "snapshot" of the current state of one or more files +* A message describing the changes must be provided + +=== history and revert (local) + +[%step] +* **git log __files__** +* returns a history of the file modifications +* **git revert __commit__** +* removes one or more commits from the local files, changes must be committed after + +=== upload to remote repository: push + +[%step] +* **git push** +* Uploads the state of the local repository to the remote one + +=== Download from remote repository: pull + +[%step] +* **git pull** +* Fetch and merges the documents in the remote repository into the local one +* Merging files can generate conflicts, git will ask us to fix them and commit the changes + +=== Branching + +image::version-control-flow.png[] + +=== other (advanced) stuff + +* tags +* partial reverts +* change history +* ... + +== Docs as code + +[%step] +* Software is a small part of the documents a project must handle +* Still, version control and remote collaboration are needed for all the documents +* In the last years there is a big push of treating documents the same way as programming files +** https://www.writethedocs.org/guide/docs-as-code/ + +=== Advantages + +[%step] +* Working in plain text files (rather than binary file formats like Word) +* Collaborating using version control such as git and GitHub +* Storing docs in the same repositories as the programming code itself +* Versioning docs through git tags/releases (rather than duplicating all the files to archive each release) +* Generate other formats or websites without modifying the document + +=== Just a little problem... + +[%step] +* The most common document formats: word, pdf... are binary files +* git (text based) doesn't work with them + +=== Solutions? + +[%step] +* Markup languages: +* Markup languages are ways of annotating an electronic document. +* Usually markup will either specify how something should be displayed or what something means. +** html, xml, latex... + +=== Markup languages + +[%step] +* Documents are written in plain text, then a program convert them into the final document +* The same document can be used to generate files in other formats: latex, word, pdf or even slides +* Formating is done by the computer, output is always consistent +* Fast and light +* Can be used in version control systems + +=== Markup languages: Advanced features + +[%step] +* Automatic generation of documents +* Inline comments (not rendered in the final document) +* Split one the document into several. Ex: main document, chapters and bibliography +* Code executed and plots rendered __in__ the document + + +=== Latex + +[%step] +* Extensively used for technical papers +* Beautiful generated documents +* Very powerful... +* ...and very heavy +* Setup and document customization are complex + +=== Latex: example + +---- + + +\documentclass{article} +\usepackage{graphicx} + +\begin{document} + +\title{Introduction to \LaTeX{}} +\author{Author's Name} + +\maketitle + +\begin{abstract} +The abstract text goes here. +\end{abstract} + +\section{Introduction} +Here is the text of your introduction. + +\begin{equation} + \label{simple_equation} + \alpha = \sqrt{ \beta } +\end{equation} + +\subsection{Subsection Heading Here} +Write your subsection text here. + +\begin{figure} + \centering + \includegraphics[width=3.0in]{myfigure} + \caption{Simulation Results} + \label{simulationfigure} +\end{figure} + +\section{Conclusion} +Write your conclusion here. + +\end{document} + +---- + + +=== Latex: example II + +---- +\documentclass[12pt]{article} +\usepackage{lingmacros} +\usepackage{tree-dvips} +\begin{document} + +\section*{Notes for My Paper} + +Don't forget to include examples of topicalization. +They look like this: + +{\small +\enumsentence{Topicalization from sentential subject:\\ +\shortex{7}{a John$_i$ [a & kltukl & [el & + {\bf l-}oltoir & er & ngii$_i$ & a Mary]]} +{ & {\bf R-}clear & {\sc comp} & + {\bf IR}.{\sc 3s}-love & P & him & } +{John, (it's) clear that Mary loves (him).}} +} + +\subsection*{How to handle topicalization} + +I'll just assume a tree structure like (\ex{1}). + +{\small +\enumsentence{Structure of A$'$ Projections:\\ [2ex] +\begin{tabular}[t]{cccc} + & \node{i}{CP}\\ [2ex] + \node{ii}{Spec} & &\node{iii}{C$'$}\\ [2ex] + &\node{iv}{C} & & \node{v}{SAgrP} +\end{tabular} +\nodeconnect{i}{ii} +\nodeconnect{i}{iii} +\nodeconnect{iii}{iv} +\nodeconnect{iii}{v} +} +} + +\subsection*{Mood} + +Mood changes when there is a topic, as well as when +there is WH-movement. \emph{Irrealis} is the mood when +there is a non-subject topic or WH-phrase in Comp. +\emph{Realis} is the mood when there is a subject topic +or WH-phrase. + +\end{document} + +---- + +=== Latex alternative: Lyx + +[%step] +* WYSIWYG latex editor +* Documents are generated in .lyx, a subset of latex +* Can be used together with version control +* Provides, by default, templates for many of the biggest scientific journals + +=== Lyx: example + +image::nvbqz.png[] + +=== Lyx: example II + +image::lyxlilipond.png[] + + +=== Lightweight Markup languages + +[%step] +* Also called Plain Text Markup or humane markup language +* Provide a way of formating the document, while still being readable +* Widely used on websites and code documentation + +=== LML: current options + +* Markdown +* reStructuredText (rst) +* Asciidoc + +=== Markdown + +[%step] +* Created for minimal formating of web text +* used **__everywhere__**: web, jupyter notebooks, r-markdown... +* There is no standard, currently exist many flavours of it (github, commonmark, pandoc) +* Originally not intended for documents, very limited +* Different flavors and tools try to overcome this limitation +** (+ pandoc) + +=== Markdown: example + +image::quicktourexample_small.png[] + +=== Asciidoc + +[%step] +* Developed for book creation. +* Limited number of users +* Standardized and extensible, great documentation +* Lack of resources makes that bugs or request take time to be fixed + +=== reStructuredText + +[%step] +* Originally intended for python documentation +* medium sized but very tech-savvy community +* Syntax is a little different than the other two +* Very powerful and extensible + + +=== Which one to use? + +* Notetaking: +** Markdown +** Asciidoc +** reStructuredText +* Anything more serious: +** reStructuredText +** Latex/Lyx + +== Resources + +https://chocolatey.org + +---- +choco install git vscode pandoc +---- + + +== Questions? + diff --git a/presentation.html b/presentation.html new file mode 100644 index 0000000..a2ba622 --- /dev/null +++ b/presentation.html @@ -0,0 +1,234 @@ +Document Version Control with GIT

Document Version Control with GIT

Before we start…​

nocloud
+

What is version control?

  • Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

  • Has existed for almost as long as writing has existed (ex. document version)

  • Today, the most capable (as well as complex) revision control systems are those used in software development.

Why?

  • Revert files back to a previous state

  • "Freeze" important versions of a document

  • Compare changes over time

  • Track progress of a project

  • See who modified something, and when

Modern version control systems

  • Remote backup of files

  • Powerful tool for collaboration

+

GIT

  • Developed by Linus Torvalds in 2005

  • The linux Kernel:

    • ~63000 files

    • Roughly 15,600 developers from more than 1,400 companies

Characteristics

  • Free and open source

  • Distributed

  • Powerful and flexible

  • Learning curve can be steep

xkcd git

How does it work?

architecture

Installation

+

Package managers are heavily recommended!

Creating a remote repository

README and .gitignore

Every repository should have these 2 files:

+
  • README: project description and useful information

  • .gitignore: special file indicating GIT which files are not to be tracked

workflow

git workflow

copying remote repository: clone

  • git clone repository

  • Clones the remote repository into the local one

staging changes (local)

  • git add files

  • Adds the changes into the local staging area

Saving changes: commit (local)

  • git commit "message"

  • Saves the changes in the staging area into the repository

  • Creates a "snapshot" of the current state of one or more files

  • A message describing the changes must be provided

history and revert (local)

  • git log files

  • returns a history of the file modifications

  • git revert commit

  • removes one or more commits from the local files, changes must be committed after

upload to remote repository: push

  • git push

  • Uploads the state of the local repository to the remote one

Download from remote repository: pull

  • git pull

  • Fetch and merges the documents in the remote repository into the local one

  • Merging files can generate conflicts, git will ask us to fix them and commit the changes

Branching

version control flow

other (advanced) stuff

  • tags

  • partial reverts

  • change history

  • …​

+

Docs as code

  • Software is a small part of the documents a project must handle

  • Still, version control and remote collaboration are needed for all the documents

  • In the last years there is a big push of treating documents the same way as programming files

Advantages

  • Working in plain text files (rather than binary file formats like Word)

  • Collaborating using version control such as git and GitHub

  • Storing docs in the same repositories as the programming code itself

  • Versioning docs through git tags/releases (rather than duplicating all the files to archive each release)

  • Generate other formats or websites without modifying the document

Just a little problem…​

  • The most common document formats: word, pdf…​ are binary files

  • git (text based) doesn’t work with them

Solutions?

  • Markup languages:

  • Markup languages are ways of annotating an electronic document.

  • Usually markup will either specify how something should be displayed or what something means.

    • html, xml, latex…​

Markup languages

  • Documents are written in plain text, then a program convert them into the final document

  • The same document can be used to generate files in other formats: latex, word, pdf or even slides

  • Formating is done by the computer, output is always consistent

  • Fast and light

  • Can be used in version control systems

Markup languages: Advanced features

  • Automatic generation of documents

  • Inline comments (not rendered in the final document)

  • Split one the document into several. Ex: main document, chapters and bibliography

  • Code executed and plots rendered in the document

Latex

  • Extensively used for technical papers

  • Beautiful generated documents

  • Very powerful…​

  • …​and very heavy

  • Setup and document customization are complex

Latex: example

\documentclass{article}
+\usepackage{graphicx}
+
+\begin{document}
+
+\title{Introduction to \LaTeX{}}
+\author{Author's Name}
+
+\maketitle
+
+\begin{abstract}
+The abstract text goes here.
+\end{abstract}
+
+\section{Introduction}
+Here is the text of your introduction.
+
+\begin{equation}
+    \label{simple_equation}
+    \alpha = \sqrt{ \beta }
+\end{equation}
+
+\subsection{Subsection Heading Here}
+Write your subsection text here.
+
+\begin{figure}
+    \centering
+    \includegraphics[width=3.0in]{myfigure}
+    \caption{Simulation Results}
+    \label{simulationfigure}
+\end{figure}
+
+\section{Conclusion}
+Write your conclusion here.
+
+\end{document}

Latex: example II

\documentclass[12pt]{article}
+\usepackage{lingmacros}
+\usepackage{tree-dvips}
+\begin{document}
+
+\section*{Notes for My Paper}
+
+Don't forget to include examples of topicalization.
+They look like this:
+
+{\small
+\enumsentence{Topicalization from sentential subject:\\
+\shortex{7}{a John$_i$ [a & kltukl & [el &
+  {\bf l-}oltoir & er & ngii$_i$ & a Mary]]}
+{ & {\bf R-}clear & {\sc comp} &
+  {\bf IR}.{\sc 3s}-love   & P & him & }
+{John, (it's) clear that Mary loves (him).}}
+}
+
+\subsection*{How to handle topicalization}
+
+I'll just assume a tree structure like (\ex{1}).
+
+{\small
+\enumsentence{Structure of A$'$ Projections:\\ [2ex]
+\begin{tabular}[t]{cccc}
+    & \node{i}{CP}\\ [2ex]
+    \node{ii}{Spec} &   &\node{iii}{C$'$}\\ [2ex]
+        &\node{iv}{C} & & \node{v}{SAgrP}
+\end{tabular}
+\nodeconnect{i}{ii}
+\nodeconnect{i}{iii}
+\nodeconnect{iii}{iv}
+\nodeconnect{iii}{v}
+}
+}
+
+\subsection*{Mood}
+
+Mood changes when there is a topic, as well as when
+there is WH-movement.  \emph{Irrealis} is the mood when
+there is a non-subject topic or WH-phrase in Comp.
+\emph{Realis} is the mood when there is a subject topic
+or WH-phrase.
+
+\end{document}

Latex alternative: Lyx

  • WYSIWYG latex editor

  • Documents are generated in .lyx, a subset of latex

  • Can be used together with version control

  • Provides, by default, templates for many of the biggest scientific journals

Lyx: example

nvbqz

Lyx: example II

lyxlilipond

Lightweight Markup languages

  • Also called Plain Text Markup or humane markup language

  • Provide a way of formating the document, while still being readable

  • Widely used on websites and code documentation

LML: current options

  • Markdown

  • reStructuredText (rst)

  • Asciidoc

Markdown

  • Created for minimal formating of web text

  • used everywhere: web, jupyter notebooks, r-markdown…​

  • There is no standard, currently exist many flavours of it (github, commonmark, pandoc)

  • Originally not intended for documents, very limited

  • Different flavors and tools try to overcome this limitation

    • (+ pandoc)

Markdown: example

quicktourexample small

Asciidoc

  • Developed for book creation.

  • Limited number of users

  • Standardized and extensible, great documentation

  • Lack of resources makes that bugs or request take time to be fixed

reStructuredText

  • Originally intended for python documentation

  • medium sized but very tech-savvy community

  • Syntax is a little different than the other two

  • Very powerful and extensible

Which one to use?

  • Notetaking:

    • Markdown

    • Asciidoc

    • reStructuredText

  • Anything more serious:

    • reStructuredText

    • Latex/Lyx

+

Resources

+
choco install git vscode pandoc
+

Questions?

\ No newline at end of file