HyperMD
HyperMD copied to clipboard
Markdown AST, Improve UX and refactor ?
First of all, thank 圆伞科技 for sponsoring HyperMD! I have some plan to make HyperMD much better:
Markdown AST
- [ ] Parse content and get AST (via CodeMirror Mode? or other libs like
marked
?) - [ ] AST APIs for HyperMD users
- [ ] Read
- [ ] ~~Write~~
- [ ] Use AST to improve
hide-token
, shortkeys' performance and user experience, also for #43
Separated Packges
- [ ] Separate PowerPacks into NPM Packages.
- [ ] A toolchain (or project boilerplate), for the separated npm packages.
Style / Theme
- [ ] By default, hide line numbers, or make them less eye-catching
- [ ] Move
[Go back]
button ofaddon/click
to somewhere else.
- [ ] Move
- [ ] Rewrite the theme
.scss
, make it more configurable (eg. dark mode?)- [ ] Add more color schemes.
- [ ] Add themes for wide screens ( eg. #28 )
- [ ] Find a better way to deal with external resources. (web fonts and icon images)
- [ ] Remove all
require("xxx.css")
from source, so that we can make HyperMD less opinioned?
Marketing
- [ ] Better doc and README
- [ ] SEO? some articles? no idea yet.
UX Improving
-
hide-token shall
- [ ] NOT hide tokens that are inside a selection.
- [ ] NOT hide link address while editing an image/link.
However, for now, I'm too busy to maintain HyperMD. The plan also need further discussion. Feel free to leave comments. I think this can start in late October.
CodeMirror 6 is coming with lots of changes. The new DOM structure of editor is clean and good, but it will be fully incompatible with HyperMD (v0.3.x)
感觉目前的styling不是特别configurable 希望将来可以有一个更好的构架. Either way, 非常感谢制作跟维护这个项目!
To make both HyperMD and related npm packages (basically, powerpacks) friendly to plain browser env, a build-tool is extracted from HyperMD project.
And, the first separated package hypermd-katex
is now online!
- GitHub: https://github.com/HyperMD/hypermd-katex
- Homepage: https://hypermd.github.io/hypermd-katex/
- NPM: https://www.npmjs.com/package/hypermd-katex
I'm going to remove all powerpacks from current HyperMD project, then provide them as npm packages. hypermd-katex
already shows the promising possibility.
Maybe not ~~powerpack~~. Let's call them addon?
https://github.com/search?q=topic%3Ahypermd-addon&type=Repositories
hypermd-mathjax is now online! Also don't miss the wiki page
How about plugins? This is the term used by tools like Draft.js and Eslint. Either way, I think it's a great idea and the name shouldn't have too much effect.
Working on the theme and style
See https://github.com/laobubu/HyperMD/tree/refractor-separate-core/theme
- Writing an instruction for theme designers: https://github.com/laobubu/HyperMD/blob/refractor-separate-core/docs/theme-n-style.md
- Try making a dark theme... (unfinished)
- A "playground" page designed to test themes and addons.
Has this made any progress? I love this project, but theming it is a nightmare currently (Unless you have some tips, the 800+ lines of css is quite demotivating)
@CoreParadox
Has this made any progress? I love this project, but theming it is a nightmare currently (Unless you have some tips, the 800+ lines of css is quite demotivating)
Check this out: dark theme and light theme. Maybe this is the best trade-off between readable code and HyperMD's mess.
HyperMD uses lots of tricky methods to make CodeMirror WYSIWYG, which make is almost impossible to write clean css for themes.
Maybe getting rid of CodeMirror is the only solution. Meanwhile, a brand new CodeMirror is coming, and it will make almost all HyperMD tricks broken. That makes me feel demotivating.
Are you thinking of making an API for adding things like inline audio
/video
.
and other things such as iframe embeds etc.
And what about allowing native HTML like <br/>
inside normal markdown that are just rendered as HTML?