From ae753377396eefbf36c86883f7b8c866c4f51ec9 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Sun, 21 May 2023 20:50:41 -0500 Subject: [PATCH 1/2] PubPubContent recovering after GT crash. --- src/MiniDocs/PubPub.class.st | 7 ++++++ src/MiniDocs/PubPubContent.class.st | 38 ++++++++++++++++++++++++++++- 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/MiniDocs/PubPub.class.st b/src/MiniDocs/PubPub.class.st index ab4a05b..fb78386 100644 --- a/src/MiniDocs/PubPub.class.st +++ b/src/MiniDocs/PubPub.class.st @@ -91,6 +91,13 @@ PubPub >> extractRawTableOfContents [ ^ self extractAllContentsRaw first xpath: '//div[contains(concat(" ",normalize-space(@class)," "), " pub-preview-component ")]' ] +{ #category : #accessing } +PubPub >> extractTableOfContents [ + ^ self extractRawTableOfContents collect: [:each | + PubPubContent fromXML: each + ] +] + { #category : #accessing } PubPub >> folder [ ^ folder ensureCreateDirectory diff --git a/src/MiniDocs/PubPubContent.class.st b/src/MiniDocs/PubPubContent.class.st index 4a15f67..65a975d 100644 --- a/src/MiniDocs/PubPubContent.class.st +++ b/src/MiniDocs/PubPubContent.class.st @@ -10,6 +10,11 @@ Class { #category : #'MiniDocs-Model' } +{ #category : #accessing } +PubPubContent class >> fromXML: anXMLElement [ + ^ self new fromXML: anXMLElement +] + { #category : #accessing } PubPubContent >> fromXML: aXMLElement [ | image anchor| @@ -24,7 +29,28 @@ image anchor := (aXMLElement contentNodes second contentNodes first xpath: './div[@class="title-wrapper"]/a') first. self title: (anchor attributeAt: 'title'); - url: (anchor attributeAt: 'title'). + url: (anchor attributeAt: 'href'). +] + +{ #category : #accessing } +PubPubContent >> id [ + ^ (self url splitOn: $/) last +] + +{ #category : #accessing } +PubPubContent >> printOn: aStream [ + super printOn: aStream. + aStream + nextPutAll: '( ', self title,' | ', self id, ' )' +] + +{ #category : #accessing } +PubPubContent >> shortName [ + | sanitized | + sanitized := (self title splitOn: $:) first. + sanitized := sanitized asCamelCase. + sanitized at: 1 put: sanitized first asLowercase. + ^ sanitized ] { #category : #accessing } @@ -32,11 +58,21 @@ PubPubContent >> thumbnail: anURL [ thumbnail := anURL ] +{ #category : #accessing } +PubPubContent >> title [ + ^ title +] + { #category : #accessing } PubPubContent >> title: anObject [ title := anObject ] +{ #category : #accessing } +PubPubContent >> url [ + ^url +] + { #category : #accessing } PubPubContent >> url: anObject [ url := anObject From 473c2624549510a825072b100b1a673fa371fa68 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Sun, 21 May 2023 20:55:46 -0500 Subject: [PATCH 2/2] PubPubContent method's recovering after GT crash. --- src/MiniDocs/PubPubContent.class.st | 1 + 1 file changed, 1 insertion(+) diff --git a/src/MiniDocs/PubPubContent.class.st b/src/MiniDocs/PubPubContent.class.st index 65a975d..375aee2 100644 --- a/src/MiniDocs/PubPubContent.class.st +++ b/src/MiniDocs/PubPubContent.class.st @@ -48,6 +48,7 @@ PubPubContent >> printOn: aStream [ PubPubContent >> shortName [ | sanitized | sanitized := (self title splitOn: $:) first. + sanitized := sanitized copyReplaceAll: '’' with: ''. sanitized := sanitized asCamelCase. sanitized at: 1 put: sanitized first asLowercase. ^ sanitized