Creating a HedgeDoc method to replace youtube embedded links to markdeep format and example.
This commit is contained in:
parent
71d1cbd9a6
commit
68dff9bd8c
@ -129,3 +129,22 @@ HedgeDoc >> url: anObject [
|
||||
HedgeDoc >> visit [
|
||||
WebBrowser openOn: self server, '/', self pad.
|
||||
]
|
||||
|
||||
{ #category : #transformation }
|
||||
HedgeDoc >> youtubeEmbeddedLinksToMarkdeepFormat [
|
||||
"I replace the youtube embedded links from hedgedoc format to markdeep format."
|
||||
| linkDataCollection |
|
||||
linkDataCollection := (HedgeDocGrammar new youtubeEmbeddedLink parse: self contents)
|
||||
collect: [ :each | | parsedLink |
|
||||
parsedLink := OrderedCollection new.
|
||||
parsedLink
|
||||
add: ('' join:( each collect: [ :s | s value]));
|
||||
add: '![](https://youtu.be/',
|
||||
each second value trimmed , ')';
|
||||
add: (each first start to: each third stop);
|
||||
yourself ].
|
||||
linkDataCollection do: [ :each |
|
||||
self contents: (self contents
|
||||
copyReplaceAll: each first with: each second) ].
|
||||
^ self
|
||||
]
|
||||
|
36
src/MiniDocs/HedgeDocExamples.class.st
Normal file
36
src/MiniDocs/HedgeDocExamples.class.st
Normal file
@ -0,0 +1,36 @@
|
||||
Class {
|
||||
#name : #HedgeDocExamples,
|
||||
#superclass : #Object,
|
||||
#category : #'MiniDocs-Examples'
|
||||
}
|
||||
|
||||
{ #category : #accessing }
|
||||
HedgeDocExamples >> hedgeDocReplaceYoutubeEmbeddedLinkExample [
|
||||
<gtExample>
|
||||
| aSampleString hedgedocDoc parsedCollection hedgedocDocLinksReplaced |
|
||||
aSampleString := '---
|
||||
breaks: false
|
||||
|
||||
---
|
||||
|
||||
# Titulo
|
||||
|
||||
Un texto de ejemplo
|
||||
|
||||
# Enlaces youtube
|
||||
|
||||
{%youtube 1aw3XmTqFXA %}
|
||||
|
||||
otro video
|
||||
|
||||
{%youtube U7mpXaLN9Nc %}'.
|
||||
hedgedocDoc := HedgeDoc new
|
||||
contents: aSampleString.
|
||||
hedgedocDocLinksReplaced := HedgeDoc new contents: aSampleString; youtubeEmbeddedLinksToMarkdeepFormat.
|
||||
self assert: (hedgedocDoc contents
|
||||
includesSubstring: '{%youtube 1aw3XmTqFXA %}' ).
|
||||
self assert: (hedgedocDocLinksReplaced contents
|
||||
includesSubstring: '![](https://youtu.be/1aw3XmTqFXA)' ).
|
||||
^ { 'Original' -> hedgedocDoc .
|
||||
'Replaced' -> hedgedocDocLinksReplaced } asDictionary
|
||||
]
|
@ -25,7 +25,7 @@ HedgeDocGrammar >> youtubeEmbeddedLink [
|
||||
"I parse the youtube embedded links in a hedgedoc document."
|
||||
| link linkSea |
|
||||
link := self youtubeEmbeddedLinkOpen,
|
||||
#any asPParser starLazy token trim,
|
||||
#any asPParser starLazy token,
|
||||
self youtubeEmbeddedLinkClose.
|
||||
linkSea := link islandInSea star.
|
||||
^ linkSea
|
||||
|
Loading…
Reference in New Issue
Block a user