Ficus

README: [中文](./README-zh.md) | [English](./README.md) $\tt{Ficus}$ is a software for editing and managing `markdown` documents, developed by the $\tt{gg=G}$ team. $\tt{Ficus}$ is named after the fig tree, which has the characteristics of "umbrella-like canopy, and one tree forming a forest". This is also the core service that this software wants to provide to users: to allow users' md documents to be browsed and edited like a fig tree, and to allow users' multiple md documents to be associated in various forms like a fig forest. We hope that users' experience is like the slogan of this software:

$\tt{Ficus}$ is developed based on the `Vue3, Electron` framework and provides installation packages for Windows, macOS, and Linux systems. Detailed information can be obtained on the [ficus website](https://ficus.world/). ## Preview **Rich Text Mode**

**Source Code Mode**

**Ficus Tree Mode**

**Ficus Forest Mode**

**Ficus Graph Mode**

## Build You can download the packaged application directly from the [download link](https://ficus.world/pages/53ff34/). If you want to build it yourself, it is recommended to use the node v16.19.1 version and install the yarn package manager. Run the following commands in the shell: ```shell git clone git@github.com:Thysrael/Ficus.git cd ./Ficus/ yarn install yarn electron:build ``` The resulting build can be found in `Ficus/dist_electron/linux_unpacked` or `Ficus/dist_electron/win_unpacked`. Please note that the installation path cannot contain **Chinese**, and for Windows users, only the `Only for me` option is supported in the installation program:

## Run It is recommended to use the node v16.19.1 version and install the yarn package manager. Run the following commands in the shell: ```shell git clone git@github.com:Thysrael/Ficus.git cd ./Ficus/ yarn install yarn electron:serve ``` ## Architecture The project architecture is as shown in the figure.

The project directory structure is as follows: ``` ├── build: Resources required for building ├── public: Art style resources │ └── css │ └── content-theme ├── src: Project source code │ ├── common: Public resources │ ├── IR: FicIR │ │ ├── block: IR basic data structure │ │ │ ├── base │ │ │ │ ├── content: Node information │ │ │ │ ├── linkedList │ │ │ │ └── type: Type │ │ │ └── factory: Factory method │ │ ├── component: IR top-level data structure │ │ ├── history: History record │ │ ├── manager: Data manager, the only external interface │ │ └── utils: External tools │ │ └── marked: Markdown lexical analyzer │ ├── main: Electron backend │ │ ├── filesystem: File operation method │ │ ├── helper: Utility method │ │ └── update: Packaging method │ └── renderer: Vue frontend │ ├── assets: Front-end static resources │ ├── components: Vue components │ │ ├── header: Top bar │ │ ├── mindEditor: Ficus mode editor │ │ │ └── assets │ │ ├── richTextEditor: Rich text editor │ │ ├── sideBar: Sidebar │ │ └── textArea: Text editor │ ├── store: Storage │ └── utils │ └── keyboardbinding: Shortcut key binding └── test: Unit test ├── IR: IR test │ ├── data │ ├── factory │ └── manager └── main: Main process method test ├── data └── filesystem ``` We have also rewritten the software package repositories as follows: - [ficus-editor](https://github.com/Hyggge/ficus-editor) - [lute-for-ficus](https://github.com/Dofingert/lute-for-ficus) - [vue3-mindmap](https://github.com/GwokHiujin/vue3-mindmap) ## Changelog ### v0.1.0 **Release Date**: April 26, 2023 **Description**: Alpha version release. **Features Overview**: - WYSIWYG markdown editor - Open files, open folders - Basic framework setup - Hot updates - Supports Ficus functionality, only supports Ficus diagram display, does not support Ficus diagram editing, and does not support Ficus forest functionality - Please do not use Ficus to open important files at will, as this version poses a certain risk of clearing user files ### v0.1.3 **Release Date**: May 7, 2023 **Description**: Improved version of the alpha version. **Features Overview**: - New Ficus functionality plugin - Mathematical formula completion - Bug fixes based on user feedback ### v0.1.8 **Release Date**: June 5, 2023 **Description**: Pre-release of the beta version. **Features Overview**: - Ficus functionality fully developed - Editing floating window - Search and replace - Preference settings - Shortcut keys - Image copy and paste - After further polishing, startup interface design, and user experience improvement, the final version of beta will be released. ### v0.1.9 **Release Date**: June 8, 2023 **Description**: Pre-release 2 of the beta version. **Features Overview**: - Bug fixes based on user feedback ### v0.2.0 **Release Date**: June 13, 2023 **Description**: Beta version release. **Features Overview**: - Bug fixes based on user feedback ## Contribution If you are interested in our project, please feel free to join us! You can [submit an issue](https://github.com/Thysrael/Ficus/issues/new) or submit a pull request. For specific contributions or ways to support us, please refer to [here](https://ficus.world/pages/87ba98/). ## Team

gg=G is a software engineering team consisting of seven members from the BeiHang University, School of Computer Science and Engineering, Class of 2020. This is our [team blog](https://blog.csdn.net/gg_equal_G). ## License [MIT](LICENSE) © gg=G