Test Title 1
Test preview
Author: Test Author
Published: 1970-01-01 00:00:00 +0000 UTC
-

diff --git a/.babilema.toml b/.babilema.toml index 05c3522..bf1b477 100644 --- a/.babilema.toml +++ b/.babilema.toml @@ -1,3 +1,3 @@ -website_url = "https://babilema.github.io" +website_url = "https://bytebakersco.github.io/babilema" blog_title = "Babilema: A Minimalist Static Blog Generator" output_dir = "." # This could be ommited or just be an empty string diff --git a/.github/workflows/generate-blog.yml b/.github/workflows/generate-blog.yml index 883d97b..c0a6831 100644 --- a/.github/workflows/generate-blog.yml +++ b/.github/workflows/generate-blog.yml @@ -6,7 +6,7 @@ on: workflow_dispatch: jobs: - generate-blog: + generate_blog: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 0000000..83e8e36 --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,19 @@ +name: Run tests + +on: pull_request + +jobs: + run_tests: + runs-on: ubuntu-latest + + steps: + - name: 'Check out code' + uses: actions/checkout@v4 + + - name: 'Set up Go' + uses: actions/setup-go@v5 + with: + go-version: '>=1.22' + + - name: 'Run go test' + run: 'go test ./...' diff --git a/internal/config/config_test.go b/internal/config/config_test.go index 1f3518f..6529ac6 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -10,7 +10,7 @@ import ( func TestLoadConfig(t *testing.T) { root, _ := utils.RootDir() expected := Config{ - WebsiteURL: "https://babilema.github.io", + WebsiteURL: "https://bytebakersco.github.io/babilema", BlogTitle: "Babilema: A Minimalist Static Blog Generator", BlogPostIssuePrefix: "[BLOG]", TemplatePostFilePath: filepath.Join(root, "templates", "post.html"), diff --git a/internal/generator/generator.go b/internal/generator/generator.go index 4390370..9d2e321 100644 --- a/internal/generator/generator.go +++ b/internal/generator/generator.go @@ -5,6 +5,7 @@ import ( "html/template" "io" "log" + "net/url" "os" "path/filepath" "strings" @@ -99,7 +100,7 @@ func extractPlainText(content template.HTML) string { return result } -func extractCSSLinks(cssDir string) ([]string, error) { +func extractCSSLinks(cssDir string, cfg config.Config) ([]string, error) { if cssDir == "" { return nil, nil } @@ -118,6 +119,16 @@ func extractCSSLinks(cssDir string) ([]string, error) { return err } + websiteURL, err := url.Parse(cfg.WebsiteURL) + if err != nil { + return err + } + + relativeFilePath = filepath.Join( + websiteURL.Path, + relativeFilePath, + ) + cssLinks = append(cssLinks, relativeFilePath) } @@ -140,6 +151,15 @@ func generateBlogIndexPage( return nil } + websiteURL, err := url.Parse(cfg.WebsiteURL) + if err != nil { + return err + } + + for i := range articles { + articles[i].URL = filepath.Join(websiteURL.Path, articles[i].URL) + } + data := struct { Header template.HTML Footer template.HTML @@ -203,7 +223,7 @@ func GenerateBlogPosts( } data := templateData{} - data.CSSLinks, err = extractCSSLinks(cfg.CSSDir) + data.CSSLinks, err = extractCSSLinks(cfg.CSSDir, cfg) if err != nil { return err } @@ -235,8 +255,8 @@ func GenerateBlogPosts( writer = outputFile - var url string - url, err = utils.RelativeFilePath( + var articleURL string + articleURL, err = utils.RelativeFilePath( filepath.Join(cfg.OutputDir, filename), ) if err != nil { @@ -249,7 +269,7 @@ func GenerateBlogPosts( Author: data.Metadata.Author, Preview: template.HTML(extractPlainText(data.Content)), DatePublished: data.Metadata.DatePublished, - URL: url, + URL: articleURL, }) } diff --git a/internal/generator/generator_test.go b/internal/generator/generator_test.go index 1bf714e..04fe758 100644 --- a/internal/generator/generator_test.go +++ b/internal/generator/generator_test.go @@ -62,7 +62,7 @@ func TestGenerateBlogPosts(t *testing.T) { CSSDir: filepath.Join(basePath, "test-data"), TempDir: filepath.Join(basePath, "test-data", "tmp"), BlogPostIssuePrefix: "[BLOG]", - WebsiteURL: "http://localhost:8080", + WebsiteURL: "http://localhost:8080/foo", }, &buf, ) @@ -76,9 +76,9 @@ func TestGenerateBlogPosts(t *testing.T) {
Test preview
Author: Test Author
Published: 1970-01-01 00:00:00 +0000 UTC
-Test preview without an image
Author: Test Author
Published: 1970-01-01 00:00:00 +0000 UTC
-