Skip to content

Commit b9ee415

Browse files
committed
Add support for the 'ts' stage, meant to be sent to ISO for publication.
2 parents c3791ab + f0109e7 commit b9ee415

File tree

10 files changed

+196
-81
lines changed

10 files changed

+196
-81
lines changed

base.css

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,23 @@ limitations under the License.
1515

1616
@page {
1717
margin: 10%;
18-
@top-left { content: "© ISO/IEC"; font-size: 10pt; }
19-
@top-right { content: string(docnum); font-weight: bold; font-size: 10pt; }
20-
@bottom-left { content: string(current-section, last); font-size: 10pt; }
18+
}
19+
@page :left {
20+
@top-left { content: string(docname); font-weight: bold; font-size: 10pt; }
21+
@top-right { content: normal; }
22+
@bottom-left { content: counter(page); font-size: 10pt; }
23+
@bottom-right { content: "© ISO/IEC " string(pubyear) " — All rights reserved";
24+
font-size: 10pt; }
25+
}
26+
@page :right {
27+
@top-left { content: normal; }
28+
@top-right { content: string(docname); font-weight: bold; font-size: 10pt; }
29+
@bottom-left { content: "© ISO/IEC " string(pubyear) " — All rights reserved";
30+
font-size: 10pt; }
2131
@bottom-right { content: counter(page); font-size: 10pt; }
2232
}
2333
@page :first {
24-
/* @top-left is defined by base.js. */
34+
@top-left { content: normal; }
2535
@top-right { content: normal; }
2636
@bottom-left { content: normal; }
2737
@bottom-right { content: normal; }
@@ -48,22 +58,23 @@ body { margin: 0; }
4858
html, body {height: 100%}
4959
}
5060

51-
cxx-docnum { string-set: docnum content(); }
61+
* /deep/ .docname { string-set: docname content(); }
62+
* /deep/ .pubyear { string-set: pubyear content(); }
5263

53-
cxx-clause { page-break-before: always; }
64+
cxx-clause, cxx-foreword { page-break-before: always; }
5465
@media screen {
55-
cxx-clause, cxx-toc { margin-top: 3em; }
66+
cxx-clause, cxx-toc, cxx-foreword { margin-top: 3em; }
5667
}
5768

58-
cxx-clause::shadow header { font-size: 150%; }
69+
cxx-clause::shadow header, cxx-foreword::shadow h1 { font-size: 150%; }
5970
cxx-toc::shadow h1 { font-size: 150%; }
6071
cxx-clause cxx-section::shadow header { font-size: 117%; }
6172
cxx-clause cxx-section cxx-section::shadow header { font-size: 100%; }
6273

6374
[data-bookmark-label] { bookmark-label: attr(data-bookmark-label); }
6475
h1 { bookmark-level: 1; }
6576
cxx-toc::shadow h1 { bookmark-level: 2; }
66-
cxx-clause h1 { bookmark-level: 2; }
77+
cxx-clause h1, cxx-foreword h1 { bookmark-level: 2; }
6778
cxx-clause cxx-section h1 { bookmark-level: 3; }
6879
cxx-clause cxx-section cxx-section h1 { bookmark-level: 4; }
6980
/* The <h2> is a subtitle, which shouldn't get a PDF bookmark. */

base.js

Lines changed: 0 additions & 24 deletions
This file was deleted.

clause.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
this.super();
2121
var toc = document.querySelector('cxx-toc');
2222
if (toc) {
23-
toc.clauses = document.querySelectorAll('cxx-clause');
23+
toc.updateClauses();
2424
}
2525
}
2626
Polymer('cxx-clause', {

ednote.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
<polymer-element name="cxx-ednote" noscript>
1717
<template>
1818
<style>
19-
:host { display: block; }
20-
:host-context(body.cxx-pdts) { display: none; }
19+
:host { display: none; }
20+
:host-context(body.cxx-draft) { display: block; }
2121
aside { float: right; max-width: 40%;
2222
margin: 1ex;
2323
border: 1px dashed #888;

foreword.html

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
<!-- Copyright 2015 Google Inc. All rights reserved.
2+
3+
Licensed under the Apache License, Version 2.0 (the "License");
4+
you may not use this file except in compliance with the License.
5+
You may obtain a copy of the License at
6+
7+
http://www.apache.org/licenses/LICENSE-2.0
8+
9+
Unless required by applicable law or agreed to in writing, software
10+
distributed under the License is distributed on an "AS IS" BASIS,
11+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
See the License for the specific language governing permissions and
13+
limitations under the License.
14+
-->
15+
16+
<!--
17+
This element is empty and auto-generates the necessary content.
18+
-->
19+
<polymer-element name="cxx-foreword">
20+
<template>
21+
<style>
22+
:host { display: block; min-height: 100%; }
23+
:host { page-break-before: always; page-break-after: always; min-height: 100vh; margin-bottom: 2em; }
24+
25+
:host-context(body.cxx-draft) :host { display: none; }
26+
</style>
27+
<section>
28+
<h1>Foreword</h1>
29+
30+
<p>
31+
ISO (the International Organization for Standardization) is a
32+
worldwide federation of national standards bodies (ISO member
33+
bodies). The work of preparing International Standards is
34+
normally carried out through ISO technical committees. Each
35+
member body interested in a subject for which a technical
36+
committee has been established has the right to be represented
37+
on that committee. International organizations, governmental
38+
and non-governmental, in liaison with ISO, also take part in
39+
the work. ISO collaborates closely with the International
40+
Electrotechnical Commission (IEC) on all matters of
41+
electrotechnical standardization.
42+
</p>
43+
<p>
44+
The procedures used to develop this document and those
45+
intended for its further maintenance are described in the
46+
ISO/IEC Directives, Part 1. In particular the different
47+
approval criteria needed for the different types of ISO
48+
documents should be noted. This document was drafted in
49+
accordance with the editorial rules of the ISO/IEC Directives,
50+
Part 2.
51+
<a href="http://www.iso.org/directives">www.iso.org/directives</a>
52+
</p>
53+
<p>
54+
Attention is drawn to the possibility that some of the
55+
elements of this document may be the subject of patent rights.
56+
ISO shall not be held responsible for identifying any or all
57+
such patent rights. Details of any patent rights identified
58+
during the development of the document will be in the
59+
Introduction and/or on the ISO list of patent declarations
60+
received.
61+
<a href="http://www.iso.org/patents">www.iso.org/patents</a>
62+
</p>
63+
<p>
64+
Any trade name used in this document is information given for
65+
the convenience of users and does not constitute an
66+
endorsement.
67+
</p>
68+
<p>
69+
For an explanation on the meaning of ISO specific terms and
70+
expressions related to conformity assessment, as well as
71+
information about ISO's adherence to the WTO principles in the
72+
Technical Barriers to Trade (TBT) see the following URL:
73+
<a href="http://www.iso.org/iso/home/standards_development/resources-for-technical-work/foreword.htm">Foreword - Supplementary information</a>
74+
</p>
75+
<p>
76+
The committee responsible for this document is ISO/IEC JTC1.
77+
</p>
78+
</section>
79+
</template>
80+
<script>
81+
Polymer({
82+
title: "Foreword",
83+
});
84+
</script>
85+
</polymer-element>

framework.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
<link rel="import" href="ref.html"/>
2929
<link rel="import" href="foreign-index.html"/>
3030
<link rel="import" href="titlepage.html"/>
31+
<link rel="import" href="foreword.html"/>
3132
<script src="include.js"></script>
3233
<link rel="import" href="email.html"/>
3334
<link rel="import" href="ednote.html"/>
@@ -40,4 +41,3 @@
4041
<link rel="import" href="codeblock.html"/>
4142
<link rel="import" href="grammar.html"/>
4243
<link rel="import" href="weak-break.html"/>
43-
<script src="base.js"></script>

titlepage.html

Lines changed: 46 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,19 @@
4646
:host-context(body.cxx-draft) h1 { position: absolute; top: 40%; text-align: center; }
4747
:host-context(body.cxx-draft) p.warning { position: absolute; bottom: 5%; }
4848

49-
:host-context(body.cxx-pdts, body.cxx-dts) .header { position: absolute; right: 0; top: 0; text-align: right; }
50-
:host-context(body.cxx-pdts, body.cxx-dts) .header ::content cxx-docnum { font-size: 150%; }
51-
:host-context(body.cxx-pdts, body.cxx-dts) .header cxx-docnum { font-size: 150%; }
52-
:host-context(body.cxx-pdts, body.cxx-dts) hgroup { position: absolute; top: 30%; }
53-
:host-context(body.cxx-pdts, body.cxx-dts) hgroup * { margin: 0; }
54-
:host-context(body.cxx-pdts, body.cxx-dts) hgroup h1 { font-size: 150%; font-weight: bold; }
55-
:host-context(body.cxx-pdts, body.cxx-dts) hgroup h2 { font-size: 100%; font-weight: normal; }
56-
:host-context(body.cxx-pdts, body.cxx-dts) .footer { position: absolute; left: 0; bottom: 5%; }
57-
:host-context(body.cxx-pdts, body.cxx-dts) figure { border: #111 solid 1px; padding: 10px; margin-left: auto; margin-right: auto; }
58-
:host-context(body.cxx-pdts, body.cxx-dts) figcaption { text-align: center; font-weight: bold; }
59-
:host-context(body.cxx-pdts, body.cxx-dts) .warning { position: absolute; bottom: 20%; }
60-
:host-context(body.cxx-pdts, body.cxx-dts) .copyright address { font-style: normal; margin-left: 2em; }
61-
:host-context(body.cxx-pdts, body.cxx-dts) .copyright address a { color: inherit; text-decoration: inherit; }
49+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .header { position: absolute; right: 0; top: 0; text-align: right; }
50+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .header ::content cxx-docnum { font-size: 150%; }
51+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .header cxx-docnum { font-size: 150%; }
52+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) hgroup { position: absolute; top: 30%; }
53+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) hgroup * { margin: 0; }
54+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) hgroup h1 { font-size: 150%; font-weight: bold; }
55+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) hgroup h2 { font-size: 100%; font-weight: normal; }
56+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .footer { position: absolute; left: 0; bottom: 5%; }
57+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) figure { border: #111 solid 1px; padding: 10px; margin-left: auto; margin-right: auto; }
58+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) figcaption { text-align: center; font-weight: bold; }
59+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .warning { position: absolute; bottom: 20%; }
60+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .copyright address { font-style: normal; margin-left: 2em; }
61+
:host-context(body.cxx-pdts, body.cxx-dts, body.cxx-ts) .copyright address a { color: inherit; text-decoration: inherit; }
6262

6363
th { text-align: left; vertical-align: top; }
6464
</style>
@@ -68,8 +68,8 @@
6868
<template if="{{docnum}}">
6969
<tr><th>Document Number:</th><td><content select="cxx-docnum"></content></td></tr>
7070
</template>
71-
<template if="{{pubdate}}">
72-
<tr><th>Date:</th><td><content select="time[pubdate]"></content></td></tr>
71+
<template if="{{hasPubdate}}">
72+
<tr><th>Date:</th><td><time pubdate><span class="pubyear">{{pubyear}}</span>-{{pubmonth}}-{{pubday}}</time></td></tr>
7373
</template>
7474
<template if="{{revises}}">
7575
<tr><th>Revises:</th><td><content select="cxx-revises"></content></td></tr>
@@ -88,18 +88,23 @@ <h1>Working Draft, {{title}}</h1>
8888
</div>
8989
</template>
9090

91-
<template if="{{stage == 'pdts' || stage == 'dts'}}">
91+
<template if="{{stage == 'pdts' || stage == 'dts' || stage == 'ts'}}">
9292
<div class="page">
9393
<div class="header">
94-
<strong>ISO/IEC JTC1 SC22 WG21 <content select="cxx-docnum"/></content></strong><br/>
95-
Date: <content select="time[pubdate]"></content><br/>
96-
<template if="{{stage == 'pdts'}}">
97-
ISO/IEC PDTS <content select="cxx-project-number"></content><br/>
94+
<template if="{{stage == 'pdts' || stage == 'dts'}}">
95+
<strong>ISO/IEC JTC1 SC22 WG21 <content select="cxx-docnum"/></content></strong><br/>
96+
Date: <time pubdate><span class="pubyear">{{pubyear}}</span>-{{pubmonth}}-{{pubday}}</time><br/>
97+
<template if="{{stage == 'pdts'}}">
98+
ISO/IEC PDTS <content select="cxx-project-number"></content><br/>
99+
</template>
100+
<template if="{{stage == 'dts'}}">
101+
ISO/IEC DTS <content select="cxx-project-number"></content><br/>
102+
</template>
98103
</template>
99-
<template if="{{stage == 'dts'}}">
100-
ISO/IEC DTS <content select="cxx-project-number"></content><br/>
104+
<template if="{{stage == 'ts'}}">
105+
<strong class="docname">ISO/IEC <content select="cxx-project-number"></content>:<span class="pubyear">{{pubyear}}</span></strong><br/>
101106
</template>
102-
ISO/IEC JTC1 SC22<br/>
107+
ISO/IEC JTC1 SC22 WG21<br/>
103108
Secretariat: ANSI
104109
</div>
105110
<hgroup>
@@ -125,29 +130,34 @@ <h2>Langages de programmation — {{title_fr}}</h2>
125130
Document type: Draft Technical Specification<br/>
126131
Document stage: (40) Enquiry<br/>
127132
</template>
133+
<template if="{{stage == 'ts'}}">
134+
Document type: Technical Specification<br/>
135+
Document stage: (60) Publication<br/>
136+
</template>
128137
Document language: E
129138
</div>
130139
</div>
131140
<div class="page">
132141
<figure class="copyright">
133-
<figcaption>Copyright notice</figcaption>
134-
<p>This ISO document is a working draft or committee draft and is copyright-protected by ISO. While
135-
the reproduction of working drafts or committee drafts in any form for use by participants in the
136-
ISO standards development process is permitted without prior permission from ISO, neither this
137-
document nor any extract from it may be reproduced, stored or transmitted in any form for any
138-
other purpose without prior written permission from ISO.</p>
139-
<p>Requests for permission to reproduce this document for the purpose of selling it should be
140-
addressed as shown below or to ISO’s member body in the country of the requester:</p>
142+
<p>© ISO {{pubyear}}</p>
143+
<p>
144+
All rights reserved. Unless otherwise specified, no part
145+
of this publication may be reproduced or utilized
146+
otherwise in any form or by any means, electronic or
147+
mechanical, including photocopying, or posting on the
148+
internet or an intranet, without prior written permission.
149+
Permission can be requested from either ISO at the address
150+
below or ISO's member body in the country of the requester.
151+
</p>
141152
<address>
142-
ISO copyright officer<br>
143-
Case postale 56, CH-1211 Geneva 20<br>
153+
ISO copyright office<br>
154+
Case postale 56 · CH-1211 Geneva 20<br>
144155
Tel. + 41 22 749 01 11<br>
145156
Fax + 41 22 749 09 47<br>
146157
E-mail <a href="mailto:copyright@iso.org">copyright@iso.org</a><br>
147158
Web <a href="http://www.iso.org">www.iso.org</a>
148159
</address>
149-
<p>Reproduction may be subject to royalty payments or a licensing agreement.</p>
150-
<p>Violators may be prosecuted.</p>
160+
<p>Published in Switzerland.</p>
151161
</figure>
152162
</div>
153163
</template>
@@ -168,7 +178,7 @@ <h2>Langages de programmation — {{title_fr}}</h2>
168178
<!-- Find your project number at https://isocpp.org/std/status. -->
169179
<template><content></content></template>
170180
</polymer-element>
171-
<polymer-element name="cxx-docnum" noscript>
181+
<polymer-element name="cxx-docnum" noscript class="docname">
172182
<template><content></content></template>
173183
</polymer-element>
174184
<polymer-element name="cxx-editor" noscript>

titlepage.js

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ limitations under the License.
1818
// Default properties
1919
projectNumber: null,
2020
docnum: null,
21-
pubdate: null,
21+
hasPubdate: false,
2222
editor: null,
2323
revises: null,
2424
title: null,
2525
stage: null,
2626

2727
computeStage: function() {
28-
var stages = ['draft', 'pdts', 'dts'];
28+
var stages = ['draft', 'pdts', 'dts', 'ts'];
2929
var presentStages = stages.filter(function(stage) {
3030
return document.body.classList.contains('cxx-' + stage);
3131
});
@@ -48,10 +48,31 @@ limitations under the License.
4848
}
4949
},
5050

51+
addISOSections: function() {
52+
if (this.stage !== 'ts') {
53+
// Only include the ISO requirements in the
54+
// document sent for publication.
55+
return;
56+
}
57+
var toc = document.querySelector('cxx-toc');
58+
if (toc) {
59+
var foreword = document.createElement('cxx-foreword');
60+
foreword.id = 'foreword';
61+
document.body.insertBefore(foreword, toc.nextSibling);
62+
}
63+
},
64+
5165
domReady: function() {
5266
this.projectNumber = this.querySelector('cxx-project-number');
5367
this.docnum = this.querySelector('cxx-docnum');
54-
this.pubdate = this.querySelector('time[pubdate]');
68+
var pubdateElem = this.querySelector('time[pubdate]');
69+
this.hasPubdate = !!pubdateElem;
70+
if (pubdateElem) {
71+
var pubdate = pubdateElem.textContent.split('-');
72+
this.pubyear = pubdate[0];
73+
this.pubmonth = pubdate[1];
74+
this.pubday = pubdate[2];
75+
}
5576
this.editor = this.querySelector('cxx-editor');
5677
this.revises = this.querySelector('cxx-revises');
5778

@@ -76,6 +97,8 @@ limitations under the License.
7697
if (this.title) {
7798
document.title = this.title + stage_suffix;
7899
}
100+
101+
this.addISOSections();
79102
this.completedDomReady = true;
80103
},
81104
})

0 commit comments

Comments
 (0)