Skip to content

zhuchangyi/InteractiveCodeNote

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Interactive Code Note

👋 Hey there! Welcome to Interactive Code Note - your new coding buddy that fits right into your favorite note-taking apps and markdown editors.
💗 Ideal for developers, educators, students anyone who seeking a flexible code editing and execution environment that can be integrated into various blogs and documents. See Demos Here image

Introduction

📚 Interactive Code Note is a web-based code editor that supports multiple programming languages. You can run code snippets, save versions, and retrieve previous versions. This document provides instructions for setting up and running the project.

Features

  • Code execution in multiple languages(Still working on that)
  • Save codes and see version history
  • Embeddable in web pages or local markdown files
  • Supports platforms like Typora, Obsidian, Notion, and more
  • Docker-based deployment for easy setup and security

Setup Instructions

Step 1: Initialize the Backend

Navigate to the backend directory and initialize the Go module.

cd backend
go mod init InteractiveCodeNote
go get Interactive_note

Step 2: Modify Configuration

Edit the config.yaml file to configure the server settings.

Step 3: Parse Configuration

Run the parse_config.sh script to read the configuration variables.

chmod +x parse_config.sh
./parse_config.sh

Step 4: Run with Docker

cd ..
docker-compose down
docker-compose build
docker-compose up -d

Then your can see your Interactive code block on http(s)//:your domain:port
If u want to insert blocks on pages like the demo. Follow step below:

Step 5: Insert on Markdown

You can embed this block anywhere

Typora, Obsidian, Notion, Web ...

Change path/to/your/index.html. yourcodeid is the name of your code block.

<iframe id="go-editor-1" src="path/to/your/index.html?noteId=yourcodeid" style="width:100%; height:500px;
border:none;" frameborder="0"></iframe>