Rev 17752 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 17752 | Rev 17770 | ||
---|---|---|---|
Line 100... | Line 100... | ||
100 | self.mendel_family = mendel_family |
100 | self.mendel_family = mendel_family |
101 | self.parent_noble_gas = parent_noble_gas |
101 | self.parent_noble_gas = parent_noble_gas |
102 | return |
102 | return |
103 | 103 | ||
104 | def __str__(self): |
104 | def __str__(self): |
105 | return "{Z} {symbol} {name} {mass}, row = {mendel_row}, col = {mendel_col}, elec. struct. |
105 | return "{Z} {symbol} {name} {mass}, row = {mendel_row}, col = {mendel_col}, elec. struct. {struc}".format( |
106 | struc = ("[" + self.parent_noble_gas + "] " if \ |
106 | struc = ("[" + self.parent_noble_gas + "] " if \ |
107 | self.parent_noble_gas else "") + \ |
107 | self.parent_noble_gas else "") + \ |
108 | self.elec_structure_string, |
108 | self.elec_structure_string, |
109 | **self.__dict__ |
109 | **self.__dict__ |
110 | ) |
110 | ) |
Line 122... | Line 122... | ||
122 | soup.div.append(p) |
122 | soup.div.append(p) |
123 | return p |
123 | return p |
124 | addPara("symbol", self.symbol) |
124 | addPara("symbol", self.symbol) |
125 | addPara("Z", self.Z) |
125 | addPara("Z", self.Z) |
126 | addPara("mass", self.mass) |
126 | addPara("mass", self.mass) |
127 | struc = addPara(" |
127 | struc = addPara("str0", ("[" + self.parent_noble_gas + "] " if \ |
128 | self.parent_noble_gas else "")) |
128 | self.parent_noble_gas else "")) |
129 | for layer in self.elec_structure: |
129 | for layer in self.elec_structure: |
130 | span = soup.new_tag("span") |
130 | span = soup.new_tag("span") |
131 | span["class"] = "layer" |
131 | span["class"] = "layer" |
132 | m = re.match(r'(.*)\^\{(.*)\}', layer) |
132 | m = re.match(r'(.*)\^\{(.*)\}', layer) |
Line 210... | Line 210... | ||
210 | result.append(elt) |
210 | result.append(elt) |
211 | substructure.append(struct+'^{'+str(len(z_list))+'}') |
211 | substructure.append(struct+'^{'+str(len(z_list))+'}') |
212 | return result |
212 | return result |
213 | 213 | ||
214 | @staticmethod |
214 | @staticmethod |
215 | def get_table_html(css=True, js=False, standalone=False, tocxx = False |
215 | def get_table_html(css=True, js=False, standalone=False, tocxx = False, |
- | 216 | compress = True): |
|
216 | """ |
217 | """ |
217 | Crée un élément HTML prêt à insérer dans une page, ou une page |
218 | Crée un élément HTML prêt à insérer dans une page, ou une page |
218 | HTML complète. |
219 | HTML complète. |
219 | @param css fournit un élément de stryle, pour le placement des |
220 | @param css fournit un élément de stryle, pour le placement des |
220 | DIVs de chaque élément (True par défaut) |
221 | DIVs de chaque élément (True par défaut) |
221 | @param js fournit un script javascript pour augmenter les |
222 | @param js fournit un script javascript pour augmenter les |
222 | facilités offertes par le tableau (False par défaut) |
223 | facilités offertes par le tableau (False par défaut) |
223 | @param standalone fait une page HTML complète (False par défaut) |
224 | @param standalone fait une page HTML complète (False par défaut) |
224 | @param tocxx crée du code valide pour C++11 s'il est |
225 | @param tocxx crée du code valide pour C++11 s'il est |
225 | positionné à vrai. Faux par |
226 | positionné à vrai. Faux par défaut. |
- | 227 | @param compress minifiera le code CSS ; (True par défaut) |
|
226 | """ |
228 | """ |
227 | result="" |
229 | result="" |
228 | # éléments de style |
230 | # éléments de style |
229 | if css: |
231 | if css: |
230 | """ |
232 | """ |
Line 284... | Line 286... | ||
284 | "row_enum": row_enum, |
286 | "row_enum": row_enum, |
285 | "col_enum": col_enum, |
287 | "col_enum": col_enum, |
286 | } |
288 | } |
287 | ################################ |
289 | ################################ |
288 | tm = jinja2.Template(open("mendeleiev_template.css").read()) |
290 | tm = jinja2.Template(open("mendeleiev_template.css").read()) |
- | 291 | css_code = tm.render(**dict) |
|
- | 292 | if compress: |
|
- | 293 | from cssmin import cssmin |
|
- | 294 | css_code = cssmin(css_code, wrap = 72) |
|
289 | result += "<style>\n" + |
295 | result += "<style>\n" + css_code + "</style>\n" |
290 | 296 | ||
291 | # script interactif |
297 | # script interactif |
292 | if js: |
298 | if js: |
293 | with open("mendeleiev.js") as infile: |
299 | with open("mendeleiev.js") as infile: |
294 | result += "<script>\n" + infile.read() + "</script>\n" |
300 | result += "<script>\n" + infile.read() + "</script>\n" |
295 | # suite de DIVs, un par élément |
301 | # suite de DIVs, un par élément |
296 | result += "\n".join([elt.toHtml() for elt in Element.get_table()]) + "\n" |
302 | result += "\n".join([elt.toHtml() for elt in Element.get_table()]) + "\n" |
297 | # enrobage dans un DIV commun |
303 | # enrobage dans un DIV commun |
298 | result = """\ |
304 | result = """\ |
299 | <div id="mendeleiev_table">{r}</div> |
305 | <div id="mendeleiev_table" style="position: relative">{r}</div> |
300 | <div id="one_element"></div> |
306 | <div id="one_element"></div> |
301 | <div id="wait" style="width:500; text-align: center; |
307 | <div id="wait" style="width:500; text-align: center; |
302 | background: rgba(200,200,255,0.5); position: absolute; |
308 | background: rgba(200,200,255,0.5); position: absolute; |
303 | top: 50px; left: 200px; border: 1px navy solid; border-radius: 3px;"> |
309 | top: 50px; left: 200px; border: 1px navy solid; border-radius: 3px;"> |
304 | Wait a few seconds... |
310 | Wait a few seconds... |