Skip to content

Commit 2054fbe

Browse files
committed
Allow linking to lower level in delta specs.
1 parent 21986e3 commit 2054fbe

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

bikeshed/metadata.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def __init__(self):
6060
self.defaultHighlight = None
6161
self.defaultBiblioDisplay = "index"
6262
self.defaultRefStatus = None
63+
self.deltaSpec = False
6364
self.displayShortname = None
6465
self.editors = []
6566
self.editorTerm = {"singular": "Editor", "plural": "Editors"}
@@ -1320,6 +1321,7 @@ def parseLiteralList(key, val, lineNum): # pylint: disable=unused-argument
13201321
"Default Ref Status": Metadata(
13211322
"Default Ref Status", "defaultRefStatus", joinValue, parseRefStatus
13221323
),
1324+
"Delta Spec": Metadata("Delta Spec", "deltaSpec", joinValue, parseBoolean),
13231325
"ED": Metadata("ED", "ED", joinValue, parseLiteral),
13241326
"Editor": Metadata("Editor", "editors", joinList, parseEditor),
13251327
"Editor Term": Metadata("Editor Term", "editorTerm", joinValue, parseEditorTerm),

bikeshed/refs/ReferenceManager.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class ReferenceManager:
3131
"foreignRefs",
3232
"shortname",
3333
"specLevel",
34+
"isDelta",
3435
"spec",
3536
"testing",
3637
]
@@ -236,6 +237,7 @@ def setSpecData(self, md):
236237
self.shortname = md.shortname
237238
self.specLevel = md.level
238239
self.spec = md.vshortname
240+
self.isDelta = md.deltaSpec
239241

240242
for term, defaults in md.linkDefaults.items():
241243
for default in defaults:
@@ -506,6 +508,7 @@ def getRef(
506508
export = True
507509
else:
508510
export = None
511+
509512
refs, failure = self.foreignRefs.queryRefs(
510513
text=text,
511514
linkType=linkType,
@@ -519,6 +522,21 @@ def getRef(
519522
ignoreObsoletes=True,
520523
)
521524

525+
if failure and self.isDelta:
526+
refs, failure = self.foreignRefs.queryRefs(
527+
text=text,
528+
linkType=linkType,
529+
spec=self.shortname,
530+
status=status,
531+
statusHint=statusHint,
532+
linkFor=linkFor,
533+
linkForHint=linkForHint,
534+
explicitFor=explicitFor,
535+
export=False,
536+
ignoreObsoletes=True,
537+
latestOnly=False,
538+
)
539+
522540
if (
523541
failure
524542
and linkType in ("argument", "idl")

0 commit comments

Comments
 (0)