mirror of
https://github.com/showdownjs/showdown.git
synced 2024-03-22 13:30:55 +08:00
Added text-alignment for table.js extension
This commit is contained in:
parent
053288f2fe
commit
cb00d4c636
|
@ -11,62 +11,94 @@
|
|||
* |**bold** | ![Valid XHTML] (http://w3.org/Icons/valid-xhtml10) |
|
||||
* | Plain | Value |
|
||||
*
|
||||
*
|
||||
*
|
||||
* | Col 1 | Col 2|
|
||||
* |:========:|===================================================:|
|
||||
* | col 1 | is center aligned|
|
||||
* | col 2 | is right aligned|
|
||||
*
|
||||
*/
|
||||
|
||||
(function(){
|
||||
var table = function(converter) {
|
||||
var tables = {}, style = 'text-align:left;', filter;
|
||||
tables.th = function(header){
|
||||
var tables = {}, filter;
|
||||
tables.th = function(header, style) {
|
||||
if (header.trim() === "") { return "";}
|
||||
var id = header.trim().replace(/ /g, '_').toLowerCase();
|
||||
return '<th id="' + id + '" style="'+style+'">' + header + '</th>';
|
||||
return '<th id="' + id + '" style="' + style + '">' + header + '</th>';
|
||||
};
|
||||
tables.td = function(cell) {
|
||||
return '<td style="'+style+'">' + converter.makeHtml(cell) + '</td>';
|
||||
tables.td = function(cell, style) {
|
||||
return '<td style="' + style + '">' + converter.makeHtml(cell) + '</td>';
|
||||
};
|
||||
tables.ths = function(){
|
||||
var out = "", i = 0, hs = [].slice.apply(arguments);
|
||||
tables.ths = function() {
|
||||
var out = "", i = 0, hs = [].slice.apply(arguments[0]), style = [].slice.apply(arguments[1]);
|
||||
for (i;i<hs.length;i+=1) {
|
||||
out += tables.th(hs[i]) + '\n';
|
||||
out += tables.th(hs[i], style[i]) + '\n';
|
||||
}
|
||||
return out;
|
||||
};
|
||||
tables.tds = function(){
|
||||
var out = "", i = 0, ds = [].slice.apply(arguments);
|
||||
tables.tds = function() {
|
||||
var out = "", i = 0, ds = [].slice.apply(arguments[0]), style = [].slice.apply(arguments[1]);
|
||||
for (i;i<ds.length;i+=1) {
|
||||
out += tables.td(ds[i]) + '\n';
|
||||
out += tables.td(ds[i], style[i]) + '\n';
|
||||
}
|
||||
return out;
|
||||
};
|
||||
tables.thead = function() {
|
||||
var out, i = 0, hs = [].slice.apply(arguments);
|
||||
var out, i = 0, hs = [].slice.apply(arguments[0]), style = [].slice.apply(arguments[1]);
|
||||
out = "<thead>\n";
|
||||
out += "<tr>\n";
|
||||
out += tables.ths.apply(this, hs);
|
||||
out += tables.ths.apply(this, [hs, style]);
|
||||
out += "</tr>\n";
|
||||
out += "</thead>\n";
|
||||
return out;
|
||||
};
|
||||
tables.tr = function() {
|
||||
var out, i = 0, cs = [].slice.apply(arguments);
|
||||
var out, i = 0, cs = [].slice.apply(arguments[0]), style = [].slice.apply(arguments[1]);
|
||||
out = "<tr>\n";
|
||||
out += tables.tds.apply(this, cs);
|
||||
out += tables.tds.apply(this, [cs, style]);
|
||||
out += "</tr>\n";
|
||||
return out;
|
||||
};
|
||||
filter = function(text) {
|
||||
var i=0, lines = text.split('\n'), line, hs, rows, out = [];
|
||||
for (i; i<lines.length;i+=1) {
|
||||
for (i;i<lines.length;i+=1) {
|
||||
line = lines[i];
|
||||
// looks like a table heading
|
||||
if (line.trim().match(/^[|]{1}.*[|]{1}$/)) {
|
||||
line = line.trim();
|
||||
var tbl = [];
|
||||
var align = lines[i+1];
|
||||
align = align.trim();
|
||||
var styles = [];
|
||||
if (align.match(/^[|]{1}[-=|: ]+[|]{1}$/)) {
|
||||
styles = align.substring(1, align.length -1).split('|');
|
||||
var j=0;
|
||||
for (j;j<styles.length;j+=1) {
|
||||
styles[j] = styles[j].trim();
|
||||
if (styles[j].match(/^[:]{1}[-=| ]+[:]{1}$/)) {
|
||||
styles[j] = 'text-align:center;';
|
||||
}
|
||||
else if (styles[j].match(/^[-=| ]+[:]{1}$/)) {
|
||||
styles[j] = 'text-align:right;';
|
||||
}
|
||||
else {
|
||||
styles[j] = 'text-align:left;';
|
||||
}
|
||||
}
|
||||
}
|
||||
tbl.push('<table>');
|
||||
hs = line.substring(1, line.length -1).split('|');
|
||||
tbl.push(tables.thead.apply(this, hs));
|
||||
if (styles.length === 0) {
|
||||
var j=0;
|
||||
for (j;j<hs.length;j+=1) {
|
||||
styles.push('text-align:left');
|
||||
}
|
||||
}
|
||||
tbl.push(tables.thead.apply(this, [hs, styles]));
|
||||
line = lines[++i];
|
||||
if (!line.trim().match(/^[|]{1}[-=| ]+[|]{1}$/)) {
|
||||
if (!line.trim().match(/^[|]{1}[-=|: ]+[|]{1}$/)) {
|
||||
// not a table rolling back
|
||||
line = lines[--i];
|
||||
}
|
||||
|
@ -75,7 +107,7 @@
|
|||
tbl.push('<tbody>');
|
||||
while (line.trim().match(/^[|]{1}.*[|]{1}$/)) {
|
||||
line = line.trim();
|
||||
tbl.push(tables.tr.apply(this, line.substring(1, line.length -1).split('|')));
|
||||
tbl.push(tables.tr.apply(this, [line.substring(1, line.length -1).split('|'), styles]));
|
||||
line = lines[++i];
|
||||
}
|
||||
tbl.push('</tbody>');
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th id="first_header" style="text-align:left;"> First Header </th>
|
||||
<th id="second_header" style="text-align:left;"> Second Header </th>
|
||||
<th id="second_header" style="text-align:center;"> Second Header </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 1 Cell 2 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 2 Cell 2 </p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
| First Header | Second Header |
|
||||
| ------------- | ------------- |
|
||||
| ------------- |: ----------- :|
|
||||
| Row 1 Cell 1 | Row 1 Cell 2 |
|
||||
| Row 2 Cell 1 | Row 2 Cell 2 |
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th id="first_header" style="text-align:left;"> First Header </th>
|
||||
<th id="second_header" style="text-align:left;"> Second Header </th>
|
||||
<th id="third_header" style="text-align:left;"> Third Header </th>
|
||||
<th id="second_header" style="text-align:center;"> Second Header </th>
|
||||
<th id="third_header" style="text-align:right;"> Third Header </th>
|
||||
<th id="fourth_header" style="text-align:left;"> Fourth Header </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -11,36 +11,36 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 2 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 3 </p></td>
|
||||
<td style="text-align:center;"><p>Row 1 Cell 2 </p></td>
|
||||
<td style="text-align:right;"><p>Row 1 Cell 3 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 4 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 2 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 3 </p></td>
|
||||
<td style="text-align:center;"><p>Row 2 Cell 2 </p></td>
|
||||
<td style="text-align:right;"><p>Row 2 Cell 3 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 4 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 3 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 3 Cell 2 </p></td>
|
||||
<td style="text-align:left;"><p>Row 3 Cell 3 </p></td>
|
||||
<td style="text-align:center;"><p>Row 3 Cell 2 </p></td>
|
||||
<td style="text-align:right;"><p>Row 3 Cell 3 </p></td>
|
||||
<td style="text-align:left;"><p>Row 3 Cell 4 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 4 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 4 Cell 2 </p></td>
|
||||
<td style="text-align:left;"><p>Row 4 Cell 3 </p></td>
|
||||
<td style="text-align:center;"><p>Row 4 Cell 2 </p></td>
|
||||
<td style="text-align:right;"><p>Row 4 Cell 3 </p></td>
|
||||
<td style="text-align:left;"><p>Row 4 Cell 4 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 5 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 5 Cell 2 </p></td>
|
||||
<td style="text-align:left;"><p>Row 5 Cell 3 </p></td>
|
||||
<td style="text-align:center;"><p>Row 5 Cell 2 </p></td>
|
||||
<td style="text-align:right;"><p>Row 5 Cell 3 </p></td>
|
||||
<td style="text-align:left;"><p>Row 5 Cell 4 </p></td>
|
||||
</tr>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
| First Header | Second Header | Third Header | Fourth Header |
|
||||
| ------------- | ------------- | ------------ | ------------- |
|
||||
| ------------- |: ----------- :| ------------ :| ------------- |
|
||||
| Row 1 Cell 1 | Row 1 Cell 2 | Row 1 Cell 3 | Row 1 Cell 4 |
|
||||
| Row 2 Cell 1 | Row 2 Cell 2 | Row 2 Cell 3 | Row 2 Cell 4 |
|
||||
| Row 3 Cell 1 | Row 3 Cell 2 | Row 3 Cell 3 | Row 3 Cell 4 |
|
||||
|
|
|
@ -2,19 +2,19 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th id="first_header" style="text-align:left;"> First Header </th>
|
||||
<th id="second_header" style="text-align:left;"> Second Header </th>
|
||||
<th id="second_header" style="text-align:center;"> Second Header </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 1 Cell 2 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 2 Cell 2 </p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
| First Header | Second Header |
|
||||
| ============= | ============= |
|
||||
|:============= |:=============:|
|
||||
| Row 1 Cell 1 | Row 1 Cell 2 |
|
||||
| Row 2 Cell 1 | Row 2 Cell 2 |
|
||||
|
|
|
@ -6,20 +6,23 @@ vulputate dictum. Vestibulum consequat ultricies nibh, sed tempus nisl mattis a.
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th id="first_header" style="text-align:left;"> First Header </th>
|
||||
<th id="first_header" style="text-align:right;"> First Header </th>
|
||||
<th id="second_header" style="text-align:left;"> Second Header </th>
|
||||
<th id="third_header" style="text-align:center;"> Third Header </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 1 </p></td>
|
||||
<td style="text-align:right;"><p>Row 1 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 1 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 1 Cell 3 </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 1 </p></td>
|
||||
<td style="text-align:right;"><p>Row 2 Cell 1 </p></td>
|
||||
<td style="text-align:left;"><p>Row 2 Cell 2 </p></td>
|
||||
<td style="text-align:center;"><p>Row 2 Cell 3 </p></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
|
|
|
@ -3,10 +3,10 @@ ullamcorper euismod iaculis sed, tristique at neque. Nullam metus risus,
|
|||
malesuada vitae imperdiet ac, tincidunt eget lacus. Proin ullamcorper
|
||||
vulputate dictum. Vestibulum consequat ultricies nibh, sed tempus nisl mattis a.
|
||||
|
||||
| First Header | Second Header |
|
||||
| ------------- | ------------- |
|
||||
| Row 1 Cell 1 | Row 1 Cell 2 |
|
||||
| Row 2 Cell 1 | Row 2 Cell 2 |
|
||||
| First Header | Second Header | Third Header |
|
||||
| ------------: | ------------- | :-----------: |
|
||||
| Row 1 Cell 1 | Row 1 Cell 2 | Row 1 Cell 3 |
|
||||
| Row 2 Cell 1 | Row 2 Cell 2 | Row 2 Cell 3 |
|
||||
|
||||
Phasellus ac porttitor quam. Integer cursus accumsan mauris nec interdum.
|
||||
Etiam iaculis urna vitae risus facilisis faucibus eu quis risus. Sed aliquet
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th id="first_header" style="text-align:left;"> First Header </th>
|
||||
<th id="first_header" style="text-align:right;"> First Header </th>
|
||||
<th id="second_header" style="text-align:left;"> Second Header </th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
| First Header | Second Header |
|
||||
| ------------- | ------------- |
|
||||
| ------------ :| ------------- |
|
||||
|
|
Loading…
Reference in New Issue
Block a user