Giter Club home page Giter Club logo

markbind's Introduction

CI npm Netlify Status codecov

A tool for generating static websites from Markdown-like syntax. Optimized for content-heavy instructional websites, e.g. course websites, tutorials, project/product documentation, textbooks.

Quickstart

Get started in 5 minutes: https://markbind.org/userGuide/gettingStarted.html

Documentation

The MarkBind website for the current MarkBind release is at https://markbind.org/.

The website for the latest master branch (not yet released to the public) is at https://markbind-master.netlify.app.

Want to help?

If you're interested in contributing to MarkBind, we'd love to have you onboard! Check out our Developer Guide for ideas on contributing and the setup steps for getting our repositories up and running on your local machine.

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Tan Wang Leng
Tan Wang Leng

πŸ’»
Ang Ze Yu
Ang Ze Yu

πŸ’» πŸ“†
Jason Jiang
Jason Jiang

πŸ’»
Chng Zhi Xuan
Chng Zhi Xuan

πŸ’»
Aaron Chong
Aaron Chong

πŸ’»
Jamos Tay
Jamos Tay

πŸ’»
Nicholas Chua
Nicholas Chua

πŸ’»
Tan Zhen Yong
Tan Zhen Yong

πŸ’»
Rachael Sim
Rachael Sim

πŸ’»
Ong Wei Xiang
Ong Wei Xiang

πŸ’»
Daniel Berzin Chua
Daniel Berzin Chua

πŸ’»
Daryl Tan
Daryl Tan

πŸ’»
Damith C. Rajapakse
Damith C. Rajapakse

πŸ’» πŸ§‘β€πŸ«
Jonah Tan
Jonah Tan

πŸ’» πŸ‘€
nusjzx
nusjzx

πŸ’»
Alfred Yip
Alfred Yip

πŸ’»
Ryo Armanda
Ryo Armanda

πŸ’» πŸ‘€
Tan Yuanhong
Tan Yuanhong

πŸ’»
Si Jie
Si Jie

πŸ’»
Yash Chowdhary
Yash Chowdhary

πŸ’»
Kenneth Lu
Kenneth Lu

πŸ’»
Rayson Koh
Rayson Koh

πŸ’»
Phang Chun Rong
Phang Chun Rong

πŸ’»
nbriannl
nbriannl

πŸ’»
Tejas Bhuwania
Tejas Bhuwania

πŸ’»
Marvin Chin
Marvin Chin

πŸ’»
Aadyaa Maddi
Aadyaa Maddi

πŸ’»
Kendrick Ang
Kendrick Ang

πŸ’»
Daryl Chan
Daryl Chan

πŸ’»
Liu YongLiang
Liu YongLiang

πŸ’» πŸ“– πŸ‘€
Ahmed Bahajjaj
Ahmed Bahajjaj

πŸ’»
Hsu Zhong Jun
Hsu Zhong Jun

πŸ’»
Kimberly
Kimberly

πŸ’»
Joshua Wong
Joshua Wong

πŸ’»
Jeremy Tan Jie Rui
Jeremy Tan Jie Rui

πŸ’»
Anubhav
Anubhav

πŸ’»
Boh Cheng Hin
Boh Cheng Hin

πŸ’»
Hiroki Nishino
Hiroki Nishino

πŸ’»
Junx
Junx

πŸ’» πŸ“–
Li JiaYao
Li JiaYao

πŸ’»
Ambrose Liew
Ambrose Liew

πŸ’»
Praveen
Praveen

πŸ’»
Riyadh H. Alzahrani
Riyadh H. Alzahrani

πŸ’»
Samuel Fang
Samuel Fang

πŸ’»
Thomas Tan
Thomas Tan

πŸ’»
Vighnesh Iyer
Vighnesh Iyer

πŸ’»
dao ngoc hieu
dao ngoc hieu

πŸ’»
Ikko Ashimine
Ikko Ashimine

πŸ“–
Jovyn Tan
Jovyn Tan

πŸ’» πŸ“–
Hannah
Hannah

πŸ’» πŸ“–
NaincyKumariKnoldus
NaincyKumariKnoldus

πŸ“–
Elroy Goh
Elroy Goh

πŸ’»
Elton Goh
Elton Goh

πŸ’»
benluiwj
benluiwj

πŸ’» πŸ“–
weiquu
weiquu

πŸ’» πŸ“–
eeliana
eeliana

πŸ“–
Dominic Lim
Dominic Lim

πŸ’» πŸ“–
peter
peter

πŸ’»
Calvin Tan
Calvin Tan

πŸ“–
david
david

πŸ’» πŸ“–
David
David

πŸ“–
charandeepsinghb
charandeepsinghb

πŸ’» πŸ“–
Jia Yu
Jia Yu

πŸ“–
Lee Hyung Woon / μ΄ν˜•μš΄
Lee Hyung Woon / μ΄ν˜•μš΄

πŸ’»
Chan Yu Cheng
Chan Yu Cheng

πŸ’»
Ivad Yves HABIMANA
Ivad Yves HABIMANA

πŸ“–
Bibhu
Bibhu

πŸ’»
WillCWX
WillCWX

πŸ“– πŸ’»
Sven Tang
Sven Tang

πŸ“– πŸ’»
lesterong
lesterong

πŸ’»
SPWwj
SPWwj

πŸ“– πŸ’»
James
James

πŸ’» πŸ“–
Nisemono
Nisemono

πŸ’»
jingting1412
jingting1412

πŸ’»
Shuyao
Shuyao "Tim" Xu

πŸ’»
Kevin Eyo
Kevin Eyo

πŸ’»
Lee Xiong Jie, Isaac
Lee Xiong Jie, Isaac

πŸ’»
Lam Jiu Fong
Lam Jiu Fong

πŸ’»
Wang Yiwen
Wang Yiwen

πŸ“– πŸ’»
Ashleeey1224
Ashleeey1224

πŸ’»

markbind's People

Contributors

acjh avatar allcontributors[bot] avatar alyip98 avatar ang-zeyu avatar chng-zhi-xuan avatar damithc avatar danielbrzn avatar gisonrg avatar itsyme avatar jamos-tay avatar jonahtanjz avatar jovyntls avatar kaixin-hc avatar le0tan avatar lhw-1 avatar luyangkenneth avatar nicholaschuayunzhi avatar nusjzx avatar openorclose avatar rachx avatar raysonkoh avatar ryoarmanda avatar sijie123 avatar tlylt avatar wxwxwxwx9 avatar xenonym avatar yamgent avatar yash-chowdhary avatar yiwen101 avatar yucheng11122017 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

markbind's Issues

Paragraph tag breaks the panel

Here is the code:

<popover placement="bottom" title="**GoF book**">
  <div slot="content">
    This is a long content...
    <pic src="introduction/book-designpatterns.jpg" width="400px">
  </div>
  :flashlight:
</popover>

<p>

<Panel header="Above description is too abstract? Here is an illustrative example :zero:" 
  expandable type="seamless">
  <include src="../singleton/index.md" />
</Panel>

I'm trying to insert some space above the panel using <p>, but instead it auto-expands the panel.

Stronger support for popovers

This is what I'm trying to achieve. The current popover needs some enhancements before we can achieve this level.

image

On the code side, something like this would be ideal but not sure how close we can get.

These solutions are collectively known as _design patterns_, a term popularized 
by the seminal book *Design Patterns: Elements of Reusable Object-Oriented Software* 
the so-called {{β€œGang of Four”}}(gof-tip) (GoF): Eric Gamma, Richard Helm, 
Ralph Johnson and John Vlissides. 

Somewhere else in the file ...

<popover-content id="gof-tip">
<pic src="introduction/book-designpatterns.jpg" width="400px">
Lorem ipsum dolor sit ...
</popover-content>

OR

<popover-content id="gof-tip" src="gof-tip.md"/>

Support inline text expansion

In some cases inline text expansion can be helpful.

image

Unlike tool tips or popovers, text expanded inline can be included in the printout.

Live preview gets stuck at 'loading'

Sometimes when I save changes in the editor, live preview goes into 'loading' mode (blank web page) and stay there.
No errors are shown in the CLI console.

Support live preview for new entries to sites.json

Adding the following to sites.json required a restart of the server to see the page http://127.0.0.1:8080/site-demo-cs2103/book/common/References.html.

    {
      "src": "book/common/References.md",
      "title": "CS2103/T Textbook - References"
    }

Optimize panel headers for printing

Panel headers like this should be omitted from printing?
image

If expanded, the content should be printed but this heading should be omitted.

Not sure if that is possible though.

Support relative links in included files

If a file root/aaa/bbb/page.md contains a link [details](details.md)
and it was included in root/toc.md
the generated link in toc.html should be aaa/bbb/details.html?

popover initiated by trigger: honor trigger attribute

When a popover is triggered by a <trigger> (example given below), honor the trigger="..." setting. The current one defaults to hover no matter what the setting is.

According to <trigger for="pop:xp-user-stories">XP</trigger>, the biggest difference

<popover id="pop:xp-user-stories" trigger="click">
  <div slot="content">
    <include src="../../common/References.md#xp-user-stories" />
  </div>
</popover>

Tweak tipbox styles

tipbox --> box?

Name color icon
Wrong Red x
Warning Orange !
Tip Green πŸ’‘
Definition blue πŸ”–
Example white

Support reusing tooltips

Repeating tool tip everywhere the term is used is redundant. Inline definition of tooltips breaks the flow of the content.
The ideal is to be able to write something like this and the code to pull the definition from a standard location such as root/definitions.md.

When we want to reduce {{coupling}}, we should ...

Allow showing page parts as independent pages

Updated description:

Justification: It allows to easily 'quote' a part of the page.

Current: One can refer to a specific location of a page e.g., http://abc.com/page.html#location

Problem: This technique can only show where to start reading, not where to stop.

Suggested: Give a way to be able to quote (or highlight) a section of a page e.g., http://abc.com/page.html?show=section-id which will show either the indicated section of the page only or show the full page but highlight the indicated page in some way

This feature can be useful to readers as well as authors.

Eliminate tooltip

Explore if there is a need for both tooltip and popover and if the answer is no, eliminate tooltip.

Allow entering answers for questions

For some simple question types (essay, mcq, check-boxes), allow user to enter their answer before checking the answer. It will allow reader to record their answer temporarily before comparing it with the given answer.

Support an easy syntax for bigger/smaller text size

Currently we use block quote formatting to show text in bigger size. This is an abuse of syntax. Instead, we should tweak the block quote formatting to actually look like quotes as we do have an actual use case for showing quotes in our eContent.

On the other hand, we could support an easy syntax to indicate whether to make text bigger/smaller relative to the default size. e.g. +++ ---

Morph in bullet list cannot have empty lines

This doesn't work

* [Design Patterns](book/se-pattern/) 
  <morph title=":mag:">
  <div>
  A software _design pattern_ is a general reusable solution to a commonly occurring problem within a given context in 
  software design. 
  This chapter covers:
  * An intro to design patterns
  * Some common design patterns
  
  :mag:
  
  </div>
  </morph>

Morph content appearing outside of the morph element

I have this code in a file. When I include it in another place, the content of the morph element appears outside of the element.

* [Design Patterns](book/se-pattern/)
  <morph title=":mag_right:">
    <div>
  
A software _design pattern_ is a general reusable solution to a commonly occurring problem within a given context in 
software design. 

This chapter covers:

* An intro to design patterns
* Some common design patterns

    </div>
  </morph>

image

Tooltip appears at the wrong place

In the example below, the word coupling is the one that has a tooltip

image

Code:

An example problem about the interaction between classes: how to lower the 
  <tooltip content=" coupling is the degree of interdependence between software modules; a measure of how closely 
  connected two routines or modules are; the strength of the relationships between modules.">coupling</tooltip>
  between UI and Logic classes?

Other things:

  • Tip text is better to be left-aligned by default?
  • We need a way to indicate the tool-tipped text e.g. a grey dash underline (similar to the one given in #11 )

<br> tag breaks panel hieararchy

When I use the following code, the second inner panel appear outside of the outer panel.

<panel header="outer" expandable type="seamless">
  <panel header="inner1" expandable type="seamless">
  
line1<br>
line2
    
  </panel>
  <panel header="inner2" expandable type="seamless">
    content 
  </panel>
</panel>

However, the problem can be avoided if I use <br/> instead.

Show a spinner while loading

Currently, a partially loaded page with messed up content is shown when a page is loading. May be show a spinner during loading?

Support super panels

We should consider collapsing different types of panels (dynamic, morph, etc.) into one 'super' panels.
e.g.

<panel src="/docs/loadContent.html" title="some title" 
    expandable collapsed|expanded|minimized type="seamless|primary|warning|...">

</panel>

The presence of src indicates it is a dynamic panel.
A panel can have icons to expand, collapse, minimize, and expand all.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.