Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

.md partials or how to build TOC for whole project #37

Open
Mevrael opened this issue Mar 17, 2016 · 2 comments
Open

.md partials or how to build TOC for whole project #37

Mevrael opened this issue Mar 17, 2016 · 2 comments

Comments

@Mevrael
Copy link

Mevrael commented Mar 17, 2016

I have toc.md in src root and some basic CSS custom styles which generates nested numbering for <ol> and would like to use this table of contents in sidebar in all other pages, however, as I can see only html files in layout partials folder can be used and not .md files in src.

Is there any way right now in one .md file insert another .md file and in layout's page.html include multiple md files? If not, what would be your suggestions, short algorithm, how I would make it myself using your tool?

Or may be you have another option to automatically build toc for whole project from all .md files?

P.S. thank you for this simple and great tool. It is closest to what I was looking looking for, simple to install and use out of the box with GitHub syntax highlighting support for most languages. Probably you also started making this tool because didn't find any simple ones. If you need some help in contributing, give me some guidelines about used technologies and architecture. I see there are many features and imporvmenets could be made. You also may contact me on twitter

@wchrisjohnson
Copy link

+1 for the ability to handle multiple markdown files, TOC, etc. We are currently having to maintain all the example code for a project I'm involved with in one large file and it's getting cumbersome to do so in markup. I'd like to either be able to 1) combine many individual markdown files into one single file and kick out a markup file, or 2) be able to simulate the same via the TOC approach that @Mevrael notes above.

Thanks for a nice, clean toolkit for doing this sort of thing!

@Mevrael
Copy link
Author

Mevrael commented Mar 18, 2016

Right now I am doing it with iframe:

layout's page.html:

  {{#if headings}}
  <div class="row">
    <menu>
      <iframe src="{{asset '../toc.html'}}">TOC</iframe>
    </menu>
    <main class="markdown-body">
      {{~> content}}
    </main>
  </div>
  {{else}}
    <div class="markdown-body">
      {{~> content}}
    </div>
  {{/if}}

in <head> add this line so iframe would open links in main window:

<base target="_parent" />

And create toc.md in src root without any heading. Each other file should have heading. This is simple if statemenet how I determine is it toc or normal page to prevent rendering toc in toc itself.

I extended github layout and added this simple css to make two column layout and auto numbering in nested list:

ol {
    counter-reset: section;
    list-style-type: none !important;
}

li {
    font-weight: normal;
}

.markdown-body > ol > li {
    font-weight: bold;
    margin-bottom: 20px;
}

ol ol {
    list-style-type: none !important;
}

ol li::before {
    counter-increment: section;
    content: counters(section,".") ". "; 
}

body {
    max-width: none;
    margin: 0;
    padding: 0;
}

html, body {
    height: 100%;
}

.row {
    height: calc(100% - 60px);
    float: left;
}

menu {
    width: 450px;
    height: 100%;
    display: inline-block;
    margin: 0 -100% 0 0;
    padding: 30px 0;
    vertical-align: top;
    float: left;
}

main {
    display: inline-block;
    margin: 0 0 0 450px;
    padding: 30px 30px 30px;
    vertical-align: top;
}

iframe {
    border: none;
    width: 100%;
    height: 100%;
}

a:not([href]) {
    color: black !important;
    text-decoration: none !important;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants