Jaycent Gunawan Ongris
    • 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
    • Invite by email
      Invitee

      This note has no invitees

    • 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
    • Note Insights New
    • Engagement control
    • Make a copy
    • 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 Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy 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
  • Invite by email
    Invitee

    This note has no invitees

  • 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
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    ## Jawaban untuk Pertanyaan pada Demo ### Layout dan Widget yang Digunakan **1. Fitur Utama** - `main.dart` menggunakan widget `Scaffold` dengan body `Center` dengan child `Column` yang terdiri dari `Image`, `Container` yang berisi `Text`, dua `TextButton`, dan `SizedBox` untuk memberi jarak pada dua `TextButton` tersebut. - `login.dart` menggunakan widget `Scaffold` dengan body `Container` dengan child `Container` yang memiliki child `Column` dengan children yang berupa `Image`, `SizedBox`, dan `Form` yang memiliki child `SingleChildScrollView`, dengan child `Column` yang berisi `Container` dengan child `TextFormField` untuk menerima input dan `OutlinedButton` untuk submit isi form. Di bawah `Form` tersebut, terdapat `SizedBox` untuk memberi jarak dengan `Container` berisi `RichText` yang berada di bawahnya. - `user_dashboard.dart` menggunakan widget `Scaffold` dengan body `ListView` dengan children berupa `RichText` untuk menampilkan informasi nickname user yang sedang *log in*, `Container` yang berisi `Column` dengan children `Stack` untuk menampilkan gambar pada widget `ClipRRect` di belakang `Container` lainnya dengan child `Column` yang berisi dua widget `Text` yang dibungkus menggunakan `Center` dan sebuah widget `SizedBox` untuk memberi jarak. Di bawahnya, terdapat `Container` dengan child `Column` yang berisi `Text`, `SizedBox`, dan `Form`. Form tersebut berfungsi untuk menerima input *message* dari pengguna dan ditampilkan dalam bentuk `Row`, dengan children berupa `TextFormField` yang dibungkus dengan widget `Expanded` dengan flex 8, dan `IconButton` di sampingnya untuk mengirimkan *message* tersebut. Setelah itu, di bawah form tersebut, terdapat `Text` yang dibungkus dengan widget `Center` dan `Container` berisi `Column` yang menampilkan semua fitur-fitur yang ada dalam bentuk `Container` dengan child `InkWell` agar `Container` tersebut dapat ditekan untuk berpindah ke halaman fitur yang bersangkutan. Selain itu, digunakan juga `SizedBox` untuk memberi jarak pada `Container` tersebut. - `admin_dashboard.dart` menggunakan widget `Scaffold` dengan body `ListView` yang dibungkus oleh `Center`. `ListView` tersebut memiliki children berupa widget `Align` yang memiliki child `Container` dengan isi widget `Text` dan widget-widget `Container` dengan child `InkWell` yang memiliki child widget `Center` yang berisi `Text` untuk menampilkan menu yang dapat dipilih oleh admin. - *Drawer* admin dan file`drawer.dart` menggunakan widget `Drawer` dengan child `Column` yang memiliki children `UserAccountsDrawerHeader` dan widget-widget `ListTile` untuk navigasi ke halaman yang lain ataupun untuk *log out*. - `profile.dart` menggunakan widget `Scaffold` dengan body `Flex` yang memiliki children `Expanded` yang berisi `ListView` dengan children `Container` untuk menampilkan `Text` yang berisi *title*, `Center` dengan child `CircleAvatar` untuk menampilkan foto profil, serta beberapa `SizedBox` dan `Container` yang berisi `Text` untuk menampilkan informasi terkait pengguna yang bersangkutan. - `list_fundraising.dart`, `list_message.dart`, dan `list_user.dart` memiliki struktur halaman yang hampir sama. Ketiga halaman ini menggunakan widget `Scaffold` dengan body `Center` yang memiliki child `Column` dengan children berupa dua widget `Expanded`. Widget `Expanded` yang pertama berisi `Container` yang berisi `Text` untuk menunjukkan *title* halaman tersebut. Sementara itu, widget `Expanded` yang kedua berisi `FutureBuilder` untuk menampilkan data yang di-*fetch* dari *web service* PTS. Data tersebut masing-masing ditampilkan dalam suatu `Container` yang memiliki child `InkWell`. Berikut detail child `InkWell` pada `Container` untuk masing-masing halaman: - `InkWell` untuk `list_fundraising.dart` memiliki child `Column` dengan children `Expanded` untuk menampilkan `Text` nama *donation* yang dibungkus dengan `Align`, `Expanded` untuk menampilkan `Text` nama pembuka *donation* yang dibungkus dengan `Align`, dan `Expanded` yang memiliki child `Row` untuk menampilkan widget `Text` (yang dibungkus `Expanded`) berisi jumlah dana yang dibutuhkan dan status donasi dalam satu baris. - `InkWell` untuk `list_message.dart` memiliki child `Column` dengan children `Expanded` untuk menampilkan `Text` nama *message* yang dibungkus dengan `Align` dan `Expanded` yang memiliki child `Row` untuk menampilkan widget `Text` (yang dibungkus `Expanded`) berisi pengirim *message* dan waktu terkirim dalam satu baris. - `InkWell` untuk `list_user.dart` memiliki child `Column` dengan children `Expanded` untuk menampilkan *username* dari pengguna yang dibungkus dengan `Align` dan `Expanded` yang memiliki child `Row` untuk menampilkan widget `Text` (yang dibungkus dengan `Expanded`) berisi *nickname*, ID, dan status pengguna tersebut dalam satu baris. - `fundraising_detail.dart`, `message_detail.dart`, dan `user_detail.dart` memiliki struktur halaman yang hampir sama. Ketiga halaman ini menggunakan widget `Scaffold` dengan body `Center` yang memiliki child `ListView`. Children dari `ListView` tersebut disesuaikan dengan halaman detail yang dibuka. Akan tetapi, secara umum, isi dari `ListView` tersebut adalah `Container` yang berisi `Text` untuk menampilkan judul halaman, `Container` dengan child `Column` yang yang terdiri dari dua widget `Text` untuk menampilkan informasi, `Container` dengan child `Column` yang terdiri dari widget `Text` untuk menunjukkan judul informasi dan `LinearPercentIndicator` dari *library* `percent_indicator` untuk menampilkan informasi berapa persen dana yang terkumpul pada *page* `fundraising_detail.dart`, serta `Center` dengan child `CircleAvatar` untuk menampilkan foto profil pada *page* `user_detail.dart`. **2. Donation** - `donation_list.dart` menggunakan widget `Scaffold` dengan body widget `Center` dengan child berupa `Column` yang memiliki tiga `Expanded` sebagai children. `Expanded` pertama berisi judul halaman. `Expanded` kedua berisi `FutureBuilder` yang akan membangun suatu `ListView` dengan `ListView.builder` yang berisi suatu `Container` dengan `InkWell` untuk membuat `Container` tersebut bisa diklik. Setiap `InkWell` berisi suatu `Column` yang memiliki empat buah `Expanded`. Dua `Expanded` memiliki `Align` berisi `Text` sebagai child mereka (satu untuk keterangan nama donasi dan satu lagi untuk nama pembuka donasi) dan sisanya memiliki child `Row` dengan satu buah `Expanded` berisi `Text` sebagai children (satu untuk jumlah donasi yang dibutuhkan dan satu lagi untuk jumlah donasi yang sudah terkumpul). `Expanded` ketiga yang hanya tampil pada *user* yang terverifikasi berisi sebuah `Container` dengan child `Row` yang memiliki dua `TextButton` berisi `Text` sebagai children untuk tombol membuka donasi dan melihat donasi yang dibuka. - `donation_detail.dart` menggunakan widget `Scaffold` dengan body widget `Center` dengan child berupa `ListView` yang memiliki sepuluh `Container` sebagai children. `Container` pertama memiliki satu child `Text` untuk judul halaman. `Container` kedua hingga kedelapan memiliki child `Column` dengan dua `Text` sebagai children. `Text` pertama untuk menampilkan keterangan data dan `Text` kedua untuk menampilkan datanya. Data yang ditampilkan adalah nama donasi, id donasi, pembuka donasi, deskripsi donasi, jumlah donasi yang dibutuhkan, jumlah donasi yang sudah terkumpul, dan jumlah donasi yang masih dibutuhkan. `Container` kesembilan berisi `Column` dengan children berupa `Text` untuk menampilkan keterangan dan `LinearPercentIndicator` sebagai sebuah indikator jumlah donasi yang sudah terkumpul. `Container` terakhir berisi sebuah `Column` dengan children berupa sebuah `Text` untuk menampilkan keterangan dan sebuah `Form` untuk melakukan donasi. `Form` tersebut memiliki `TextFormField` untuk mengisi jumlah donasi dan sebuah `TextButton` untuk melakukan submisi *form*. - `opened_donation_list.dart` menggunakan widget `Scaffold` dengan body widget `Center` dengan child berupa `Column` yang memiliki dua`Expanded` sebagai children. `Expanded` pertama berisi judul halaman. `Expanded` kedua berisi `FutureBuilder` yang akan membangun suatu `ListView` dengan `ListView.builder` yang berisi suatu `Container` dengan child berupa suatu `Column` yang memiliki enam buah `Expanded`. Empat `Expanded` pertama yang secara berurutan digunakan untuk menampilkan data nama, deskripsi, jumlah yang dibutuhkan, dan jumlah yang sudah terkumpul dari suatu donasi memiliki child berupa `Align` yang memiliki child berupa `Text` untuk menampilkan data. `Expanded` kelima berisi sebuah `Text` berwarna yang menampilkan status verifikasi donasi tersebut. `Expanded` keenam memiliki child berupa `Align` dengan child berupa `TextButton` dengan child berupa `Text` yang digunakan untuk membuat suatu tombol untuk menutup donasi. - `create_donation.dart` menggunakan widget `Scaffold` dengan body widget `Form` dengan child berupa `SingleChildScrollView` dengan child berupa `Container` dengan child berupa `Column`. `Column` tersebut memiliki children berupa tiga buah `Padding` sebagai *field* untuk *input user* dan satu buah `TextButton` untuk melakukan submisi *form*. `Padding` pertama berisi `TextFormField` sebagai isian untuk nama donasi. `Padding` kedua berisi `TextFormField` sebagai isian untuk deskripsi donasi. `Padding` ketiga berisi `TextFormField` sebagai isian untuk jumlah donasi yang dibutuhkan. `TextButton` memiliki sebuah child berupa `Text` sebagai keterangan `TextButton` tersebut. **3. Blog** - `blog_list.dart` menggunakan widget `Scaffold` dengan body widget menggunakan `FutureBuilder` yang akan membangun `ListView` yang digunakan untuk membuat *list* children dan menggunakan `ListView.builder` untuk membuat *children* secara rekursif tanpa menulis kode berulang kali.`SingleChildScrollView` untuk membuat layar *scrollable* sesuai dengan banyaknya data *blog* pada database. Objek blog akan dimasukkan ke dalam sebuah widget `card` yang menampilkan judul blog, tanggal dibuat blog, tombol upvote downvote yang menampilkan nilainya, konten blog secara singkat, dan sebuah button “Read More” yang ketika di klik akan membukan halaman detail dari blog. Tombol *upvote downvote* dan "Read More" ditempatkan di dalam widget `Row`. `Row` tersebut dan judul, tanggal, content dari dalam card tersimpan dalam widget `Container`. Tombol *upvote downvote* dan "Read More" menggunakan widget `InkWell` agar bisa memiliki fungsi `onTap()`. Page juga menggunakan widget import `ConvexAppBar` sebagai button navbar. - `blog_details.dart` menggunakan widget `Scaffold` dengan body widget `SingleChildScrollView` yang memiliki child widget `Container` yang menyimpan widget `Column` yang menyimpan`Row` yang menyimpan judul dan *upvote downvote*. Tombol *upvote downvote* menggunakan widget `InkWell` agar bisa memiliki fungsi `onTap()`. Kemudian di kolom berikutnya berisikan content dari blog yang dituliskan oleh user yang disimpan di dalam widget `Flexible` agar bisa menyesuaikan sendiri dengan dimensi layar yang digunakan sehingga tidak terjadi overflow. - `create_blog.dart` menggunakan widget `Scaffold` dengan body widget menggunakan widget `SingleChildScrollView` agar bisa scrollable apabila konten yang dituliskan pengguna panjang. Selain itu digunakan widget `Container` untuk menyimpan `Column` yang berisikan `TextFormField` yang akan digunakan sebagai tempat bagi pengguna untuk memasukkan input. Pada setiap `TextFormField` digunakan widget `InputDecoration` untuk memodifikasi *input field*-nya. Kemudian yang terakhir, digunakan widget `TextButton` sebagai *clickable* button yang digunakan untuk membuat *request post*. Page juga menggunakan widget import `ConvexAppBar` sebagai button navbar. - `show_tag.dart` menggunakan widget `Scaffold` dengan body widget menggunakan `FutureBuilder` yang akan membangun `ListView` yang digunakan untuk membuat *list* children dan menggunakan `ListView.builder` untuk membuat `children` secara rekursif tanpa menulis kode berulang kali. Children dari listView tersebut ada `Container` yang menyimpan sebuah widget `Card` yang memiliki child `InkWell` agar ketika card dipencet maka akan diarahkan kepada *post* terkait dengan *tag* yang dicari oleh user. Page juga menggunakan widget import `ConvexAppBar` sebagai button navbar. - `tag_page.dart` menggunakan widget yang sama persis dengan `blog_list.dart`. **4. Foodsharing** * `foodsharing_page.dart` menggunakan widget `Scaffold` dengan body widget `Center` dan child `Column` dengan *children* `Expanded`. Dalam `Expanded` tersebut terdapat child `Container` yang memiliki child `Column` yang berisikan *children* `Text` untuk welcoming text, `Expanded`, dan `Row` yang hanya akun muncul pada akun yang sudah terverifikasi. Pada `Expanded` berisikan `FutureBuilder` yang akan membangun `ListView` yang digunakan untuk membuat list *children* dan menggunakan `ListView.builder` dengan itemBuilder `GFCard` untuk menampilkan semua list food-sharing. Pada `GFCard` dimasukkan image dengan menggunakan `Image.network` menampilkan gambar dari website, lalu menggunakan `GFListTile` untuk menampilkan *author* dari post tersebut, lalu membungkus 4 buah`RichText` yang berfungsi untuk menampilkan *location, description, date,* dan *update date* dengan `Column`. Pada `Row` terdapat dua `TextButton` sebagai *children* dengan `Text` *Add Page* dan *See Own Post*. * `add_foodsharing.dart` menggunakan widget `Scaffold` dengan body `Form` yang memiliki child `SingleChildScrollView` dengan child `Container` dan `Container` tersebut memiliki child `Column` dengan 4 buah `Padding` sebagai children. Tiga diantaranya digunakan untuk membungkus `TextFormField`, sisa 1 digunakan untuk `TextButton` dengan `Text`. * `edit_foosharing.dart` menggunakan widget-widget yang sama dengan `add_foodsharing.dart` * `own_post.dart` menggunakan widget-widget yang sama dengan `foodsharing_page` bedanya hanya pada `own_post.dart` tidak terdapat widget `Row`. Satu perbedaanya lagi adalah pada `own_post.dart` masing-masing `GFCard` memiliki `GFButtonBar` yang berisi dua `IconButton` sebagai *children* yaitu untuk fitur *delete* dan *edit*. **5. CalorieTracker** * `calorietracker_page.dart` menggunakan widget `Scaffold` dengan body widget yang menggunakan widget `Center` dengan children berupa `Expanded`. Dalam `Expanded` terdapat child `Container` yang memiliki child `Column` yang berisikan children `Text` untuk welcoming text, `ElevatedButton` untuk button informasi, `Padding` yang berisi child `TextButton` untuk button delete, serta `Expanded` yang berisikan `FutureBuilder` yang akan membangun `ListView` yang digunakan untuk membuat list children dan menggunakan `ListView.builder` dengan itemBuilder `Container` yang memiliki child berupa `ListTile` untuk menampilkan daftar kalori, dan yang terakhir `Container` dengan child `Row` untuk menyusun `TextButton` untuk button Add Calorie dan Reduce Calorie. Pada `ElevatedButton` untuk button informasi, jika ditekan maka akan muncul pop up yang dibuat dengan menggunakan `Dialog` dengan child `SizedBox` yang memiliki child `PageView`. `PageView` digunakan agar konten dapat ditampilkan dalam bentuk page yang discroll dengan arah vertikal. Pada `ListTile` yang menampilkan daftar kalori, terdapat 2 `iconButton` yaitu untuk edit dan delete. Jika `ListTile` ditekan maka akan muncul pop up yang dibuat dengan menggunakan `Dialog` dengan child `SizedBox` yang memiliki child `Column` dengan children `Padding` untuk membungkus text, `Icon`, `Richtext` untuk menampilkan detail informasi, serta sebuah `Container` dengan child `SingleChildScrollView` yang didalamnya terdapat child text untuk deskripsi, hal ini untuk mengantisipasi deskripsi panjang yang diinput oleh user agar tidak terjadi overflow. * `addcalorie_page.dart` menggunakan widget `Scaffold` dengan body `Form` yang memiliki child `SingleChildScrollView` yang digunakan agar bisa di scroll jika input yang diberikan oleh user panjang. `SingleChildScrollView `memiliki child `Container`. Di dalam `Container` terdapat child `Column` yang berisikan 2 children `Padding` untuk membungkus `TextFormField`, 1 `SizedBox` dengan child `DropdownButtonFormField` dan 1 `Padding` untuk membungkus `TextButton` untuk button Add Calorie. * `reducecalorie_page.dart` menggunakan widget `Scaffold` dengan body `Form` yang memiliki child `SingleChildScrollView` yang digunakan agar bisa di scroll jika input yang diberikan oleh user panjang. `SingleChildScrollView` memiliki child `Container`. Di dalam `Container` terdapat child `Column` yang berisikan 2 children `Padding` untuk membungkus TextFormField, dan `TextButton` untuk button Reduce Calorie. * Untuk `edit_add.dart`, memanfaatkan widget-widget yang sama dengan yang ada pada `addcalorie_page.dart`. Sedangkan pada `edit_reduce.dart`, memanfaatkan widget-widget yang sama dengan yang ada pada `reducecalorie_page.dart`. **6. Food Recipe** * `recipe_page.dart` menggunakan widget `Scaffold` dengan body widget yang menggunakan widget `Center` dengan 2 buah widget `Expanded`. Widget `Expanded` pertama digunakan untuk menyimpan container dengan isi `BoxDecoration` dengan `ImageDecoration` serta `Text` untuk bagian judul halaman. Sedangkan `Expanded` kedua berisi future builder yang mengambil data resep makanan untuk ditampilkan dalam bentuk `ListView.builder`. Setelah itu juga terdapat widget `FloatingActionButton` untuk tombol navigasi ke page `add_recipe.dart` * `add_recipe.dart` menggunakan widget `Scaffold` dengan body widget yang menggunakan widget `Column` yang berisi widget `Align` untuk judul page, `SizedBox` untuk jarak judul ke form, dan juga `Form`. Widget `Form` itu sendiri berisi 3 buah `TextFormField` untuk user menulis data yang akan diinput dan juga 1 buah `TextButton` yang berfungsi sebagai tombol submit form * `recipe_details.dart` menggunakan widget `Scaffold` dengan body widget yang menggunakan widget `Center` yang berisikan 1 widget `Listview` untuk menampung data yang akan ditampilkan. Data berupa `Text` yang ditampilkan dalam `ListView` tersebut dikemas oleh sebuah widget `Column` yang berada di dalam widget `Container`.

    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