diff options
| -rw-r--r-- | src/document_tree/attribute_types.rs | 4 | ||||
| -rw-r--r-- | src/document_tree/elements.rs | 12 | ||||
| -rw-r--r-- | src/document_tree/extra_attributes.rs | 11 | 
3 files changed, 19 insertions, 8 deletions
| diff --git a/src/document_tree/attribute_types.rs b/src/document_tree/attribute_types.rs index 219a0ac..4a9bd3d 100644 --- a/src/document_tree/attribute_types.rs +++ b/src/document_tree/attribute_types.rs @@ -21,6 +21,10 @@ impl Default for FixedSpace { fn default() -> FixedSpace { FixedSpace::Preserve  #[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub enum AlignH { Left, Center, Right}  #[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub enum AlignHV { Top, Middle, Bottom, Left, Center, Right } +#[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub enum AlignV { Top, Middle, Bottom } + +#[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub enum TableAlignH { Left, Right, Center, Justify, Char } +#[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub enum TableBorder { Top, Bottom, TopBottom, All, Sides, None }  #[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub struct ID(pub String);  #[derive(Debug,PartialEq,Eq,Hash,Serialize)] pub struct NameToken(pub String); diff --git a/src/document_tree/elements.rs b/src/document_tree/elements.rs index 809b796..025abf9 100644 --- a/src/document_tree/elements.rs +++ b/src/document_tree/elements.rs @@ -210,12 +210,12 @@ impl_elems!(  	(Table,         SubTable;    +)  	//table elements -	(TableGroup, SubTableGroup) -	(TableHead,  TableRow) -	(TableBody,  TableRow) -	(TableRow,   TableEntry) -	(TableEntry, BodyElement) -	(TableColspec) +	(TableGroup, SubTableGroup; +) +	(TableHead,  TableRow;      +) +	(TableBody,  TableRow;      +) +	(TableRow,   TableEntry;    +) +	(TableEntry, BodyElement;   +) +	(TableColspec; +)  	//body sub elements  	(ListItem, BodyElement) diff --git a/src/document_tree/extra_attributes.rs b/src/document_tree/extra_attributes.rs index 5ed9788..35f4b5a 100644 --- a/src/document_tree/extra_attributes.rs +++ b/src/document_tree/extra_attributes.rs @@ -1,7 +1,7 @@  use serde_derive::Serialize;  use crate::target; -use super::attribute_types::{CanBeEmpty,FixedSpace,ID,NameToken,AlignHV,AlignH,Measure,EnumeratedListType}; +use super::attribute_types::{CanBeEmpty,FixedSpace,ID,NameToken,AlignHV,AlignH,AlignV,TableAlignH,TableBorder,Measure,EnumeratedListType};  pub trait ExtraAttributes<A> {  	fn with_extra(extra: A) -> Self; @@ -61,7 +61,14 @@ impl_extra!(Footnote { backrefs: Vec<ID>, auto: bool });  impl_extra!(Citation { backrefs: Vec<ID> });  impl_extra!(SystemMessage { backrefs: Vec<ID>, level: Option<usize>, line: Option<usize>, type_: Option<NameToken> });  impl_extra!(Figure { align: Option<AlignH>, width: Option<usize> }); -impl_extra!(Table {}); //TODO: Table +impl_extra!(Table { frame: Option<TableBorder>, colsep: Option<bool>, rowsep: Option<bool>, pgwide: Option<bool> }); + +impl_extra!(TableGroup { cols: usize, colsep: Option<bool>, rowsep: Option<bool>, align: Option<TableAlignH> }); +impl_extra!(TableHead { valign: Option<AlignV> }); +impl_extra!(TableBody { valign: Option<AlignV> }); +impl_extra!(TableRow { rowsep: Option<bool>, valign: Option<AlignV> }); +impl_extra!(TableEntry { colname: Option<NameToken>, namest: Option<NameToken>, nameend: Option<NameToken>, morerows: Option<usize>, colsep: Option<bool>, rowsep: Option<bool>, align: Option<TableAlignH>, r#char: Option<char>, charoff: Option<usize>, valign: Option<AlignV>, morecols: Option<usize> }); +impl_extra!(TableColspec { colnum: Option<usize>, colname: Option<NameToken>, colwidth: Option<String>, colsep: Option<bool>, rowsep: Option<bool>, align: Option<TableAlignH>, r#char: Option<char>, charoff: Option<usize>, stub: Option<bool> });  impl_extra!(OptionArgument { delimiter: Option<String> }); | 
