markdown is original defined by John Gruber, and soon become widely used. (More detail on markdown-wiki).
markdown-github add some awesome rules to enhance the original definitions.
When i'm using markdown, i feel it lacks some features i want. (Maybe you also have same feelings).
But you know, it is widely used and you can not create another tool and make it as a standard.(Needless to say i don't know how to)
That's why i put it here, to collect ideas to enhance markdown standard. And it is free to add more from others who would like to join.
And i think it is also good to those who are developing markdown engines.
Here are the ideas (from me for now):
- markdown options
- markdown chart
For more details and explanations, see below.
Markdown options is a way to extend markdown by external markdown engine. Let's make an example to clarify my idea.
For example, sometimes i want the markdown engine could output index version of the html for long article; but sometimes, i dont want it. So there should be an option to indicate it. My idea is using something like reference link grammar, but begin with @
.
For example:
@index: true
That means i wish the external tool could create an index version pdf/html for me. But whether it can do or can not is only based on the external tool. For those don't support @index
, just ignore it.
And also, it may good for adding colors on elements. For example:
@color-red: red
@color-red: #900
Then you can reference an element as red color.
Some Title@color-red
----
Well, this title may have red color. (whether it is background or font also based on the external engine)
If you really want to write down @
and not a reference, you could escape it just like "\ ` * ..." defined in original markdown grammar.
All charts are defined just like you are writting normal code. For example:
```js
document.write('hi');
```
This is how we write markdown chart. (For now i just want simple uml charts)
```uml-<chart type>
…details based on different chart definitions...
```
Here are the blueprint for the uml charts:
- usecase
- activity
- class
- object
Explanation visit usecase in wikimedia.
The syntax is as following:
```uml-usecase "a simple cms"
admin | user | manage news, manage user
user | guest | read news, sign out
guest | | sign up, sign in
```
should generate:
Grammar:
role | parent role | actions...
Enhanced ideas:
- add option color, for example, if i want user role have an red color, i could do
user@color-red | login@color-red | read news ...
- the chart could be in data url format, something like
data:image/gif;base64,...
(can it be used in pdf? Not sure)
Explanation visit activity in wikimedia.
To make things simple, there's no decisions in activity chart.
```uml-activity "search user then send message"
search a special user | edit message | send message both in sms and email
search a special user | if not found, make edit message button disabled
```
should generate:
Grammar:
activity | activity | activity...
class definition here is not exactly the same as in class in wikimedia. It only describes generalization.
```uml-class
person | admin,user,guest
```
Grammar:
parent | son,son,son...
object only contains attributes you want to use. (then it can also describe table).
```uml-object
person | id,name,roles
user | id,name,roles,ctime
```
should result:
Grammar:
object | attribute,attribute...
But attribute here can also be written as method. Just change it to method()
or even more add +method()
to indicate it is a static method.
You may want to contact me through yarco.wang@gmail.com according to the ideas. Programming related topics are also welcomed.
timezone: GMT+0800