mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-01-11 18:00:26 +00:00
Merging #321 Table valign from @Skeeve
This commit is contained in:
parent
5dea8ca758
commit
307b5c7d6b
@ -38,7 +38,8 @@ var processRow = function(prevColumns) {
|
|||||||
if(last) {
|
if(last) {
|
||||||
last.rowSpanCount++;
|
last.rowSpanCount++;
|
||||||
$tw.utils.addAttributeToParseTreeNode(last.element,"rowspan",last.rowSpanCount);
|
$tw.utils.addAttributeToParseTreeNode(last.element,"rowspan",last.rowSpanCount);
|
||||||
$tw.utils.addAttributeToParseTreeNode(last.element,"valign","center");
|
var vAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,"valign","center");
|
||||||
|
$tw.utils.addAttributeToParseTreeNode(last.element,"valign",vAlign);
|
||||||
if(colSpanCount > 1) {
|
if(colSpanCount > 1) {
|
||||||
$tw.utils.addAttributeToParseTreeNode(last.element,"colspan",colSpanCount);
|
$tw.utils.addAttributeToParseTreeNode(last.element,"colspan",colSpanCount);
|
||||||
colSpanCount = 1;
|
colSpanCount = 1;
|
||||||
@ -51,9 +52,20 @@ var processRow = function(prevColumns) {
|
|||||||
colSpanCount++;
|
colSpanCount++;
|
||||||
// Move to just before the `|` terminating the cell
|
// Move to just before the `|` terminating the cell
|
||||||
this.parser.pos = cellRegExp.lastIndex - 1;
|
this.parser.pos = cellRegExp.lastIndex - 1;
|
||||||
|
} else if(cellMatch[1] === "<" && prevCell) {
|
||||||
|
colSpanCount = 1+$tw.utils.getAttributeValueFromParseTreeNode(prevCell, "colspan", 1);
|
||||||
|
$tw.utils.addAttributeToParseTreeNode(prevCell,"colspan",colSpanCount);
|
||||||
|
colSpanCount = 1;
|
||||||
|
// Move to just before the `|` terminating the cell
|
||||||
|
this.parser.pos = cellRegExp.lastIndex - 1;
|
||||||
} else if(cellMatch[2]) {
|
} else if(cellMatch[2]) {
|
||||||
// End of row
|
// End of row
|
||||||
if(prevCell && colSpanCount > 1) {
|
if(prevCell && colSpanCount > 1) {
|
||||||
|
try {
|
||||||
|
colSpanCount+= prevCell.attributes.colspan.value;
|
||||||
|
} catch (e) {
|
||||||
|
colSpanCount-= 1;
|
||||||
|
}
|
||||||
$tw.utils.addAttributeToParseTreeNode(prevCell,"colspan",colSpanCount);
|
$tw.utils.addAttributeToParseTreeNode(prevCell,"colspan",colSpanCount);
|
||||||
}
|
}
|
||||||
this.parser.pos = cellRegExp.lastIndex - 1;
|
this.parser.pos = cellRegExp.lastIndex - 1;
|
||||||
@ -64,6 +76,16 @@ var processRow = function(prevColumns) {
|
|||||||
// Look for a space at the start of the cell
|
// Look for a space at the start of the cell
|
||||||
var spaceLeft = false,
|
var spaceLeft = false,
|
||||||
chr = this.parser.source.substr(this.parser.pos,1);
|
chr = this.parser.source.substr(this.parser.pos,1);
|
||||||
|
var vAlign = null;
|
||||||
|
if (chr === "^") {
|
||||||
|
vAlign = "top";
|
||||||
|
} else if(chr === ",") {
|
||||||
|
vAlign = "bottom";
|
||||||
|
}
|
||||||
|
if(vAlign) {
|
||||||
|
this.parser.pos++;
|
||||||
|
chr = this.parser.source.substr(this.parser.pos,1);
|
||||||
|
}
|
||||||
while(chr === " ") {
|
while(chr === " ") {
|
||||||
spaceLeft = true;
|
spaceLeft = true;
|
||||||
this.parser.pos++;
|
this.parser.pos++;
|
||||||
@ -89,7 +111,10 @@ var processRow = function(prevColumns) {
|
|||||||
// Parse the cell
|
// Parse the cell
|
||||||
cell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});
|
cell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});
|
||||||
// Set the alignment for the cell
|
// Set the alignment for the cell
|
||||||
if(cellMatch[1].substr(cellMatch[1].length-1,1) === " ") { // spaceRight
|
if(vAlign) {
|
||||||
|
$tw.utils.addAttributeToParseTreeNode(cell,"valign",vAlign);
|
||||||
|
}
|
||||||
|
if(this.parser.source.substr(this.parser.pos-2,1) === " ") { // spaceRight
|
||||||
$tw.utils.addAttributeToParseTreeNode(cell,"align",spaceLeft ? "center" : "left");
|
$tw.utils.addAttributeToParseTreeNode(cell,"align",spaceLeft ? "center" : "left");
|
||||||
} else if(spaceLeft) {
|
} else if(spaceLeft) {
|
||||||
$tw.utils.addAttributeToParseTreeNode(cell,"align","right");
|
$tw.utils.addAttributeToParseTreeNode(cell,"align","right");
|
||||||
|
@ -19,6 +19,13 @@ exports.addAttributeToParseTreeNode = function(node,name,value) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
exports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {
|
||||||
|
if(node.type === "element" && node.attributes && node.attributes[name] && node.attributes[name].value != undefined) {
|
||||||
|
return node.attributes[name].value;
|
||||||
|
}
|
||||||
|
return defaultValue;
|
||||||
|
};
|
||||||
|
|
||||||
exports.addClassToParseTreeNode = function(node,classString) {
|
exports.addClassToParseTreeNode = function(node,classString) {
|
||||||
var classes = [];
|
var classes = [];
|
||||||
if(node.type === "element") {
|
if(node.type === "element") {
|
||||||
|
@ -8,6 +8,7 @@ type: text/vnd.tiddlywiki
|
|||||||
|
|
||||||
!! Improvements
|
!! Improvements
|
||||||
|
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/pull/324]] support for numeric sorting to TiddlerFilters (thanks to StephanHradek)
|
||||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/87fbd988f1fb0164411af190adfe6b6a2404eef3]] experimental support for running [[TiddlyWiki on node-webkit]]
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/87fbd988f1fb0164411af190adfe6b6a2404eef3]] experimental support for running [[TiddlyWiki on node-webkit]]
|
||||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/3d79eb87d1c609195b8c518c08e167994b20a346]] an [[$:/AdvancedSearch]]
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/3d79eb87d1c609195b8c518c08e167994b20a346]] an [[$:/AdvancedSearch]]
|
||||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/bd7db62da052ec6262c3319eaa11f00e5c452a7b]] support for specifying hostname for the ServerCommand
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/bd7db62da052ec6262c3319eaa11f00e5c452a7b]] support for specifying hostname for the ServerCommand
|
||||||
|
@ -36,21 +36,49 @@ The example renders as:
|
|||||||
| Centred content |
|
| Centred content |
|
||||||
|+++ a very wide column so we can see the alignment +++|
|
|+++ a very wide column so we can see the alignment +++|
|
||||||
|
|
||||||
|
! Cell vertical Alignment
|
||||||
|
|
||||||
|
Vertical alignment of cells is done by inserting either a `^` for top alignment or a `,` for bottom alignment as the first character of a cell. The normal horizontal alignment is still possible.
|
||||||
|
|
||||||
|
A shortned example:
|
||||||
|
|
||||||
|
```
|
||||||
|
|^top left |^ top center |^ top right|
|
||||||
|
|middle left | middle center | middle right|
|
||||||
|
|,bottom left |, bottom center |, bottom right|
|
||||||
|
```
|
||||||
|
|
||||||
|
The example renders as:
|
||||||
|
|
||||||
|
| :: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | :: |
|
||||||
|
| ::<br>:: |^top left |^ top center |^ top right| ::<br>:: |
|
||||||
|
| ::<br>:: |middle left | middle center | middle right| ::<br>:: |
|
||||||
|
| ::<br>:: |,bottom left |, bottom center |, bottom right| ::<br>:: |
|
||||||
|
| :: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | ::::::::::::::::::::::::::: | :: |
|
||||||
|
|
||||||
|
Should you ever want to have a `^`or a `,` as the first character of a left aligned cell, you need to use html-escaping.
|
||||||
|
|
||||||
|
| `^` | &#94; |
|
||||||
|
| `,` | &#44; |
|
||||||
|
|
||||||
|
|
||||||
! Cell Merging
|
! Cell Merging
|
||||||
|
|
||||||
To merge a table cell with the one above, use the special cell text `~`. To merge a cell with the one to its right use the text `>`. For example:
|
To merge a table cell with the one above, use the special cell text `~`. To merge a cell with the one to its left use the text `<`. To merge one to its right use `>`. For example:
|
||||||
|
|
||||||
```
|
```
|
||||||
|Cell1 |Cell2 |Cell3 |Cell4 |
|
|Cell1 |Cell2 |Cell3 |Cell4 |
|
||||||
|Cell5 |Cell6 |>|Cell7 |
|
|Cell5 |Cell6 |Cell7 |<|
|
||||||
|Cell5 |~|Cell7 |Cell8 |
|
|Cell5 |~|Cell7 |Cell8 |
|
||||||
|
|>|Cell9 |Cell10 |Cell11 |
|
||||||
```
|
```
|
||||||
|
|
||||||
Renders as:
|
Renders as:
|
||||||
|
|
||||||
|Cell1 |Cell2 |Cell3 |Cell4 |
|
|Cell1 |Cell2 |Cell3 |Cell4 |
|
||||||
|Cell5 |Cell6 |>|Cell7 |
|
|Cell5 |Cell6 |Cell7 |<|
|
||||||
|Cell5 |~|Cell7 |Cell8 |
|
|Cell5 |~|Cell7 |Cell8 |
|
||||||
|
|>|Cell9 |Cell10 |Cell11 |
|
||||||
|
|
||||||
! Table Classes, Captions, Headers and Footers
|
! Table Classes, Captions, Headers and Footers
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user