diff --git a/exampleSite/content/docs/shortcodes/index.it.md b/exampleSite/content/docs/shortcodes/index.it.md index ba1bd718..4102673b 100644 --- a/exampleSite/content/docs/shortcodes/index.it.md +++ b/exampleSite/content/docs/shortcodes/index.it.md @@ -197,6 +197,8 @@ This shortcode is for importing code from external sources easily without copyin | --------- | ------------------------------------------------------- | | `url` | **Required** URL to an externally hosted code file. | | `type` | Code type used for syntax highlighting. | +| `startLine` | **Optional** The line number to start the import from. | +| `endLine` | **Optional** The line number to end the import at. | @@ -210,6 +212,13 @@ This shortcode is for importing code from external sources easily without copyin ``` {{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/layouts/shortcodes/mdimporter.html" type="go" >}} +```md +{{}} + +``` + +{{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/config/_default/hugo.toml" type="toml" startLine="11" endLine="18">}} +

diff --git a/exampleSite/content/docs/shortcodes/index.ja.md b/exampleSite/content/docs/shortcodes/index.ja.md index ba1bd718..a93cc237 100644 --- a/exampleSite/content/docs/shortcodes/index.ja.md +++ b/exampleSite/content/docs/shortcodes/index.ja.md @@ -197,7 +197,8 @@ This shortcode is for importing code from external sources easily without copyin | --------- | ------------------------------------------------------- | | `url` | **Required** URL to an externally hosted code file. | | `type` | Code type used for syntax highlighting. | - +| `startLine` | **Optional** The line number to start the import from. | +| `endLine` | **Optional** The line number to end the import at. | @@ -210,6 +211,13 @@ This shortcode is for importing code from external sources easily without copyin ``` {{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/layouts/shortcodes/mdimporter.html" type="go" >}} +```md +{{}} + +``` + +{{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/config/_default/hugo.toml" type="toml" startLine="11" endLine="18">}} +

diff --git a/exampleSite/content/docs/shortcodes/index.md b/exampleSite/content/docs/shortcodes/index.md index 9bb3f042..29cb834b 100644 --- a/exampleSite/content/docs/shortcodes/index.md +++ b/exampleSite/content/docs/shortcodes/index.md @@ -197,6 +197,8 @@ This shortcode is for importing code from external sources easily without copyin | --------- | ------------------------------------------------------- | | `url` | **Required** URL to an externally hosted code file. | | `type` | Code type used for syntax highlighting. | +| `startLine` | **Optional** The line number to start the import from. | +| `endLine` | **Optional** The line number to end the import at. | @@ -210,6 +212,13 @@ This shortcode is for importing code from external sources easily without copyin ``` {{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/layouts/shortcodes/mdimporter.html" type="go" >}} +```md +{{}} + +``` + +{{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/config/_default/hugo.toml" type="toml" startLine="11" endLine="18">}} +

diff --git a/exampleSite/content/docs/shortcodes/index.zh-cn.md b/exampleSite/content/docs/shortcodes/index.zh-cn.md index 91c0f483..25bc4cdb 100644 --- a/exampleSite/content/docs/shortcodes/index.zh-cn.md +++ b/exampleSite/content/docs/shortcodes/index.zh-cn.md @@ -197,6 +197,8 @@ data: { | --------- | ---------------------------------- | | `url` | **必需的** 外部托管代码文件的 URL. | | `type` | 用于语法突出显示的代码类型. | +| `startLine` | **可选** 从代码文件中导入的起始行. | +| `endLine` | **可选** 从代码文件中导入的结束行. | @@ -211,6 +213,13 @@ data: { {{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/layouts/shortcodes/mdimporter.html" type="go" >}} +```md +{{}} + +``` + +{{< codeimporter url="https://raw.githubusercontent.com/nunocoracao/blowfish/main/config/_default/hugo.toml" type="toml" startLine="11" endLine="18">}} +

diff --git a/layouts/shortcodes/codeimporter.html b/layouts/shortcodes/codeimporter.html index 493f4448..952c28a8 100644 --- a/layouts/shortcodes/codeimporter.html +++ b/layouts/shortcodes/codeimporter.html @@ -1,8 +1,27 @@ {{ $url := .Get "url" }} {{ $type := .Get "type" }} +{{ $startLine := .Get "startLine" | default 1 | int }} +{{ $startLine = sub $startLine 1 }} +{{ $endLine := .Get "endLine" | default -1 | int }} +{{ $selectedLines := slice }} {{ with resources.GetRemote (urls.Parse $url) }} -{{ $codeBlock := printf "```%s\n%s\n```" $type .Content }} -{{ $codeBlock | markdownify }} + {{ $lines := split .Content "\n" }} + {{ $totalLine := $lines | len }} + + {{ if ne $endLine -1 }} + {{ $endLine = math.Min $endLine $totalLine }} + {{ else }} + {{ $endLine = $totalLine }} + {{ end }} + + {{ if gt $startLine $endLine }} + {{ errorf "Code Importer Shortcode - startLine is greater than endLine" . }} + {{ end }} + + {{ $selectedLines := first $endLine $lines }} + {{ $selectedLines = after $startLine $selectedLines }} + {{ $codeBlock := printf "```%s\n%s\n```" $type (delimit $selectedLines "\n") }} + {{ $codeBlock | markdownify }} {{ else }} -{{ errorf "Code Importer Shortcode - Unable to get remote resource" . }} + {{ errorf "Code Importer Shortcode - Unable to get remote resource" . }} {{ end }}