Contents
Put a table of contents in your files!
Note:
Currently, only css/javascript files are supported. In fact, files of languages with /* BlockComment */ syntax. I'm working on it.
How it works
Contents searches for sections in file and generates a table of contents.
Sections are defined by >
or #
and the levels are provided by the number of chars, from 1 to 6.
Examples of supported formats:
/* > First Level
/* >> Second Level <<
/* # First Level
/* ## Second Level
/* ###### Sixth Level
By default, the script inserts the TOC at the beginning of the file.
This position can be defined at first time, using the /* Table of Contents */
markup:
/**
* Project X
* Author: Jean Pimentel
* Date: August, 2013
*/
/* Table of Contents */
body {}
Another way is move the generated TOC to another position in the file. When contents run again, will find and respect the position defined previously.
Example
Before:
/* > HTML5 display-role reset for older browsers
============================================================================= */
button, input, select, textarea {
width:auto;
overflow:visible;
margin:0;
font-size:100%;
vertical-align:baseline;
}
textarea {
overflow:auto;
vertical-align:text-top;
}
/* >> Buttons
============================================================================= */
button,
a.button,
input[type='reset'],
input[type='button'],
input[type='submit'] {
background-color:#eaeaea;
border:1px solid #ccc;
color:#555;
}
button:hover,
a.button:hover,
input[type='reset']:hover,
input[type='button']:hover,
input[type='submit']:hover {
background-color:#ececec;
border:1px solid #bbb;
color:#555;
}
/* >>> Buttons (Call to Action)
============================================================================= */
.call-to-action {
text-align:center;
}
.call-to-action a.button {
font-size:24px;
padding:15px 35px;
}
.call-to-action a.button:hover {
text-decoration:none;
}
.ie7 .call-to-action a.button {
padding:15px 35px 18px 35px;
}
/* >>> Buttons (Sizes)
============================================================================= */
.small a.button {
font-size:10px;
padding:3px 6px;
}
.medium a.button {
font-size:16px;
padding:8px 16px;
}
.large a.button {
font-size:18px;
padding:10px 35px;
}
.xlarge a.button {
font-size:24px;
padding:12px 55px;
}
After:
/* TABLE OF CONTENTS
HTML5 display-role reset for older browsers ......................... 10
Buttons ......................................................... 25
Buttons (Call to Action) .................................... 47
Buttons (Sizes) ............................................. 66
============================================================================= */
/* > HTML5 display-role reset for older browsers
============================================================================= */
button, input, select, textarea {
width:auto;
overflow:visible;
margin:0;
font-size:100%;
vertical-align:baseline;
}
textarea {
overflow:auto;
vertical-align:text-top;
}
/* >> Buttons
============================================================================= */
button,
a.button,
input[type='reset'],
input[type='button'],
input[type='submit'] {
background-color:#eaeaea;
border:1px solid #ccc;
color:#555;
}
button:hover,
a.button:hover,
input[type='reset']:hover,
input[type='button']:hover,
input[type='submit']:hover {
background-color:#ececec;
border:1px solid #bbb;
color:#555;
}
/* >>> Buttons (Call to Action)
============================================================================= */
.call-to-action {
text-align:center;
}
.call-to-action a.button {
font-size:24px;
padding:15px 35px;
}
.call-to-action a.button:hover {
text-decoration:none;
}
.ie7 .call-to-action a.button {
padding:15px 35px 18px 35px;
}
/* >>> Buttons (Sizes)
============================================================================= */
.small a.button {
font-size:10px;
padding:3px 6px;
}
.medium a.button {
font-size:16px;
padding:8px 16px;
}
.large a.button {
font-size:18px;
padding:10px 35px;
}
.xlarge a.button {
font-size:24px;
padding:12px 55px;
}
Installation
- Simple, using PyPI:
user@machine:~$ [sudo] pip install contents
- or download the source and:
user@machine:~$ [sudo] python setup.py install
Usage
- Command line:
user@machine:~$ contents my-file.css
License
Copyright (C) 2013 Jean Pimentel contato@jeanpimentel.com.br
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.