typora / typora-issues

Bugs, suggestions or free discussions about the minimal markdown editor — Typora
https://typora.io
1.53k stars 58 forks source link

Extending Typora functionality with plugins #162

Open anandgraves opened 8 years ago

anandgraves commented 8 years ago

Letting the community develop plugins to create a variety of functionality.

leewi9 commented 8 years ago

+1 good idea

like sublime txt , atom etc

2016年5月18日 +0800 16:51 Anand Gravesnotifications@github.com,写道:

Letting the community develop plugins to create a variety of functionality.

— You are receiving this because you are subscribed to this thread. Reply to this email directly orview it on GitHub(https://github.com/typora/typora-issues/issues/162)

vassudanagunta commented 8 years ago

like sublime txt , atom etc

Those are editing platforms for writing code, IDEs. Typora, I believe, is more like iA Writer, Byword, Plain Text, or Marked. But better as it doesn't have separate writing and preview modes!

If anything, it should be the other way around: It would be nice if Typora could be used as a plugin within editing platforms, e.g. allowing one to edit Markdown files WYSIWYG fashion within Atom. My dream would be Typora integrated into Editorial.

My other dream would be Typora available as a Javascript library so that websites could support WYSIWYG markdown editing. I want to build a collaborative writing website for non-technical people. Asking them to know markdown syntax isn't desirable. @abnerlee, I believe you once said that was possible given how you designed/implemented Typora. True?

anandgraves commented 8 years ago

I would +1 that also as another enhancement. But for people who would mainly use Typora, extending it with plugins would be preferable.

leewi9 commented 8 years ago

Plugins are nice but also need spend time on things like maintaining APIs and docs, maybe future.

2016年5月18日 +0800 18:33 Vas Sudanaguntanotifications@github.com,写道:

like sublime txt , atom etc

Those are editing platforms for writing code, IDEs. Typora, I believe, is more like iA Writer, Byword, Plain Text, or Marked. But better as it doesn't have separate writing and preview modes!

If anything, it should be the other way around: It would be nice if Typora could be used as a plugin within editing platforms, e.g. allowing one to edit Markdown files WYSIWYG fashion within Atom.

— You are receiving this because you commented. Reply to this email directly orview it on GitHub(https://github.com/typora/typora-issues/issues/162#issuecomment-219988137)

vassudanagunta commented 8 years ago

But for people who would mainly use Typora, extending it with plugins would be preferable.

@anandgraves , can you give an example of a plugin for Typora that would be in keeping with it's stated mission, "A Truly Minimal Markdown Editor"? To "read and write" (as opposed to code), "Distractions Free" and WYSIWYG.

The only kind I can think of are ones that allow it to save/publish directly to a website (e.g. GitHub). Perhaps I am not imaginative enough.

leewi9 commented 8 years ago

I think we can close this now.

2016年5月18日 +0800 19:11 Vas Sudanaguntanotifications@github.com,写道:

But for people who would mainly use Typora, extending it with plugins would be preferable.

@anandgraves(https://github.com/anandgraves), can you give an example of a plugin for Typora that would be in keeping withit's stated missions(http://www.typora.io)? "A Truly Minimal Markdown Editor", to "read and write" (as opposed to code), "Distractions Free" and WYSIWYG.

The only kind I can think of are ones that allow it to save/publish directly to a website (e.g. GitHub). Perhaps I am not imaginative enough.

— You are receiving this because you commented. Reply to this email directly orview it on GitHub(https://github.com/typora/typora-issues/issues/162#issuecomment-219995606)

AlexPasternak commented 8 years ago

Plugins extend functionality only incrementally, but introduce a lot of maintenance and issues due to interactions. I would rather the team concentrate on core functionality for now, and leave the minimaps to Atom (which frequently records exceptions from misbehaving plugins).

waahto commented 8 years ago

This is a great idea! I do not understand why people are against it — don't install plugins if you don't want to. Obviously there's currently more pressing issues to fix, but in the long run, why not. (Related to #16)

Hint: One can already do all kinds of useful gimmicks by inserting javascript into Typora's html-file.

vassudanagunta commented 8 years ago

@waahto I guess different people want different things. I hope Abner stays true to his stated goal for Typora ("A Truly Minimal Markdown Editor") and sticks with the KISS principle.

errordeveloper commented 7 years ago

The only kind I can think of are ones that allow it to save/publish directly to a website (e.g. GitHub). Perhaps I am not imaginative enough.

@vassudanagunta that'd be it for me, e.g. share a draft for review (to me gist.github.com would be a convenient way, but anything else would do just as well).

Actually, I've figured that it's time to get desktop pastebin app, and I found SourceDrop.

mbarkhau commented 6 years ago

@anandgraves , can you give an example of a plugin for Typora that would be in keeping with it's stated mission, "A Truly Minimal Markdown Editor"? To "read and write" (as opposed to code), "Distractions Free" and WYSIWYG.

An editor that doesn't support VI keybindings is basically unusable for me. I originally learned them for editing a book and it's so much more efficient. I find going against my muscle memory very distracting.

42sol-eu commented 6 years ago

that would be really great

tektrip-biggles commented 6 years ago

An example of one small plugin I'd love to write is the following:

I create a new notes file each day, where I record thoughts & todo items, everything I'm keeping on top of. I'd love to have a simple plugin which, along side the file tree displays in brackets the number of unchecked boxes in each file, like so:

Notes (Daily)
 * 2018-02-05.md 
 * 2018-02-06.md **(1)**
 * 2018-02-07.md 
 * 2018-02-08.md **(5)**

It's not a big enough feature that it would make sense to roll in to the product itself, as it may not be useful to everyone, but the ability to have custom sidebars to extend the "Outline", "Articles" and "File Tree" would be really cool. I'm sure there are plenty of other uses as well.

HermitStudio commented 6 years ago

Hi,

I'm not sure if this is the right place but I wanted to ask: is there any way (or will there be) to integrate Typora into either your own app or managing versioning through GitHub? I'm involved in developing a course based application and the content is based on markdown in a git repo. However, some users are not as tech savvy and it would be useful to have a way for them to use a WYSIWYG editor so they can avoid learning the markdown syntax. Is/Will there be any way to do that with Typora? A few of us are using Typoria for creating the content locally, but it would be nice if we could hook it up somehow so it is a seamless/integrated process.

Thanks!

Corrie

yookoala commented 6 years ago

It'd be nice if developers could extend Typora by extensions. I had an idea that we can use Typora for website content editing, and even publishing, for static site generators. It would be ridiculous to have every site generator syntax included to the application core. Also, the publishing means might be varied.

It is ideal if developer can develop different "syntax extension" and "publishing options" to Typora according to their needs.

Eskander88 commented 6 years ago

maybe it would be better to integrate Typora into Atom instead of markdown-preview plugin?! What do you think?

Piping commented 6 years ago

Typora is only free for beta. I dont understand why people asking to intergate Typora into Atom etc..

But If we had plugin support, that would very useful although I know it is a lot of work! I really want to have a vim editing bindings..

Eskander88 commented 6 years ago

@Piping, it is simple. Because, Atom have more functional for editing text. Atom have project tree. Atom have multy tab and pane system. And other, other, other... Text editor must have some function, which there is gold standard. I don't like some moments in Atom. And, I know, there is extra functionality. I will be happy see some function in Typora without Atom. But made plugin and upgrade code is very diffucult, this will take some time

Piping commented 6 years ago

@Eskander88 Rich Text Editing is really not an easy thing to do. It is all about proper display in GUI. That's why you would not see such a thing a plain text editor like Atom. Typora is a minimalist, simple text editor in front, but behind the scene is tons of work, same as MS Word.

Eskander88 commented 6 years ago

IMHO. Typora have advantage in that combine editable html(MD) with customizable source. Momental rendering. And all that is ready and elastic for creation. It`s give and open wide opportunity for production of all kinds of documentation. But I say: html(MD) with customizable source. HTML is output (result). Source is plain text. Text is that require special function for editing, which the usual form contains in editors is bound tp coding.

YorikHansen commented 5 years ago

I would like a plugin, which could sort tables. So you can sort them befor publishing your file, and if you add something new, you don't have to think, where to put it.

GiovanH commented 5 years ago

Typora's nonstandard features (mermaid charts, etc) should be exposed directly to the user. Users should be able to write or import their own plugins and renderers that are too specific to their needs to justify inclusion in the global product.

User plugins should operate under the same principles as Typora's other renderers, and need not add additional functionality. However, they should be able to implement the same HTML rendering techniques.

Use cases for exposing features:

Use cases for extensibility:

This is currently Typora's largest fatal flaw. Combined with the fact that Typora is closed source, having Typora-specific markdown syntax with no plugin framework is a death sentence, which is tragic for a program as well-made and useful as Typora.

uetchy commented 5 years ago

I'd like to have Link Preview like Notion does but it is too niche for entire Typora users, so I have to keep it as a plugin. It would be so nice if we have a chance to extend Typora to match personal use cases.

uetchy commented 5 years ago

It should be something like a middleware between markdown AST and HTML renderer. And then we can extend editor and syntax by modifying AST or resulting state.

ralismark commented 5 years ago

To expand on uetchy's suggestion: the plugin api could resemble something like pandoc's filter API, where plugins are passed the AST. Since you're able to have basically arbitrary HTML in the markdown code (and thus the AST), you'd be able to render diagrams quite easily -- pass the contents of the code block to the generator and replace it with an image in the AST. If you have the AST as a JavaScript DOM tree processing would be easy, both for the plugin system/Typora as well as plugins.

One possible concern with this is the frequency of updates, especially if the plugin is passed the entire AST every time. One way to fix this is to only supply a part of the document when rerendering sections. You might be able to pretend that this section is the entire document (possibly along with the preamble) to simplify the API.

uetchy commented 5 years ago

I think babel did an excellent job on their plugin system; babel's plugins only watch a small portion of AST which they concern. For instance, babel-plugin-transform-remove-console adds an event listener on CallExpression that is invoked only if AST walker reaches CallExpression including console.log. That means babel-plugin-transform-remove-console would never be called if there are no CallExpression in AST. pub/sub mechanism is a promising way to reduce the cost of plugin invocations and to maximize its performance.

vagra commented 4 years ago

Yes! I need this plugin too.

I'll make some changes for markdown:

1: H1

2: H2

3: H3

...

100: H100

html only support H1-h6, but I need more Headers, like H7, H11,,,, H100, I'll using it for text outline.

bloff commented 4 years ago

I would love to use typora for all my scientific work, but that requires the ability to import and render bibliographic references, using bibtex. I'm using a homebrewed wysiwym editor for this purpose, but would gladly switch to typora if I could have this, and I would gladly write the plugin to do it, if there was a way to extend typora.

Plugins are cool :-)

42sol-eu commented 4 years ago

A bit off topic but read through

I switched from markdown to Asciidoctor It supports plugins, macros and variables. Never looked back.

rezanid commented 3 years ago

like sublime txt , atom etc

Those are editing platforms for writing code, IDEs. Typora, I believe, is more like iA Writer, Byword, Plain Text, or Marked. But better as it doesn't have separate writing and preview modes!

If anything, it should be the other way around: It would be nice if Typora could be used as a plugin within editing platforms, e.g. allowing one to edit Markdown files WYSIWYG fashion within Atom. My dream would be Typora integrated into Editorial.

My other dream would be Typora available as a Javascript library so that websites could support WYSIWYG markdown editing. I want to build a collaborative writing website for non-technical people. Asking them to know markdown syntax isn't desirable. @abnerlee, I believe you once said that was possible given how you designed/implemented Typora. True?

@vassudanagunta Your idea is good too, but I don't see why it might be conflicting with the ability to have plugins. For people who are more purist or want to stick to the original factory setting, there would be no issue, just don't install any plugins. I suggest you open a new Issue and advertise for it ;)

rezanid commented 3 years ago

@vassudanagunta, an example of plugins would be custom media formats. In issue #4157 I have made a suggestion, although this would be a lot simpler than implementing a full-blown plugin system, and it doesn't conflict with the minimalistic approach of Typora.

TomasHubelbauer commented 3 years ago

Hi, I would like to add another motivating case for why plugins should be supported IMO. We already have [toc] which renders a live table of contents. I would like to add a [todo] plugin, which would extract all the checkboxes in the document and display them in a single list. To those who are against plugins because they do not think MarkDown should have any interactivity or other parts that change without the user changing them: the ToC already is that. Sure, right now it is not a plugin but an informal part of MarkDown itself, but the premise stays. I think there is room for other niceties like this which do not make Typora an IDE/an app platform, but extend its MarkDown editing enough to make it much easier to keep stuff in sync etc.

GiovanH commented 3 years ago

There is no need to make any more cases for plugins. The case has been thoroughly, thoroughly proven. They just aren't adding it.

BarkenBark commented 1 year ago

A simple plugin class for custom renderers would be immensely useful, e.g. to render PlantUML.

NorHei commented 1 year ago

It's a pity, i was planing on introducing Typora company-wide for documentation, but the concept of being completely closed and having no chance to extend anything finally was a showstopper. We now turned on using a local Bookstack Installation for company-wide documentation.

Btw. Typora is already far from being a minimalistic editor, but never mind...

ShaoLongFei commented 1 year ago

I need it so much!

GiovanH commented 1 year ago

They've made it clear they're not going to do it. Ditch Typora.

MrNineMan commented 1 year ago

What (open source) alternatives are there to Typora?

ShaoLongFei commented 1 year ago

@MrNineMan https://github.com/marktext/marktext/tree/develop This is very good.

rezanid commented 1 year ago

@MrNineMan

https://github.com/marktext/marktext/tree/develop

This is very good.

But that one is an unfinished editor. There are many people who want to contribute and PRs are not reviewed for a year now and there are almost a thousand issues reported and no reply. Typora is still your best bet thought this one is not adding any new features.

johnholliday commented 1 year ago

I'm also very disappointed at the lack of support for plugins. A good example of why this is important is the inability to display PlantUml mindmaps.

jdjshhc commented 11 months ago

原来插件的话题已经这么久了,作为markdown编辑器确实不错,要是在这基础上拓展功能那就太好了,希望可以往笔记本方向走

obgnail commented 6 months ago

I would like to recommend my project typora_plugin , which adds 50+ new features to Typora and enhances the user experience. Check it out and give it a try!

rezanid commented 6 months ago

I would like to recommend my project typora_plugin , which adds 50+ new features to Typora and enhances the user experience. Check it out and give it a try!

Looks great, but is there an English version available too?

hannahbellelee commented 4 months ago

So just an FYI. you can use dev tools with typora. And on the sources tab devtools allows you to override certain functionality with local javascript and other libs...

rezanid commented 4 months ago

So just an FYI. you can use dev tools with typora. And on the sources tab devtools allows you to override certain functionality with local javascript and other libs...

Haven't thought of it! At least we have a brittle workaround until devs come up with something.

hannahbellelee commented 4 months ago

So just an FYI. you can use dev tools with typora. And on the sources tab devtools allows you to override certain functionality with local javascript and other libs...

Haven't thought of it! At least we have a brittle workaround until devs come up with something.

I am not quite sure how it would work but along with the devtools, I know Edge and Chrome both have tutorials on devtool extensions, so there may be a way to write the plugins for typora indirectly using the browser devtools as the "host container". let me know if you get anything working @rezanid...