{"id":13631241,"url":"https://github.com/inns/mak","last_synced_at":"2025-04-17T21:32:37.363Z","repository":{"id":108698372,"uuid":"103228546","full_name":"inns/mak","owner":"inns","description":"A universal notepad. (WIP)","archived":false,"fork":false,"pushed_at":"2019-11-08T16:51:25.000Z","size":102,"stargazers_count":358,"open_issues_count":12,"forks_count":6,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-08T23:33:58.480Z","etag":null,"topics":["editor","gist","latex","markdown","plaintext"],"latest_commit_sha":null,"homepage":"https://inns.studio/mak","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inns.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-09-12T06:00:04.000Z","updated_at":"2024-11-06T11:59:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"d6f65e0d-37c2-4af0-955c-631c112b56ca","html_url":"https://github.com/inns/mak","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inns%2Fmak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inns%2Fmak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inns%2Fmak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inns%2Fmak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inns","download_url":"https://codeload.github.com/inns/mak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249381006,"owners_count":21261227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["editor","gist","latex","markdown","plaintext"],"created_at":"2024-08-01T22:02:17.078Z","updated_at":"2025-04-17T21:32:37.121Z","avatar_url":"https://github.com/inns.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src='mak.png' width=128 height=128 align='center'/\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\u003cb\u003eMak: a universal notepad\u003c/b\u003e\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://mak.ink\"\u003emak.ink\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"#desktop-app\"\u003eDesktop App\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://inns.studio/mak\"\u003eDocumentation\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://twitter.com/shuding_\"\u003e@shuding_\u003c/a\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://twitter.com/intent/tweet?text=@theinnsinn+A+piece+of+paper:\u0026url=https%3A%2F%2Finns.studio%2Fmak\"\u003e\n    \u003cimg src=\"https://badgen.net/badge/Share/tweet?icon=twitter\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://mak.ink\"\u003e\n    \u003cimg src='https://badgen.net/uptime-robot/day/m780777417-1f8362b19452b5fe087b4c7f'/\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cimg src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" width=880 /\u003e\n\n\u003e All you do is sit down at a typewriter and bleed.  \n\u003e — Ernest Hemingway\n\n**Please visit https://inns.studio/mak for more information and live demos.** \n\nJoin [Mak User Group](https://t.me/mak_ink) ([中文用户群](https://t.me/mak_ink_cn)) on Telegram.\n\n## Table of Contents\n- [Features*](#features)\n- [Shortcuts](#shortcuts)\n- [URL / link](#url--link)\n  + [File (#file)](#file-file)\n  + [Mode (#file?mode)](#mode-filemode)\n  + [URL Action (?action)](#url-action-action)\n- [Settings (`set:`)](#settings-set)\n- [More Details](#more-details)\n  + [LaTeX](#latex)\n  + [Gist](#gist)\n  + [Embeding as iframe](#embeding-as-iframe)\n  + [Drag and drop](#drag-and-drop)\n  + [Desktop App](#desktop-app)\n  + [Mobile](#mobile)\n  + [iOS App](#ios-app)\n  + [Open Source](#open-source)\n- [Examples](#examples)\n- [Raw Thoughts](#raw-thoughts)\n- [Share Mak](#share-mak)\n- [License \u0026 Acknowledgement](#license--acknowledgement)\n\n\n## Features\u003csup\u003e*\u003c/sup\u003e\n- a “maximally minimal” design\n- blazing fast\n- multiple files support\n- auto-saving\n- works in offline\n- side by side preview\n- syntax highlighting\n- powerful text editor\n- LaTeX support\n- task lists\n- notepad links\n- quick commands\n- customization\n- line number\n- word counter\n- URL configuration\n- interactive plain text\n- sync via Gists\n- zoom friendly\n- printer friendly\n- PDF generating\n- exporting\n- ...\n\n\u003csmall\u003e\u003csup\u003e*\u003c/sup\u003eSome features such as offline and sync may behave differently in different browsers.\u003c/small\u003e\n\n\n## Shortcuts\n\u003e Click (or click with middle mouse button) on Markdown links to open (open in new tab).  \n\u003e Click on Markdown checkboxes to toggle a task.  \n\u003e Use \u003ckbd\u003e⌘ + [\u003c/kbd\u003e / \u003ckbd\u003e⌘ + ]\u003c/kbd\u003e to outdent / indent text.  \n\u003e Use \u003ckbd\u003e⌥/Alt + Click\u003c/kbd\u003e to position the cursor, even on links.  \n\u003e Use \u003ckbd\u003e⌘/Ctrl + Click\u003c/kbd\u003e to create multiple cursors.  \n\u003e Use \u003ckbd\u003e⌥/Alt + Drag\u003c/kbd\u003e to select a rectangle area.  \n\u003e Use \u003ckbd\u003e⌘/Ctrl + Drag\u003c/kbd\u003e to select multiple areas.  \n\u003e Use the middle button on mouse to open links in new tab.  \n\u003e Use \u003ckbd\u003e⌘/Ctrl + Enter\u003c/kbd\u003e over a link to “click” it.\n\u003e Type `set:` to open quick commands.  \n\u003e Type `go:` to open quick jump.  \n\n\n## URL / link\n### File (#file)\n\u003e Files start with a hashtag `#` in the URL / link.  \n\u003e Files can be accessed via in-document links: `[my todos](#todo)`.  \n\u003e Files can be accessed via quick jump: `go:todo` and hit \u003ckbd\u003eenter\u003c/kbd\u003e.  \n\n+ Default file\n  - [mak.ink#](https://mak.ink#): the default file\n  - [mak.ink](https://mak.ink): without the hashtag\n+ Built-in notepads (**readonly**)\n  - [mak.ink#list](https://mak.ink#list): a place to find all your files\n  - [mak.ink#preferences](https://mak.ink#preferences): preferences\n  - [mak.ink#sample](https://mak.ink#sample): the sample document\n  - [mak.ink#profile](https://mak.ink#profile): user profile\n+ Create a file\n  - [mak.ink#whatever_you_want](https://mak.ink#whatever_you_want)\n\n\n### Mode (#file?mode)\n\u003e A mode is a pre-defined way to view files, so modes must be attached to a file.  \n\u003e Modes start with a question mark `?` in the URL / link.  \n\u003e Multiple modes are separated by `\u0026`s: `mak.ink?dark\u0026large`.  \n\u003e **Modes are defined by the URL, and will override your settings.**  \n\u003e For new opened files, modes attached to current file will be gone.  \n\u003e If you want to use a mode as default option, use settings below.  \n\n+ View modes\n  - [mak.ink#sample?edit](https://mak.ink#sample?edit): open sample in editor mode\n  - [mak.ink#sample?read](https://mak.ink#sample?read): open sample in reading mode\n  - [mak.ink?split](https://mak.ink?split): use split mode in the default notepad\n+ Themes\n  - [mak.ink?dark](https://mak.ink?dark): dark mode\n  - [mak.ink?light](https://mak.ink?light): light mode (default)\n+ Other settings\n  - [mak.ink?large](https://mak.ink?large): larger text\n  - [mak.ink?num](https://mak.ink?num): show line number\n+ Combine\n  - [mak.ink?dark\u0026large](https://mak.ink?dark\u0026large)\n\n\n### URL Action (?action)\n\u003e Actions are special modes.  \n\u003e Actions start with a question mark `?` in the URL / link,\n  and use `=` to pass parameters.  \n\u003e Actions will be removed from URL automatically.  \n\u003e **Actions might do changes to your content.**  \n\n+ Built-in actions\n  - [mak.ink?gist=5d52fb081b3570c81e3a](https://mak.ink?gist=5d52fb081b3570c81e3a): load a Gist and create a file (#5d52fb081b3570c81e3a)\n+ Combine modes\n  - [mak.ink?gist=5d52fb081b3570c81e3a\u0026read](https://mak.ink?gist=5d52fb081b3570c81e3a\u0026read): load a Gist in reading mode\n\n\n## Settings (`set:\u003coption\u003e`)\n\u003e You can type `set:\u003coption\u003e` and hit \u003ckbd\u003eenter\u003c/kbd\u003e in the editor to change settings.  \n\u003e You can create a \"set\" link and click on it: `[dark](set:dark)`.  \n\u003e Settings change preferences globally and persistently.  \n\u003e **Settings can be override (locally) by current modes.**  \n\n+ View mode settings\n  - `set:split`\n  - `set:edit`\n  - `set:read`\n+ Display settings\n  - `set:dark`\n  - `set:large`\n+ Other\n  - `set:print`: print / download PDF\n  - `set:export`: export data\n+ Other settings\n  - Check out the **[Preferences Page](https://mak.ink#preferences)**.\n  - You can also use the _developer console_ to change settings :)\n\n\n## More Details\n\n### LaTeX\nLaTeX rendering is powered by [KaTeX](https://khan.github.io/KaTeX/).\n\nYou need to wrap the $ inside an inlined code block to render LaTeX inlined equations, or use $$ inside a multi-line code block to get an equation block:  \n\n  `$\\frac{\\pi}{2}$`\n\nor\n\n  ```\n  $$\n  \\frac{\\pi}{2}\n  $$\n  ```\n\n\n### Gist\nUse `?gist=\u003cgist_id\u003e` to load a GitHub Gist. It will be stored to `#\u003cgist_id\u003e` automatically (and replace the original context, if it exists), and mark this file as a Gist.  \n\nOther commands: `set:login`, `set:logout`, `set:pull`, `set:push`.\n\n\n### Embeding as iframe\nUse **Gist** and read mode:\n\n```html\n\u003ciframe width=\"300\" height=\"200\" src=\"https://mak.ink?gist=5d52fb081b3570c81e3a\u0026read\" frameborder=\"0\"\u003e\u003c/iframe\u003e\n```\n\nYou can easily embed Mak in other websites.\n\n\n### Drag and drop\nYou can drag your file into the editor, and its content will be **inserted** after your cursor automatically.  \n\nCurrently all files will be read as **plain text** files. And the file size limit is **10MB**.\n\n\n### Desktop App\nCheckout [Mak\u003csup\u003emini\u003c/sup\u003e](https://github.com/inns/mak-mini) for macOS and Windows.\n\n\n### Mobile\n*Currently unavailable.*\n\nFor now, all basic features are available in mobile browsers. But there’re yet some known limitations:\n- In Safari (macOS or iOS), `localStorage` is disabled in _private browsing mode_.\n- In Safari on iOS, the screenshot functionality built on SVG `foreignObject` is not working dut to the iOS security model. So it’s replaced by another, simpler screenshot strategy.\n- Service Worker is not fully supported on iOS. The offline feature is not working.\n\nTechnique details: due to the slow progress of the [IME](https://caniuse.com/#feat=ime) API implementation on `contenteditable` elements, we are using the native `textarea` as the input handler on mobile devices to make IME work. But textareas cannot do any _styling_ or _customization_. So some implementations in CodeMirror (and any other in-browser editors) might be hacky which caused strange behaviours on mobile devices (such as cursor moving and copy-paste experience). The (only) solution is: make a native App.\n\n\n### iOS App\n*Currently unavailable.*\n\nWIP. You can add the Web version to your Home screen as a bookmark.\n\n\n### Open Source\nWill do after some code cleanup \u0026 refactoring.\n\n\n## Raw Thoughts\n[@chenglou](https://twitter.com/_chenglou) said this in ReactEurope:\n\u003e Not about potential power of doing more - it’s about exploiting properties you gain by doing less.\n\nAnd as I always believe: Text powers editors. Not the opposite.\n\n\n## Share Mak\n[![](https://badgen.net/badge//twitter?icon=twitter)](https://twitter.com/intent/tweet?text=@theinnsinn+A+piece+of+paper:\u0026url=https%3A%2F%2Finns.studio%2Fmak)\n\n\n## License \u0026 Acknowledgement\nInspired and powered by [CodeMirror](http://codemirror.net/), [RxJS](https://github.com/Reactive-Extensions/RxJS) and other awesome open source projects.\n\n\nBy Shu (g@shud.in), SH 2017  \nhttps://shud.in\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finns%2Fmak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finns%2Fmak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finns%2Fmak/lists"}