Tina Visnovska
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
      • Invitee
    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Versions and GitHub Sync Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
Invitee
Publish Note

Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

Your note will be visible on your profile and discoverable by anyone.
Your note is now live.
This note is visible on your profile and discoverable online.
Everyone on the web can find and read all notes of this public team.
See published notes
Unpublish note
Please check the box to agree to the Community Guidelines.
View profile
Engagement control
Commenting
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
  • Everyone
Suggest edit
Permission
Disabled Forbidden Owners Signed-in users Everyone
Enable
Permission
  • Forbidden
  • Owners
  • Signed-in users
Emoji Reply
Enable
Import from Dropbox Google Drive Gist Clipboard
   owned this note    owned this note      
Published Linked with GitHub
Subscribed
  • Any changes
    Be notified of any changes
  • Mention me
    Be notified of mention me
  • Unsubscribe
Subscribe
<center><img src="https://i.imgur.com/sP7cyyX.png" alt="drawing" width="200"/></center> # Transfer data to and from NeLS using web browser, FileZilla, and command line <Transferring and organising data in NeLS> <html> <div style="background-color: #f2f3f4"> In this hands-on exercise, we will log in to the **NeLS Portal** and upload some files to our storage area in NeLS. We will do this in three different ways: via the web portal; with FileZilla - a software dedicated to comfortable data transfer to and from remote servers; and also using the terminal window and the secure copy (`scp`) command. Main goal of this session is to get everyone familiar with the first two ways of connecting to NeLS, while the third approach (connecting to NeLS via terminal) is optional and intended mainly for the participants with some prior command line experience and with preference to use this type of connection to NeLS. You can access the **NeLS portal** at [https://nels.bioinfo.no/](https://nels.bioinfo.no/). </div> </html> ## Access the NeLS portal <html> <div style="background-color: #f2f3f4"> **NeLS** - the Norwegian e-Infrastructure for Life Sciences, is an infrastructure for analysis, sharing and storage of high throughput genomics data. Access to the infrastructure is mainly through a web portal with an easy-to-use graphical interface that allows a user to manage data in their project(s). Everyone with FEIDE credentials can access the portal using FEIDE. Those future users of NeLS who do not have FEIDE can get access by contacting the **ELIXIR Norway helpdesk**. </div> </html> **Task:** Open [NeLS portal](https://nels.bioinfo.no/) in a new tab/window of your web browser. If you are not already logged in NeLS (with FEIDE or NeLS Idp), you need to provide your username and password to log in. Please do so now. :::success :+1: That was the end of this section. Please remember to type "**done nels access**" in the chat so that we know about your progress. ::: ## Set up your local computer <html> <div style="background-color: #f2f3f4"> To successfully learn transfering files to and from NeLS, we will first create a folder on your local computer which will contain all the data necessary for the following exercises. Afterwards, we will download the elixir logo used at the top of this document and store it in the new folder. Later on we will download some additional data into the new folder. Note: Names of files, folders, commands, and other functionality elements will be highlighted through the exercises in the following way: `file_name_example.txt`. User specific (and thus variable) character strings as for example user_name will be written between `<` and `>`  as `<user_name>` to indicate the meaning. </div> </html> <br/> I. Create a specific folder dedicated to this workshop on your local computer: **Windows users:** **Create a new folder** inside `/c/Users/<user_name>/` and call the new folder `elixir`: To create the folder, open File Explorer. Expand `This PC` in the left-hand side menu (if need be) and click on `OS (C:)`. Afterwards, double-click on the `Users` folder and double-click on  the folder with your `<user_name>`. Right-click on the empty surface area (not on a folder name) of the window and select `New > Folder`, screenshot is shown in Figure 1. Type `elixir` as the name of the new folder. <center> <img src="https://i.imgur.com/xesdr6o.jpg" width="800" /> **Figure 1:** Win10, File Explorer - creating a new folder. </center> **OsX users:** **Create a new folder** inside `/Users/<user_name>/` and call the new folder `elixir`: To create a new folder open Finder and go to Macintosh HD. Double click the `Users` (Brukere) folder and double click on the folder with your `<user_name>`. Right click the empty surface area and select `New Folder` (Ny Mappe). Type `elixir` as the name of the new folder. <center> <img src="https://i.imgur.com/r36g87r.jpg" width="800" /> **Figure 2:** OsX, Finder - creating a new folder. </center> **Linux users:** **Create a new folder** called `elixir` with the following command (or consult details individually, if needed). ``` mkdir /home/<user_name>/elixir ``` From now on, we will refer to the elixir folder simply as `elixir` regardless of where exactly the folder is located on your computer. <br/> II. **Download a file** into the `elixir` folder: The following link will get you to [Elixir logo](https://i.imgur.com/sP7cyyX.png). Open the link in a new tab/window of your web browser. Right-click on the logo with your mouse/touchpad and save the image as `logo_to_transfer.png` in the `elixir` folder. <br/> :::success :+1: That was the end of this section. Please remember to type "**done setup**" in the chat so that we know about your progress. ::: <br/> ## Data transfer via the NeLS portal using web browser <html> <div style="background-color: #f2f3f4"> The NeLS portal provides functionality to upload the data from a local computer to NeLS and for basic manipulation of files and folders (copy, rename, move, delete). Brief overview of the available functionality is highlighted and described in Figure 3. In the following exercises, we will learn to use this functionality. </div> </html> <center> <img style="border:1px solid silver;" src="https://i.imgur.com/3LGBzO7.png" width="800" /> </center> **Figure 3:** Screenshot of the Personal Area in the NeLS portal, highlighted blocks: 1. Reload, Upload File, Add New Folder; 2. (De)select all/some items; 3. File and folder manipulation; 4. Download/Rename/Delete; 5. Projects Area - the same functionality available there as in the Personal Area. <br/> I. **Upload** the file `logo_to_transfer.png` to your Personal area in NeLS: Click on the button `Upload` in the top left corner of your web browser NeLS window - in Figure 3, block 1. <br/> II. **Rename** the file `logo_to_transfer.png` to `transferred_logo.png` using renaming icon for the file - in Figure 3, block 3. <br/> III. **Create a new folder** by clicking on the button `+ New Folder` (block 1). Name the new folder `uploaded_workshop_2022` and move the file `transferred_logo.png` into the new folder. To move a file to another location, one has to select the file using checkbox (block 4) and use the `Cut` button (block 2). Afterwards, one has to descend into the destination folder and press the `Paste` button located right next to the `Cut` button (block 2). <br/> IV. **Download** compressed folder `uploaded_workshop_2022` into the `elixir` folder on your local computer and inspect the content of the compressed archive. For the download, use a downloading icon that will show up for the folder nearby the renaming icon. <br/> V. **Delete** the folder `uploaded_workshop_2022` from the NeLS Personal Area. <br/> VI. **Delete** the compressed folder `uploaded_workshop_2022` from your local computer. <br/> :::success :+1: That was the end of this section. Please remember to type "**done nels transfer**" in the chat so that we know about your progress. ::: ## Set up and use FileZilla for data transfer to and from NeLS <html> <div style="background-color: #f2f3f4"> In the following part, we will set up FileZilla on your local computer to access NeLS portal with your credentials. Afterwards we will transfer some data through the established connection. This approach is better suited to transfer bigger files to NeLS than using the web interface introduced earlier. In order for FileZilla to establish the connection to NeLS, we have to collect some connection details in the NeLS portal and provide that pieces of information to FileZilla. Figures 4 and 5 show where the connection details can be obtained in NeLS. One of the connection details is your **ssh key**. Such a key is used for user's authentication as an alternative to a password. In a very simplified way, we can consider the ssh key to be your very long password stored in a text file. Therefore, we have to treat the key file as a piece of sensitive information and be careful about what can and cannot be done with the file. First, when you download the file onto your local computer, please pay attention to place the file into a location which is not backed up somewhere on a cloud. This is covered, if you followed the previous instructions about where to create the `elixir` folder. Second, you should check and possibly modify access permissions of the key file set to other users on your computer. We will provide a step-by-step guide to get you smoothly through the task. Figures 6 and 7 show FileZilla screenshots with filled details for the connection to NeLS and with established connection to NeLS, respectively. </div> </html> <br/> <center> <img style="border:1px solid silver;" src="https://i.imgur.com/i2Qm7eY.png" width="600"/> Figure 4: NeLS portal - Navigation to menu with connection details. <br/> <img style="border:1px solid silver;" src="https://i.imgur.com/wnU7QCp.png" width="600" /> Figure 5: NeLS portal - Connection Details: 1. username, 2. host, 3. key. </center> <br/> I. Make sure you have [FileZilla](https://filezilla-project.org/download.php) downloaded and installed on your local computer. <br/> II. Open `Connection Details` pop-up window in the NeLS portal: Hover with the hand cursor over your name in the top right corner until the menu with `Connection Details` shows on the screen (Figure 4). Click on the `Connection Details`. <br/> III. You will have to provide `Host` (1.) and `Username` (2.) to FileZilla in exactly the same form as they are typed in the `Connection Details` pop-up window in Figure 5. Keep the window open so that you can copy and paste them later on. <br/> IV. **Download** the SSH Key (3.) to the `elixir` folder on your computer. <br/> V. **Check and modify access permissions** of the downloaded key file: **Windows users:** Open File Explorer and navigate into the `elixir` folder. Right-click on the key file and select the option `Properties` at the bottom of the option list. Select submenu `Security` in the newly opened window - highlighted in red in Figure 6. If anyone else than you, `SYSTEM`, and `Administrators` has granted access to the key file, select such a user and remove all their access rights via clicking on `Edit...` button and denying everything. <center> <img src="https://i.imgur.com/85SnBQB.jpg" width="600" /> Figure 6: Security submenu in file properties. </center> **OsX users:** Open Finder and navigate into the `elixir` folder. Right-click on the folder. Select the option called `Open Terminal Here...` and confirm. Then type the following command in the terminal window and press enter: ``` $ chmod 600 <ssh_key> ``` `<ssh_key>` stands for the name of your ssh key file. This command will limit the access to the file exclusively to you. To simplify typing the whole `<ssh_key>` file name, type first 4 characters of the file name and then press `Tab` key on your keyboard - the rest of the file name should be auto-completed for you. You can close the terminal window with typing `exit` and pressing `Enter`. **Linux users:** Open file manager and navigate into the `elixir` folder. Right-click on the area showing content of the folder (but not directly on any of the files in there). Select the option called `Open Terminal Here...` and confirm. Then type the following command in the terminal window and press enter: ``` $ chmod 600 <ssh_key> ``` `<ssh_key>` stands for the name of your ssh key file. This command will limit the access to the file exclusively to you. To simplify typing the whole `<ssh_key>` file name, type first 4 characters of the file name and then press `Tab` key on your keyboard - the rest of the file name should be auto-completed for you. You can close the terminal window with typing `exit` and pressing `Enter`. <br/> VI. Run FileZilla. In the top menu, click on `File` and then on `Site Manager...`. Click on the `New Site` button and call the new site `NeLS`. Perform the following changes to the form: 1. Change `Protocol` to `SFTP - SSH File Transfer Protocol`. 2. Fill in `Host` from the NeLS Connection Details. 3. Change `Logon Type` to `Key File`. 4. Fill in `Username` from the NeLS Connection Details. 5. Browse for the Key File, allow all file types to show in the pop-up window and select the SSH Key File downloaded from the NeLS portal to the `elixir` folder. The Site Manager Form will at the end look similar to the screenshot in Figure 6. When ready, press the `Connect` button. When the connection to NeLS is successfully established, the content of the local computer is shown in the left-hand side window and the content of NeLS is shown in the right-hand side window as in Figure 7. <br/> <center> <img style="border:1px solid silver;" src="https://i.imgur.com/YmUrRrB.png" width="600" /> Figure 6: FileZilla New Site Manager Form - filled, info from the NeLS Connection Details in 1.,2.,3. <br/> <img style="border:1px solid silver;" src="https://i.imgur.com/64SjNE4.png" width="800" /> Figure 7: FileZilla, when connection to NeLS is established. </center> :::success :+1: That was the end of this section. Please remember to type "**done filezilla setup**" in the chat so that we know about your progress. ::: <br/> VIII. **Copy the file** `logo_to_transfer.png` into the `Personal` folder with FileZilla drag-and-dropping the file: Navigate in FileZilla (using either keyboard arrows or mouse/touchpad) to the `elixir` folder on your computer - in the left-hand side FileZilla window. Navigate in FileZilla to the `Personal` folder in NeLS - in the right-hand side window. Drag and drop the file from the local folder to the NeLS location. <br/> IX. Do the following in FileZilla: **Rename the file** `logo_to_transfer.png` in the `Personal` folder to `transferred_logo.png`. **Create a new folder** in `Personal` with mouse right-click. Call the new folder `uploaded_workshop_2021`. **Move** `transferred_logo.png` to the new folder. <br/> X. **Transfer** the `uploaded_workshop_2021` folder to your local computer with FileZilla. <br/> XI. **Remove** the `uploaded_workshop_2021` folder from `Personal` folder in NeLS. <br/> XII. **Thought experiment:** Is it possible to transfer data between `Personal` and `Projects` folders using FileZilla? <br/> XIII. When you want to connect FileZilla to NeLS again, you can hover with your cursor over the left-most icon (servers) right below the top menu and select `NeLS` connection when it shows up - as shown in Figure 7. <br/> XIV. **Remove** the `uploaded_workshop_2021` folder from your local computer (with FileZilla or otherwise). <br/> :::success :+1: That was the end of this section. Please remember to type "**done filezilla transfer**" in the chat so that we know about your progress. ::: ## Use terminal to connect to NeLS (optional) <html> <div style="background-color: #f2f3f4"> This section of the exercises is optional and aimed mainly on the participants interested in using command line for data transfer as well as having some prior experience with command line. Further content of the workshop does require the content of this section - FileZilla in combination with the [NeLS web portal](https://nels.bioinfo.no/) can be used for all the needed data transfer tasks. In the beginning of this section, we will use several standard commands in a terminal window to list directory content, copy and delete files on your local computer. Later we will use the `ssh` command to connect to the NeLS server and to navigate around the directory structure on the server. At the end, we will use the `scp` command to copy a file from a local computer to the NeLS server and back. If you are interested in deeper understanding of commands standardly used in terminal, we suggest, for example, reading through [software carpentry materials on bash](http://swcarpentry.github.io/shell-novice/) or attending one of their workshops which covers the topic. In the following text, `<user_name>` refers to your user name on the local computer, while `<user>` refers to the NeLS user ID. You can see your NeLS user ID in the connection details in the web interface of the [NeLS portal](https://nels.bioinfo.no/). </div> </html> <br/> I. **Windows users only:** please make sure you have [Git for Windows](https://git-scm.com/download/win) downloaded and installed on your local computer. The reason for installing Git is that the package contains a linux-like terminal called Git Bash which we will use. <br/> II. **Open a terminal window** in the `elixir` folder: **Windows users:** Open File Explorer and navigate into the `elixir` folder. Right-click with a mouse/touchpad on the area showing content of the folder (but not directly on any of the files in there). Select the option called `Run Git Bash Here...` and confirm. **OsX users:** Open Finder and navigate into the `elixir` folder. Right-click on the folder. Select the option called `Open Terminal Here...` and confirm. **Linux users:** Open file manager and navigate into the `elixir` folder. Right-click with a mouse/touchpad on the area showing content of the folder (but not directly on any of the files in there). Select the option called `Open Terminal Here...` and confirm. <br/> III. **List content** of the `elixir` folder with command `ls`: ``` $ ls logo_to_transfer.png <user>@nelstor0.cbu.uib.no.key ``` <br/> IV. **Print name of current/working directory** with `pwd` command. The output of the command will be either `/c/Users/<user_name>/elixir` (Win), or `/Users/<user_name>/elixir` (OsX), or `/home/<user_name>/elixir` (linux). ``` $ pwd /home/<user_name>/elixir ``` <br/> V. **Copy** `logo_to_transfer.png` to `logo_to_transfer_2.png`: ``` $ cp logo_to_transfer.png logo_to_transfer_2.png ``` <br/> VI. List again the content of the `elixir` folder, you can see the new file added to the output. ``` $ ls logo_to_transfer.png <user>@nelstor0.cbu.uib.no.key logo_to_transfer_2.png ``` <br/> VII. **Maintenance tip:** typing command `clear` and pressing enter will clear your terminal window and put the active line with a cursor at the top of the window. <br/> VIII. **Workshop sync:** That was the end of this section of the practical. Please type "**done command-line local**" in the chat. <br/> IX. Now we will use the `ssh` command to **access content of the NeLS server** through a terminal window. Typing the following command into the command line will initiate connection with NeLS server: ``` ssh -i <user>@nelstor0.cbu.uib.no.key <user>@nelstor0.cbu.uib.no ``` If this is your first connection to NeLS, you have to type `yes` and press enter to confirm that you want to connect to that server. Afterwards, NeLS welcome screen will show up as in Figure 8. <br/> <center> <img style="border:1px solid silver;" src="https://i.imgur.com/ERfZG6w.png" width="800" /> **Figure 8:** NeLS welcome screen. </center> <br/> X. **Print working directory** with `pwd` command. As you are connected to the NeLS server in this terminal window, the output of the command will be a path to your NeLS home directory. ``` $ pwd /elixir-chr/nels/users/<user> ``` <br/> XI. **List content** of your home directory with `ls` command. You can use parameter `-F` to easily see which records are folders (character `/` will show up after their names) and which are files (nothing added at the end). The output will be two folders called `Personal` and `Projects` - the same two folders you have previously seen in FileZilla as well as via the web interface of the NeLS portal. ``` $ ls -F Personal/ Projects/ ``` <br/> XII. **List content of sub-folder** `Personal`. There are several ways of doing this, we will show two of them. One can either descend to the sub-folder, list its content and go back to the home folder, or stay in the home directory and specify the sub-folder as an input to the `ls` command. The first approach: ``` $ cd Personal $ ls first.txt second.txt $ cd .. ``` The second approach: ``` $ ls Personal first.txt second.txt ``` <br/> XIII. Open another Terminal/GitBash window in the `elixir` folder. <br/> XIV. In the new window run the following `scp` command that will copy `logo_to_transfer.png` to your Personal area in NeLS. The `\`s at the end of the lines split the command to multiple lines for easier readability of the command - you can skip them and write the whole command (without `>` characters) into one line, substituting `<user>` with your NeLS user ID. ``` $ scp \ > -i <user>@nelstor0.cbu.uib.no.key \ > logo_to_transfer.png \ > <user>@nelstor0.cbu.uib.no:/elixir-chr/nels/users/<user>/Personal ``` <br/> XV. When `scp` command finishes the data transfer, go to the first terminal window and list content of the Personal area with `ls` command. If the window got inactive, close it, open another terminal window in the `elixir` folder and connect to NeLS via `ssh` again. Can you see the newly transferred file? <br/> XVI. **Rename file** `logo_to_transfer.png` to `transferred_logo.png` with `mv` command in the `ssh` terminal window: ``` $ cd Personal $ mv logo_to_transfer.png transferred_logo.png $ ls first.txt second.txt transferred_logo.png ``` <br/> XVII. **Create folder** `uploaded_workshop_2021` with `mkdir` command and **move** `transferred_logo.png` into the new folder with `mv` command in the `ssh` terminal window. ``` $ mkdir uploaded_workshop_2021 $ mv transferred_logo.png uploaded_workshop_2021 $ ls -F first.txt second.txt uploaded_workshop_2021/ ``` <br/> XVIII. **Download folder** `uploaded_workshop_2021` from Personal area in NeLS back to your local computer in the `scp` terminal window. Parameter `-r` in the `scp` command stands for 'recursively' and indicates that all the content of the folder `uploaded_workshop_2021` will be downloaded into the working directory (`.` in the last line of the command) on your local computer. ``` $ scp \ > -r \ > -i <user>@nelstor0.cbu.uib.no.key \ > <user>@nelstor0.cbu.uib.no:/elixir-chr/nels/users/<user>/Personal/uploaded_workshop_2021 \ > . ``` <br/> XIX. **Delete file** `transferred_logo.png` and folder `uploaded_workshop_2021` from NeLS Personal area using `rm` command in the `ssh` window. Parameter `-d` in the second `rm` command indicates that we are removing an empty directory. ``` $ cd uploaded_workshop_2021 $ rm transferred_logo.png $ cd .. $ ls -F first.txt second.txt uploaded_workshop_2021/ $ rm -d uploaded_workshop_2021 $ ls first.txt second.txt ``` <br/> XX. To stop the `ssh` command connecting to the NeLS server, we type command `exit`. ``` $ exit Connection to nelstor0.cbu.uib.no closed. ``` <br/> :::success :+1: That was the end of this section. Please remember to type "**done command-line transfer**" in the chat so that we know about your progress. :::

Import from clipboard

Paste your markdown or webpage here...

Advanced permission required

Your current role can only read. Ask the system administrator to acquire write and comment permission.

This team is disabled

Sorry, this team is disabled. You can't edit this note.

This note is locked

Sorry, only owner can edit this note.

Reach the limit

Sorry, you've reached the max length this note can be.
Please reduce the content or divide it to more notes, thank you!

Import from Gist

Import from Snippet

or

Export to Snippet

Are you sure?

Do you really want to delete this note?
All users will lose their connection.

Create a note from template

Create a note from template

Oops...
This template has been removed or transferred.
Upgrade
All
  • All
  • Team
No template.

Create a template

Upgrade

Delete template

Do you really want to delete this template?
Turn this template into a regular note and keep its content, versions, and comments.

This page need refresh

You have an incompatible client version.
Refresh to update.
New version available!
See releases notes here
Refresh to enjoy new features.
Your user state has changed.
Refresh to load new user state.

Sign in

Forgot password

or

By clicking below, you agree to our terms of service.

Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
Wallet ( )
Connect another wallet

New to HackMD? Sign up

Help

  • English
  • 中文
  • Français
  • Deutsch
  • 日本語
  • Español
  • Català
  • Ελληνικά
  • Português
  • italiano
  • Türkçe
  • Русский
  • Nederlands
  • hrvatski jezik
  • język polski
  • Українська
  • हिन्दी
  • svenska
  • Esperanto
  • dansk

Documents

Help & Tutorial

How to use Book mode

Slide Example

API Docs

Edit in VSCode

Install browser extension

Contacts

Feedback

Discord

Send us email

Resources

Releases

Pricing

Blog

Policy

Terms

Privacy

Cheatsheet

Syntax Example Reference
# Header Header 基本排版
- Unordered List
  • Unordered List
1. Ordered List
  1. Ordered List
- [ ] Todo List
  • Todo List
> Blockquote
Blockquote
**Bold font** Bold font
*Italics font* Italics font
~~Strikethrough~~ Strikethrough
19^th^ 19th
H~2~O H2O
++Inserted text++ Inserted text
==Marked text== Marked text
[link text](https:// "title") Link
![image alt](https:// "title") Image
`Code` Code 在筆記中貼入程式碼
```javascript
var i = 0;
```
var i = 0;
:smile: :smile: Emoji list
{%youtube youtube_id %} Externals
$L^aT_eX$ LaTeX
:::info
This is a alert area.
:::

This is a alert area.

Versions and GitHub Sync
Get Full History Access

  • Edit version name
  • Delete

revision author avatar     named on  

More Less

Note content is identical to the latest version.
Compare
    Choose a version
    No search result
    Version not found
Sign in to link this note to GitHub
Learn more
This note is not linked with GitHub
 

Feedback

Submission failed, please try again

Thanks for your support.

On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

Please give us some advice and help us improve HackMD.

 

Thanks for your feedback

Remove version name

Do you want to remove this version name and description?

Transfer ownership

Transfer to
    Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

      Link with GitHub

      Please authorize HackMD on GitHub
      • Please sign in to GitHub and install the HackMD app on your GitHub repo.
      • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
      Learn more  Sign in to GitHub

      Push the note to GitHub Push to GitHub Pull a file from GitHub

        Authorize again
       

      Choose which file to push to

      Select repo
      Refresh Authorize more repos
      Select branch
      Select file
      Select branch
      Choose version(s) to push
      • Save a new version and push
      • Choose from existing versions
      Include title and tags
      Available push count

      Pull from GitHub

       
      File from GitHub
      File from HackMD

      GitHub Link Settings

      File linked

      Linked by
      File path
      Last synced branch
      Available push count

      Danger Zone

      Unlink
      You will no longer receive notification when GitHub file changes after unlink.

      Syncing

      Push failed

      Push successfully