From 2e3da264f04086b4779cacca3f6e64b55d2cc004 Mon Sep 17 00:00:00 2001
From: Eric Kooistra <kooistra@astron.nl>
Date: Tue, 17 Mar 2020 15:37:48 +0100
Subject: [PATCH] Replaced Windows LFCR by Linux LF to avoid ^R at end of line
 in vi.

---
 .../doc/prestudy/desp_howtools_erko.txt       | 726 +++++++++---------
 1 file changed, 366 insertions(+), 360 deletions(-)

diff --git a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
index 0583c7242f..57967f561e 100755
--- a/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
+++ b/applications/lofar2/doc/prestudy/desp_howtools_erko.txt
@@ -1,360 +1,366 @@
-* RadioHDL with GIT (LOFAR2.0)
-* RadioHDL with SVN (APERTIF/ARTS)
-* GIT workflow
-* Confluence
-* Polarion
-* Latex
-* Markdown
-
-*******************************************************************************
-* RadioHDL with GIT
-*******************************************************************************
-
-# Setup vendor specific environment variables in .bashrc
-
-  * bashrc defines root directories that contain one or more versions of tool installations
-    - define MENTOR_DIR : modelsim installations
-    - define ALTERA_DIR : altera installations
-    - define MODELSIM_ALTERA_LIBS_DIR  : compiled modelsim simulation libraries for altera components
-
-    - LM_LICENSE_FILE=<our_license@our_compagny>
-
-# Setup RadioHDL development environment for hdl/. The hdl/libraries, hdl/boards and hdl/applications are
-# developed simultaneously and therefor in one git hdl/ repository
-
-> cd ~/git/hdl
-
-> . ./init_hdl.sh    
-
-  * init_hdl.sh defines:
-    - RADIOHDL_WORK directory for where the source code resides
-    - RADIOHDL_BUILD_DIR directory for where the targets will be build
-    - HDL_IOFILE_SIM_DIR=${RADIOHDL_BUILD_DIR}/sim for simulating with Modelsim using file IO
-  
-  * init_hdl.sh copies git user_components.ipx into Altera dir's
-    - cp ${RADIOHDL_WORK}/hdl_user_components.ipx $altera_dir/ip/altera/user_components.ipx
-  
-  * init_hdl.sh automatically also sources ../radiohdl/init_radiohdl.sh if necessary
-
-
-source also radiohdl tools
-. ../radiohdl/init_radiohdl.sh
-
-  * init_radiohdl.sh defines:
-    - RADIOHDL_GEAR directory of where the init_radiohdl.sh is located
-    - RADIOHDL_BUILD_DIR = ${RADIOHDL_BUILD_DIR}/build if not already defined
-    - RADIOHDL_CONFIG = ${RADIOHDL_GEAR}/config if not already defined
-                                
-  * init_radiohdl.sh extends:
-    - PATH with ${RADIOHDL_GEAR}/core
-                ${RADIOHDL_GEAR}/quartus
-                ${RADIOHDL_GEAR}/modelsim
-    - PYTHONPATH with ${RADIOHDL_GEAR}/core
-                      ${RADIOHDL_GEAR}/components
-    
-                                    
-> compile_altera_simlibs unb1   # creates build/unb1/hdl_libraries_ip_stratixiv.txt
-                                # creates build/quartus/<tool version> simulation models that need to be moved
-                                # manually to $MODELSIM_ALTERA_LIBS_DIR/<tool version>
-                                
-> generate_ip_libs unb1         # creates build/unb1/qmegawiz/
-                                # creates build/unb1/quartus_sh --> empty dir, why is it there?
-                                
-> quartus_config unb1           # creates build/unb1/quartus/<hdllib libraries> for synthesis
-                                # creates build/unb1/quartus/technology_select_pkg.vhd
-                                
-> modelsim_config unb1          # creates build/unb1/modelsim/<hdllib libraries> for simulation
-                                # creates build/unb1/modelsim/modelsim_project_files.txt for Modelsim commands.do
-                                # creates build/unb1/modelsim/technology_select_pkg.vhd
-                                
-> run_qsys unb1 unb1_minimal_qsys   # creates QSYS block in build/unb1/quartus/unb1_minimal_qsys
-> run_qcomp unb1 unb1_minimal_qsys  # creates 
-
-> run_modelsim unb1 &
-
-
-*******************************************************************************
-* RadioHDL with SVN
-*******************************************************************************
-
-echo "Uniboard trunk is selected"
-export SVN=${HOME}/svnroot/UniBoard_FP7
-#Setup RadioHDL environment for UniBoard2 and and new Uniboard1 applications
-. ${SVN}/RadioHDL/trunk/tools/setup_radiohdl.sh
-# Support old UniBoard environment (including Aarfaac and Paasar)
-. ${SVN}/RadioHDL/trunk/tools/setup_unb.sh
-
-
-
-*******************************************************************************
-* GIT references
-*******************************************************************************
-
-difftool ?
-mergetool ?
-
-* Pro Git book by Scott Chacon: https://git-scm.com/book/en/v2
-* YouTube : David Mahler part 1,2,3
-
-Part 1:
-
-# After GIT install
-git version
-git config --global http://user.name "EricKooistra"
-git config --global http://user.email "erkooi@gmail.com"
-git config --list
-touch .gitignore       # create .gitignore if it does not already exist
-.gitignore # file with working tree dirs and files to ignore, must also be commited
-
-# To start a repo
-cd ~/git
-git init  # start new repo at this dir, creates .git/
-git clone # get and start with existing repo
-git clone git@git.astron.nl:desp/args.git
-git clone git@git.astron.nl:desp/sampy.git
-
-git status # what is in stage area and what is modified
-git status -uno  # skip unversioned files
-
-Three areas:
-* working tree # local directory tree
-| git add
-v
-* staging area (index)
-|
-v git commit
-* history # .git repository with entire commit graph
-
-# To use a repo
-git add <dir>/<file>       # add to stage area, set for commit. Cannot add empty dir, need empty file in it
-git add .                  # add all new and modified to stageing area
-git diff                   # diff between file in working tree and staging area
-git diff --staged          # diff between file in staging area and history
-git rm <filename>          # remove file from working tree and stage the delete
-git checkout -- <filename> # revert a working tree change
-git reset                  # clear stage area
-git reset HEAD <filename>  # revert staged change
-git log -- <filename>      # show history of file
-git checkout <version hash> -- s2 # retrieve file from history into staged area and working tree
-
-
-Part 2:
-
-git commit -m ""           # commit what is in stage area
-git commit -a -m ""        # add to stage area and commit what is in stage area
-alias graph="git log --all --decorate --oneline --graph"
-git branch <branch name>   # creat branch
-git branch # show branches
-git checkout <branch name> # change working tree and stage area to branch
-git checkout master
-git merge <branch name> # Fast forward merge of branch name to master if there is a direct path
-                        # by moving master to branch name, this is when there have been no updates
-                        # on the master branch since the branch was created.
-                        # Three way merge combine the differences of the branch and the master
-                        # compared to their common version, this can lead to merge conflicts if
-                        # changes on both branches occur at same parts of a file.
-git branch --merged # show branches that have been merged to master
-git branch -r
-git branch -a # show all local and remote branches
-
-git branch -d <branch name> # remove branch
-git checkout <commit hash> # detached HEAD because it points to a version not a branch
-git branch <branch name> # start a branch from the commit hash, HEAD is attached again
-
-# Stash area to store working tree
-git stash save "comment" # store working tree and stage area to get a clean
-git stash list # show all stashes
-git stash apply <label> # restore stash
-git stash apply # restore last stash
-
-
-Part 3: Remote repositories (Github, Gitlab, Bitbucket, ...)
-
-create repo on Github
-http://README.md # md = mark down
-git clone <url:.../<repo name>.git> # get copy from url
-cd <repo name>
-git config --local http://user.name "EricKooistra"
-git config --local http://user.email "erkooi@gmail.com"
-git remote # origin
-git remote -v # full url
-
-# To align with remote repo
-# update from remote
-git status # shows also origin/master, but not live
-git fetch origin
-git status # shows also origin/master, now with latest remote
-git merge origin/master
-git pull # get latest from remote repo, combines fetch and merge
-
-# upload to remote
-git push
-git push origin master  # put local repo to remote repo
-
-# On Github fork is a copy of the a repo in Github to get a repo on your account
-git clone <url of fork> # get copy of fork repo, will be origin
-git remote add upstream <url of original repo on Github> # will be upstream
-git fetch upstream
-git status
-# commit local change on branch
-# git push origin <branch name> # push to my fork repo on Github
-# pull request on Github
-# delete branch and fetch npstream if the pull request was accepted
-git remote remove <remote name> # remove a remote repo
-
-
-*******************************************************************************
-* GIT workflow and review process using Gitlab
-*******************************************************************************
-
-We identify two persons in this process:
-- the coder
-- the reviewer
-
-* Jira ticket defines the work to be done, e.g. L2SDP-26
-* Coder works on branch with Jira ticket number as branch name
-
-    git checkout master     # start on up to date master branch
-    git pull
-    git branch L2SDP-26     # creat branch using Jira ticket number
-    git branch              # show branches
-    git checkout L2SDP-26   # change working tree and stage area to branch
-
-* Work on branch using git add, commit and push
-* Manually run regression test to test the changes (for Casacore SW the merge
-  request makes github automatically issue a regression test in the cloud, for
-  FW we need to run the relevant testbenches manually. It is not necessary to 
-  rerun the entire FW regression test, it is sufficient to only run the
-  regression test for the HDL libraries that were modified and the HDL 
-  libraries that could be impacted by the modification)
-* Push the branch to the central repository at gitlab  
-
-    git push -u origin L2SDP-26   # first time to declare the branch at the remote
-    
-  
-* Coder does merge request to reviewer using the central Gitlab GUI
-* gitlab will warn if the branch will lead to a merge conflict, the coder then
-  first has to fix the merge conflict by merging the master to the branch:
-  The merge can use merging or rebasing, Ger typically uses merging. On local
-  machine the coder resolves the merge conflict:
-
-    git checkout master
-    git pull
-    git checkout L2SDP-26
-    git merge master
-    git status   # to see merge conflicts, edit file to solve merge conflict
-    git add file
-    git commit
-    git push
-  
-* In gitlab do merge request to reviewer
-* Reviewer reviews the code per line or in general comments in gitlab GUI,
-  so reviewer does not need to pull the branch locally and also does not need
-  to rerun the regression test.
-* Use 'Open in Web IDE' button in gitlab GUI to see max about 10 changes,
-  use 'Changes' menu on same page to see all changes. Green is new file,
-  orange is change file, + is new lines - is removed lines.
-* Coder does updates on branch until both coder and reviewer are ok, they are
-  notified by gitlab
-* When review is done then the reviewer does the merge.
-* The merge automatically deletes the branch (if selected to do so in gitlab)
-  locally the coder manually needs to delete the branch:
-  
-    git branch
-    git checkout master
-    git status
-    git branch -d L2SDP-26
-    git status
-    
-* Use Jira tag in commit message to have link between GIT and Jira. The link
-  was made via Settings/Intergations/Jira
-
-Note:
-* In github a merge request is called a pull request
-* Default a pull pulls the master. Typically it is not necessary to pull a 
-  branch because the reviewer does not need to compile and run the code and
-  because typically only one coder works on a branch.
-
-
-*******************************************************************************
-* Confluence:
-*******************************************************************************
-- space tools menu links onder om secties the ordenen.
-- space tools menu, content tools, custom export to PDF --> to export multiple
-  pages to PDF and to preserve th ASTRON logo in the export
-
-
-*******************************************************************************
-* Polarion:
-*******************************************************************************
-
-
-*******************************************************************************
-* LaTeX
-*******************************************************************************
-- \sigma \sqrt{}
-- 4.15 \cdot 10^{15}
-- M =
-    \left[ {begin{array}{cc}
-    1 & 2 & 3 & 4\\
-    5 & 6 & 7 & 8\\
-    \end{array} } \right]
-
-
-
-*******************************************************************************
-* Markdown
-*******************************************************************************
-
-Text will wrap.
-
-Backslash is escape chararcter.
-
-# Heading 1
-## Heading 2
-### Heading 3
-#### Heading 4
-##### Heading 5
-###### Heading 6
-
-Horizontal rules three or more of ***, ___, ---
-
-*italic*
-_italic_
-**bold**
-__bold__
-**bold and _bolditalic_**    combined
-`boxed`
-~~strike through~~
-
-Block quotes (alinea with an indent bar):
-> Block text will wrap
-
-Unordered list using *, -, +, indent >= 1 space
-* Main item 1
-* Main item 2          
- * sub item 2a  use 2 trailing spaces for return inside paragraph
- * sub item 2b
- 
-Ordered list 
-1. Main item 1
-2. Main item 2          
- 2.1 sub item 2a
- 2.2 sub item 2b
-           
-Images  
-![Logo](path to image file)
-![Logo](web link to image file)
-![Logo][image1]
-
-[image1]:web link to image file
-
-Links:
-[ASTRON]:https://www.astron.nl
-
-Table:
-|col1 | col2| Col3 |    column titles
-|---|:---:|--:|    >= 3 dashes, colon for left, center, right align
-| row text | row text | row text|
-| row text | row text | row text|
-
+* RadioHDL with GIT (LOFAR2.0)
+* RadioHDL with SVN (APERTIF/ARTS)
+* GIT workflow
+* Confluence
+* Polarion
+* Latex
+* Markdown
+* Vi
+
+
+*******************************************************************************
+* RadioHDL with GIT
+*******************************************************************************
+
+# Setup vendor specific environment variables in .bashrc
+
+  * bashrc defines root directories that contain one or more versions of tool installations
+    - define MENTOR_DIR : modelsim installations
+    - define ALTERA_DIR : altera installations
+    - define MODELSIM_ALTERA_LIBS_DIR  : compiled modelsim simulation libraries for altera components
+
+    - LM_LICENSE_FILE=<our_license@our_compagny>
+
+# Setup RadioHDL development environment for hdl/. The hdl/libraries, hdl/boards and hdl/applications are
+# developed simultaneously and therefor in one git hdl/ repository
+
+> cd ~/git/hdl
+
+> . ./init_hdl.sh    
+
+  * init_hdl.sh defines:
+    - RADIOHDL_WORK directory for where the source code resides
+    - RADIOHDL_BUILD_DIR directory for where the targets will be build
+    - HDL_IOFILE_SIM_DIR=${RADIOHDL_BUILD_DIR}/sim for simulating with Modelsim using file IO
+  
+  * init_hdl.sh copies git user_components.ipx into Altera dir's
+    - cp ${RADIOHDL_WORK}/hdl_user_components.ipx $altera_dir/ip/altera/user_components.ipx
+  
+  * init_hdl.sh automatically also sources ../radiohdl/init_radiohdl.sh if necessary
+
+
+source also radiohdl tools
+. ../radiohdl/init_radiohdl.sh
+
+  * init_radiohdl.sh defines:
+    - RADIOHDL_GEAR directory of where the init_radiohdl.sh is located
+    - RADIOHDL_BUILD_DIR = ${RADIOHDL_BUILD_DIR}/build if not already defined
+    - RADIOHDL_CONFIG = ${RADIOHDL_GEAR}/config if not already defined
+                                
+  * init_radiohdl.sh extends:
+    - PATH with ${RADIOHDL_GEAR}/core
+                ${RADIOHDL_GEAR}/quartus
+                ${RADIOHDL_GEAR}/modelsim
+    - PYTHONPATH with ${RADIOHDL_GEAR}/core
+                      ${RADIOHDL_GEAR}/components
+    
+                                    
+> compile_altera_simlibs unb1   # creates build/unb1/hdl_libraries_ip_stratixiv.txt
+                                # creates build/quartus/<tool version> simulation models that need to be moved
+                                # manually to $MODELSIM_ALTERA_LIBS_DIR/<tool version>
+                                
+> generate_ip_libs unb1         # creates build/unb1/qmegawiz/
+                                # creates build/unb1/quartus_sh --> empty dir, why is it there?
+                                
+> quartus_config unb1           # creates build/unb1/quartus/<hdllib libraries> for synthesis
+                                # creates build/unb1/quartus/technology_select_pkg.vhd
+                                
+> modelsim_config unb1          # creates build/unb1/modelsim/<hdllib libraries> for simulation
+                                # creates build/unb1/modelsim/modelsim_project_files.txt for Modelsim commands.do
+                                # creates build/unb1/modelsim/technology_select_pkg.vhd
+                                
+> run_qsys unb1 unb1_minimal_qsys   # creates QSYS block in build/unb1/quartus/unb1_minimal_qsys
+> run_qcomp unb1 unb1_minimal_qsys  # creates 
+
+> run_modelsim unb1 &
+
+
+*******************************************************************************
+* RadioHDL with SVN
+*******************************************************************************
+
+echo "Uniboard trunk is selected"
+export SVN=${HOME}/svnroot/UniBoard_FP7
+#Setup RadioHDL environment for UniBoard2 and and new Uniboard1 applications
+. ${SVN}/RadioHDL/trunk/tools/setup_radiohdl.sh
+# Support old UniBoard environment (including Aarfaac and Paasar)
+. ${SVN}/RadioHDL/trunk/tools/setup_unb.sh
+
+
+
+*******************************************************************************
+* GIT references
+*******************************************************************************
+
+difftool ?
+mergetool ?
+
+* Pro Git book by Scott Chacon: https://git-scm.com/book/en/v2
+* YouTube : David Mahler part 1,2,3
+
+Part 1:
+
+# After GIT install
+git version
+git config --global http://user.name "EricKooistra"
+git config --global http://user.email "erkooi@gmail.com"
+git config --list
+touch .gitignore       # create .gitignore if it does not already exist
+.gitignore # file with working tree dirs and files to ignore, must also be commited
+
+# To start a repo
+cd ~/git
+git init  # start new repo at this dir, creates .git/
+git clone # get and start with existing repo
+git clone git@git.astron.nl:desp/args.git
+git clone git@git.astron.nl:desp/sampy.git
+
+git status # what is in stage area and what is modified
+git status -uno  # skip unversioned files
+
+Three areas:
+* working tree # local directory tree
+| git add
+v
+* staging area (index)
+|
+v git commit
+* history # .git repository with entire commit graph
+
+# To use a repo
+git add <dir>/<file>       # add to stage area, set for commit. Cannot add empty dir, need empty file in it
+git add .                  # add all new and modified to stageing area
+git diff                   # diff between file in working tree and staging area
+git diff --staged          # diff between file in staging area and history
+git rm <filename>          # remove file from working tree and stage the delete
+git checkout -- <filename> # revert a working tree change
+git reset                  # clear stage area
+git reset HEAD <filename>  # revert staged change
+git log -- <filename>      # show history of file
+git checkout <version hash> -- s2 # retrieve file from history into staged area and working tree
+
+
+Part 2:
+
+git commit -m ""           # commit what is in stage area
+git commit -a -m ""        # add to stage area and commit what is in stage area
+alias graph="git log --all --decorate --oneline --graph"
+git branch <branch name>   # creat branch
+git branch # show branches
+git checkout <branch name> # change working tree and stage area to branch
+git checkout master
+git merge <branch name> # Fast forward merge of branch name to master if there is a direct path
+                        # by moving master to branch name, this is when there have been no updates
+                        # on the master branch since the branch was created.
+                        # Three way merge combine the differences of the branch and the master
+                        # compared to their common version, this can lead to merge conflicts if
+                        # changes on both branches occur at same parts of a file.
+git branch --merged # show branches that have been merged to master
+git branch -r
+git branch -a # show all local and remote branches
+
+git branch -d <branch name> # remove branch
+git checkout <commit hash> # detached HEAD because it points to a version not a branch
+git branch <branch name> # start a branch from the commit hash, HEAD is attached again
+
+# Stash area to store working tree
+git stash save "comment" # store working tree and stage area to get a clean
+git stash list # show all stashes
+git stash apply <label> # restore stash
+git stash apply # restore last stash
+
+
+Part 3: Remote repositories (Github, Gitlab, Bitbucket, ...)
+
+create repo on Github
+http://README.md # md = mark down
+git clone <url:.../<repo name>.git> # get copy from url
+cd <repo name>
+git config --local http://user.name "EricKooistra"
+git config --local http://user.email "erkooi@gmail.com"
+git remote # origin
+git remote -v # full url
+
+# To align with remote repo
+# update from remote
+git status # shows also origin/master, but not live
+git fetch origin
+git status # shows also origin/master, now with latest remote
+git merge origin/master
+git pull # get latest from remote repo, combines fetch and merge
+
+# upload to remote
+git push
+git push origin master  # put local repo to remote repo
+
+# On Github fork is a copy of the a repo in Github to get a repo on your account
+git clone <url of fork> # get copy of fork repo, will be origin
+git remote add upstream <url of original repo on Github> # will be upstream
+git fetch upstream
+git status
+# commit local change on branch
+# git push origin <branch name> # push to my fork repo on Github
+# pull request on Github
+# delete branch and fetch npstream if the pull request was accepted
+git remote remove <remote name> # remove a remote repo
+
+
+*******************************************************************************
+* GIT workflow and review process using Gitlab
+*******************************************************************************
+
+We identify two persons in this process:
+- the coder
+- the reviewer
+
+* Jira ticket defines the work to be done, e.g. L2SDP-26
+* Coder works on branch with Jira ticket number as branch name
+
+    git checkout master     # start on up to date master branch
+    git pull
+    git branch L2SDP-26     # creat branch using Jira ticket number
+    git branch              # show branches
+    git checkout L2SDP-26   # change working tree and stage area to branch
+
+* Work on branch using git add, commit and push
+* Manually run regression test to test the changes (for Casacore SW the merge
+  request makes github automatically issue a regression test in the cloud, for
+  FW we need to run the relevant testbenches manually. It is not necessary to 
+  rerun the entire FW regression test, it is sufficient to only run the
+  regression test for the HDL libraries that were modified and the HDL 
+  libraries that could be impacted by the modification)
+* Push the branch to the central repository at gitlab  
+
+    git push -u origin L2SDP-26   # first time to declare the branch at the remote
+    
+  
+* Coder does merge request to reviewer using the central Gitlab GUI
+* gitlab will warn if the branch will lead to a merge conflict, the coder then
+  first has to fix the merge conflict by merging the master to the branch:
+  The merge can use merging or rebasing, Ger typically uses merging. On local
+  machine the coder resolves the merge conflict:
+
+    git checkout master
+    git pull
+    git checkout L2SDP-26
+    git merge master
+    git status   # to see merge conflicts, edit file to solve merge conflict
+    git add file
+    git commit
+    git push
+  
+* In gitlab do merge request to reviewer
+* Reviewer reviews the code per line or in general comments in gitlab GUI,
+  so reviewer does not need to pull the branch locally and also does not need
+  to rerun the regression test.
+* Use 'Open in Web IDE' button in gitlab GUI to see max about 10 changes,
+  use 'Changes' menu on same page to see all changes. Green is new file,
+  orange is change file, + is new lines - is removed lines.
+* Coder does updates on branch until both coder and reviewer are ok, they are
+  notified by gitlab
+* When review is done then the reviewer does the merge.
+* The merge automatically deletes the branch (if selected to do so in gitlab)
+  locally the coder manually needs to delete the branch:
+  
+    git branch
+    git checkout master
+    git status
+    git branch -d L2SDP-26
+    git status
+    
+* Use Jira tag in commit message to have link between GIT and Jira. The link
+  was made via Settings/Intergations/Jira
+
+Note:
+* In github a merge request is called a pull request
+* Default a pull pulls the master. Typically it is not necessary to pull a 
+  branch because the reviewer does not need to compile and run the code and
+  because typically only one coder works on a branch.
+
+
+*******************************************************************************
+* Confluence:
+*******************************************************************************
+- space tools menu links onder om secties the ordenen.
+- space tools menu, content tools, custom export to PDF --> to export multiple
+  pages to PDF and to preserve th ASTRON logo in the export
+
+
+*******************************************************************************
+* Polarion:
+*******************************************************************************
+
+
+*******************************************************************************
+* LaTeX
+*******************************************************************************
+- \sigma \sqrt{}
+- 4.15 \cdot 10^{15}
+- M =
+    \left[ {begin{array}{cc}
+    1 & 2 & 3 & 4\\
+    5 & 6 & 7 & 8\\
+    \end{array} } \right]
+
+
+
+*******************************************************************************
+* Markdown
+*******************************************************************************
+
+Text will wrap.
+
+Backslash is escape chararcter.
+
+# Heading 1
+## Heading 2
+### Heading 3
+#### Heading 4
+##### Heading 5
+###### Heading 6
+
+Horizontal rules three or more of ***, ___, ---
+
+*italic*
+_italic_
+**bold**
+__bold__
+**bold and _bolditalic_**    combined
+`boxed`
+~~strike through~~
+
+Block quotes (alinea with an indent bar):
+> Block text will wrap
+
+Unordered list using *, -, +, indent >= 1 space
+* Main item 1
+* Main item 2          
+ * sub item 2a  use 2 trailing spaces for return inside paragraph
+ * sub item 2b
+ 
+Ordered list 
+1. Main item 1
+2. Main item 2          
+ 2.1 sub item 2a
+ 2.2 sub item 2b
+           
+Images  
+![Logo](path to image file)
+![Logo](web link to image file)
+![Logo][image1]
+
+[image1]:web link to image file
+
+Links:
+[ASTRON]:https://www.astron.nl
+
+Table:
+|col1 | col2| Col3 |    column titles
+|---|:---:|--:|    >= 3 dashes, colon for left, center, right align
+| row text | row text | row text|
+| row text | row text | row text|
+
+vi
+"Replaced Windows LFCR by Linux LF to avoid ^R at end of line in vi. Removed trailing spaces."
+- in gvim replace \r --> nothing
+- in uex save new file as Linux, save as, menu edit/preferences/line end
\ No newline at end of file
-- 
GitLab